GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿cómo crear un archivo de imagen de partición formateado desde cero?

Necesito crear un sistema de archivos con solo una partición de la nada (/dev/zero ).
Probé esta secuencia de comandos:

dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
    n
    p 
    2048
    131072

Básicamente, necesito crear un archivo de imagen de 64 MB lleno de ceros. Luego uso fdisk para agregar una nueva partición para el nuevo sistema de archivos (que finalmente debería ser FAT32), comenzando en el sector 2048 y usando todos los sectores restantes.

losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1

Pero aquí estoy teniendo problemas. Si configuro un loop dispositivo y formatéelo usando mkfs -t vfat , la tabla de particiones se sobrescribe y el sistema de archivos (FAT32) se coloca en el disco. No necesito que todo el disco esté formateado con FAT32, solo necesito que mi partición principal lo esté.

¿Alguien sabe cómo puedo formatear solo una partición de la imagen de disco sin formato, no la imagen completa?

Respuesta aceptada:

Si está en Linux, al cargar el loop módulo, asegúrese de pasar un max_part opción al módulo para que los dispositivos de bucle sean particionables.

Compruebe el valor actual:

cat /sys/module/loop/parameters/max_part

Si es 0:

modprobe -r loop # unload the module
modprobe loop max_part=31

Para que esta configuración sea persistente, agregue la siguiente línea a /etc/modprobe.conf o a un archivo en /etc/modprobe.d si ese directorio existe en su sistema:

options loop max_part=31

Si modprobe -r loop falla porque "el bucle del módulo está integrado", deberá agregar loop.max_part=31 a la línea de comandos de su kernel y reinicie. Si su gestor de arranque es Grub2, añádalo al valor de GRUB_CMDLINE_LINUX en etc/default/grub .

Ahora, puede crear un dispositivo de bucle particionable:

truncate -s64M file # no need to fill it with zeros, just make it sparse
fdisk file # create partitions
losetup /dev/loop0 file
mkfs.vfat /dev/loop0p1 # for the first partition.
mount /dev/loop0p1 /mnt/

(tenga en cuenta que necesita una versión relativamente reciente de Linux).


Linux
  1. Cómo crear o aumentar el espacio de intercambio en Linux

  2. Cómo crear un intercambio en Linux

  3. Cómo crear un archivo de intercambio en Linux

  4. ¿Cómo crear un archivo en Linux desde la ventana de terminal?

  5. ¿Cómo crear una imagen de disco VHD desde un sistema Linux en vivo?

Cómo hacer esteganografía de imágenes en Linux

Cómo crear un montaje a partir de imágenes en Linux

Cómo crear directorios desde un archivo de texto en Linux

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo construir el kernel de Linux desde cero

Cómo crear particiones de disco en Linux