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?