Personalmente prefiero agregar usando dd
.
Estoy asumiendo sectores de 512 bytes aquí. Puede haber un caso para los sectores de 2048 bytes, así que simplemente intercambie los números y haga los cálculos.
En cada caso, estoy usando un archivo de prueba de 512 MB, por ejemplo:
dd if=/dev/zero of=testfs.img bs=512 count=1M
mkfs.ext4 testfs.img
MBR
Componiendo la imagen
Personalmente prefiero agregar el primer MB (2048 sectores) a su comienzo:
dd if=testfs.img skip=2048 bs=512 of=full.img
Finalmente ejecute fdisk para crear la tabla de particiones (o copie la suya propia), creé 1 partición usando los valores predeterminados.
Verificando
Para verificar, crear particiones de bucle y autodetectar:
sudo losetup -fP full.img
Y ejecutar file
en el dispositivo de loopback particionado resultante:
sudo file -s /dev/loop2p1
/dev/loop2p1: Linux rev 1.0 ext4 filesystem data, UUID=ae2945fd-54b5-486f-8dd0-9b18d6ae01b4 (extents) (large files) (huge files)
GPT
Componiendo la imagen
Personalmente, prefiero agregar los primeros MB (2048 sectores, ya que gdisk usará de forma predeterminada este número, ya que está alineado con 1 MB) al comienzo para el MBR inicial y 34 sectores hasta el final (o 2048 para un MB completo) para el final GPT (el sector final puede ser diferente). Omitir el GPT final puede perder sus datos:
dd if=testfs.img skip=2048 bs=512 of=full.img
dd if=/dev/zero seek=1050624 bs=512 of=full.img count=34
Finalmente ejecute gdisk para crear la tabla de particiones (o copie la suya propia), creé 1 partición usando los valores predeterminados.
Verificando
Para verificar, crear particiones de bucle y autodetectar:
sudo losetup -fP full.img
Y ejecutar file
en el dispositivo de loopback particionado resultante:
sudo file -s /dev/loop2p1
/dev/loop2p1: Linux rev 1.0 ext4 filesystem data, UUID=ae2945fd-54b5-486f-8dd0-9b18d6ae01b4 (extents) (large files) (huge files)
Este método garantiza no adivinar, cambiar el tamaño o alinear manualmente.