Use o losetup e o dd para tornar as imagens dos sistemas de arquivos prontas para serem implementadas

3

Introdução

Usando o dd, pode-se facilmente fazer o backup do MBR e da tabela de partições de um disco. É tão fácil quanto: dd if=/dev/disk2 of=~/Desktop/disk2_mbr bs=512 count=1

Também é possível fazer backup de partições inteiras: dd if=/dev/disk2s1 of=~/Desktop/disk2_partition1

O contrário também funciona: com dd if=~/Desktop/disk2_mbr of=/dev/disk3 , pode-se substituir outro MBR de disco e tabela de partição ( cuidado, perda de dados no disco3 ).

Em seguida, para restaurar a primeira partição, uma faz: dd if=~/Desktop/disk2_partition1 of=/dev/disk3s1

(O ponto de dd em separado do MBR e da partição é que você não precisa dd do disco inteiro; se sua partição for pequena, ela será muito mais rápida.)

Tudo bem, tudo isso dd magic funciona muito bem para mim. Isso facilita o backup e a restauração de qualquer sistema, seja qual for o disco rígido.

Dispositivos de loop

A criação de imagens de sistemas virtuais funciona muito bem também.

Para criar uma nova imagem de mídia vazia (30 GB), pode-se fazer: dd if=/dev/zero of=/my-media-image bs=1k count=30240000

Em seguida, para atribuir a mídia a um dispositivo de loopback: losetup /dev/loop0 /my-media-image

Para criar um sistema de arquivos na imagem de mídia, um faz: sudo mkfs -t ext3 -L MYVIRTUALFS -M /media/MYVIRTUALFS -I 128 -m 0 -b 4096 -O sparse_super -T largefile4 /dev/loop0

A mídia pode então ser montada: sudo mkdir /media/MYVIRTUALFS && mount /dev/loop0 /media/MYVIRTUALFS

Problema

O que eu não entendo é que, se eu desmontar o disco ( sudo umount /media/MYVIRTUALFS ), exclua o dispositivo de loopback ( sudo losetup -d /dev/loop0 ), eu teria pensado que a mídia original ( /my-media-image ) seria a exatamente a mesma coisa que um clone dd de /dev/loop0

Aparentemente não é, porque se eu fizer dd if=/my-media-image of=/dev/disk4 ( cuidado, perda de dados no disco4 ), o disco4 está corrompido e não é montável.

Por quê?

Isso torna possível criar um sistema de arquivos virtual a partir de um Linux macine, completo com tabela de partição, dados, etc ... e então copiar a imagem de mídia ( /my-media-image no meu exemplo) para outro sistema (Macintosh no meu case), onde está pronto para implantar em discos rígidos reais. Ele deve funcionar no Windows, que possui GUIs para dd .

O que estou perdendo?

    
por MichaelC 27.03.2013 / 21:10

1 resposta

2

Como o killermist mencionou, o erro foi que eu tinha esquecido de criar partições antes de criar um sistema de arquivos. As instruções na pergunta estão corretas e criam imagens de disco perfeitamente válidas, tudo o que uma pessoa precisa fazer é criar partições, logo após montar o dispositivo de loop, e antes de criar um sistema de arquivos nele. Portanto, a seqüência correta é losetup.... e parted --script /dev/loop0 mktable msdos mkpart primary 2048s 100% e sudo mkfs...

    
por 30.03.2013 / 17:04