Experiências com o uso do 'dd' para copiar o dispositivo multi-partição, multi-FS

5

Eu tenho um disco com várias partições, cada uma com um tipo diferente de sistema de arquivos (ext3, ext4 e, digamos, NTFS). Eu quero saber se eu posso copiar o disco inteiro para um novo (que é de maior capacidade) usando dd , de preferência em uma única operação.

Para evitar esforço desnecessário, deixe-me esclarecer algumas coisas. Eu não estou interessado em outras maneiras de fazê-lo (eu sei o caminho certo, e software de terceiros não é desejável). Não estou tão interessado em respostas teóricas ("deve funcionar"). Estou extremamente interessado em experiências de qualquer outra pessoa tentando fazer uma coisa dessas.

Sei que a verdadeira resposta certa é "tente e veja", mas estou a 250 milhas do disco em questão.

    
por MadHatter 04.03.2013 / 10:19

1 resposta

8

Se você tiver que fazer isso, e você tem que estar em um lugar muito ruim para pensar em fazer isso ...

É mais seguro copiar as partições individualmente. Por exemplo:

# Install  a temporary ssh key so we don't have to deal with lots of
# password prompts, remember to remove it from authorized_keys later
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa user@host

# Copy everything, you can go have breakfast - and probably lunch -
# while you wait
for partition in /dev/sdb?*
do
    dd if=$partition | ssh user@host "dd of=$(basename $partition).img"
done

Aguarde alguns minutos ou horas até que a cópia seja concluída e, em seguida, inicie a recuperação a partir das imagens de disco. Por exemplo, em um novo disco, você pode criar uma nova tabela de partições com partições do tamanho correto para armazenar as imagens de disco e, em seguida, dd das imagens para as novas partições.

Copiar o disco inteiro (por exemplo, dd if=/dev/sdb ) torna as coisas mais complicadas, pois você terá uma imagem de disco completa e provavelmente terá que se dividir em partições de qualquer maneira. E se você estiver pensando em dd ing a unidade inteira diretamente para outro disco físico, pense novamente: às vezes você perderá apenas quando o sistema se recusa a reconhecer que a tabela de partição e o novo disco rígido têm alguma relação entre si .

Se você precisar copiar o disco inteiro de uma só vez (você provavelmente não precisa fazer isso, então não pense nisso), então copie-o para um arquivo de imagem e use kpartx para trabalhar com as partições. Por exemplo:

dd if=/dev/sdb | ssh user@host "dd of=sdb.img"
# Later, on the recovery host...
kpartx -l sdb.img
kpartx -a sdb.img
# Now you can...
mount -o ro /dev/mapper/loop0p1 /mnt/rescuep1
mount -o ro /dev/mapper/loop0p2 /mnt/rescuep2
# or copy to a new hard drive...
dd if=/dev/mapper/loop0p1 of=/dev/sdc1
dd if=/dev/mapper/loop0p2 of=/dev/sdc2

Se o disco físico estiver com problemas físicos, considere o uso de dd_rescue (embora você não tenha perguntado sobre isso).

    
por 04.03.2013 / 10:34

Tags