En la mayoría de las situaciones, simplemente crearía un dispositivo de bucle invertido usando "losetup" y lo montaría usando las opciones "-o loopback". Pero si desea crear un archivo de bucle invertido, desea particionarlo y finalmente montar una subpartición, esta opción no se puede utilizar. Veamos cómo puede crear particiones dentro de una imagen de loopback.
Creando un dispositivo de loopback
1. Primero cree un archivo de alrededor de 1 GB usando el comando "dd".
# dd if=/dev/zero of=loopbackfile.img bs=100M count=10 10+0 records in 10+0 records out 1048576000 bytes (1.0 GB) copied, 1.26748 s, 827 MB/s
2. Cree un dispositivo de bucle invertido encima del archivo creado en el paso anterior.
# losetup -fP loopbackfile.img
3. Para imprimir el dispositivo de bucle generado con el comando anterior, use "losetup -a".
# losetup -a /dev/loop0: [64769]:4199216 (/root/loopbackfile.img)
Crear particiones dentro de una imagen de loopback usando fdisk
1. Use el comando fdisk para crear particiones en el dispositivo loopback /dev/loop0. Se crea una partición primaria de 500 MB como se muestra a continuación.
# fdisk /dev/loop0 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x4d455ea1. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-2047999, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2047999, default 2047999): +500M Partition 1 of type Linux and of size 500 MiB is set
2. Guarde la tabla de particiones y salga de la utilidad fdisk.
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Crear un sistema de archivos y montarlo
1. Cree el sistema de archivos ext4 en la partición /dev/loop0p1 creada en el paso anterior.
# mkfs.ext4 /dev/loop0p1 mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 128016 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=34078720 63 block groups 8192 blocks per group, 8192 fragments per group 2032 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
2. Monte el sistema de archivos en el directorio deseado.
# mkdir /loopfs # mount -o loop /dev/loop0p1 /loopfs
3. Verifique el tamaño del punto de montaje y el tipo de sistema de archivos.
# df -hP /loopfs Filesystem Size Used Avail Use% Mounted on /dev/loop1 477M 2.3M 445M 1% /loopfs
# mount | grep loopfs /dev/loop0p1 on /loopfs type ext4 (rw,relatime,seclabel,data=ordered)Cómo crear un dispositivo de bloque virtual (dispositivo de bucle/sistema de archivos) en Linux