Preciso criar uma imagem de disco com dois sistemas de arquivos vazios. Eu o criei usando
dd if=/dev/zero of=./disk.img bs=1MiB count=1024
Em seguida, criei 2 partições principais usando fdisk disk.img
; um é FAT32 e o outro é EXT3. Agora, tenho que formatar as duas partições para criar sistemas de arquivos para serem montados como -o loop devices
. Mas não consigo entender como formatá-los? Eu não posso usar mkfs.vfat
no disk.img
. Então, eu estou totalmente confuso.
SOLUÇÃO: Graças à resposta da @ pjc50, encontrei uma solução muito simples:
sudo aptitude install multipath-tools
sudo kpartx -a disk.img #it maps (mounts) found partitions to /dev/mapper/loop...
sudo mkfs.vfat -F 32 -n boot /dev/mapper/loop0p1
sudo mkfs.ext3 -L rootfs /dev/mapper/loop0p2
Uma desvantagem desta solução é a exigência de direitos de superusuário.
linux
partitioning
filesystems
ext3
loopback
psihodelia
fonte
fonte
Respostas:
Parece que você pode usar as ferramentas do kpartx: http://robert.penz.name/73/kpartx-a-tool-for-mounting-partitions-within-an-image-file/
fonte
Você pode fazer isso primeiro montando suas partições para
/dev/loop?
usarlosetup
com a-o
opção de especificar um deslocamento adequado para sua partição. O deslocamento pode ser calculado com base na saída defdisk -l disk.img
(start_sector * sector_size
).Por exemplo:
Depois de montada, você pode prosseguir para formatar a partição usando
mkfs.*
:Para mais detalhes e exemplos, consulte os seguintes artigos:
fonte
mkfs.vfat
. Veja o primeiro link que forneci. Também mencionado no artigo, o aviso de disquete é esperado e pode ser ignoradoEu iria com as ferramentas que tenho em mente:
/dev/sda
dd
a exportação/dev/sda
para um arquivoCom um palpite, levaria cerca de 15 minutos.
fonte
Executável mínimo
sfdisk
+mke2fs
exemplo semsudo
Neste exemplo, criaremos, sem
sudo
ousetsuid
, um arquivo de imagem que contém duas partições ext2, cada uma preenchida com arquivos de um diretório host.Em seguida, usaremos
sudo losetup
apenas para montar as partições para testar se o kernel do Linux pode realmente lê-las, conforme explicado em: /programming/1419489/how-to-mount-one-partition-from-an-image -arquivo-que-contém-múltiplas-partições / 39675265 # 39675265Para mais detalhes, consulte:
sfdisk
: lida com a tabela de partições: Como criar e formatar uma partição usando um script bash?mke2fs
: lida com a formatação EXT de partições: Como criar uma imagem ext2 sem direitos de superusuário?O exemplo:
Testado no Ubuntu 18.04. GitHub upstream .
fonte