Primeiro, criei um criei um dispositivo de loopback ( /dev/loop0
) a partir de uma imagem de disco bruto em branco de 25 GB e particionei-o em uma partição de 20 GB para o sistema de arquivos e o restante para swap.
Lembre-se de usar kpartx
no dispositivo de loopback para "encontrar" as novas partições:
# kpartx -a /dev/loop0
# ls /dev/mapper/
control loop0p1 loop0p2
Eu não sabia qual sistema de arquivos usar, então, de maneira conservadora, decidi criar um sistema de arquivos ext2
na primeira partição:
# mkfs.ext2 /dev/mapper/loop0p1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1313760 inodes, 5245214 blocks
262260 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
161 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Crie um ponto de montagem e monte a partição do dispositivo de loopback:
# mkdir /mnt/disk
# mount /dev/mapper/loop0p1 /mnt/disk
Mude para o diretório de montagem e descompacte o arquivo:
# cd /mnt/disk
# tar xzvf /path/to/disk_archive.tar.gz
Use chroot
para montar a nova imagem de disco como um sistema de arquivos raiz:
# mount -t proc none /mnt/disk/proc
# mount -o bind /dev /mnt/disk/dev
# chroot /mnt/disk /bin/bash
Faça as alterações necessárias no sistema de arquivos (como instalar os pacotes do grub!)
Saia do chroot e desmonte e desmarque tudo:
# umount /mnt/disk/dev
# umount /mnt/disk/proc
# umount /mnt/disk
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
Por fim, criei uma VM com isso como disco rígido. Eu usei Disco Super Grub2 para resolver quaisquer outros problemas com o bootloader.