Como dividir uma imagem de disco do ddrescue e como usá-lo novamente?

3

Eu tenho um disco rígido externo de 500GB que eu preciso para resgatar o conteúdo de. Infelizmente eu só tenho duas partições de 400GB para salvar o conteúdo. Posso dividir a imagem do disco como:

~$ cd /mnt/part1/Recovery/
/mnt/part1/Recovery/$ ddrescue -f -n -i0 -s250...00 /dev/disk disk.part1.ddraw disk.part1.log
/mnt/part1/Recovery/$ cd /mnt/part2/Recovery/
/mnt/part2/Recovery/$ ddrescue -f -n -i250...00 /dev/disk disk.part2.ddraw disk.part2.log

(valores de números estão faltando alguns zeros por conveniência). Ou seja, posso usar apenas os sinalizadores -i e -s para dividir a imagem do disco em duas partes manualmente?

Em segundo lugar, existe uma maneira de montar as duas partes da imagem como uma só?

    
por Zorawar 27.11.2012 / 22:00

1 resposta

4

Para responder à segunda parte da sua pergunta. Como montar um FS armazenado em dois arquivos ( a e b ) Duas opções que consigo pensar:

Usando dispositivos de mapeamento de dispositivos e de loop:

losetup /dev/loop1 a
losetup /dev/loop2 b
s() { blockdev --getsize "$1"; }
dmsetup create merge << EOF
0 $(s /dev/loop1) linear /dev/loop1 0
$(s /dev/loop1) $(s /dev/loop2) linear /dev/loop2 0
EOF
mount /dev/mapper/merge /mnt

A idéia é fazer um dispositivo mapeador de dispositivo linear que é apenas a concatenação dos dois dispositivos de loop.

Usando o nbd-client + nbd-server

ln -s a part.0
ln -s b part.1
nbd-server 127.1@12345 "$PWD/part" -m
nbd-client 127.1 12345 /dev/nbd0
mount /dev/nbd0 /mnt

(mais fácil, mas menos eficiente)

Aqui, estamos usando o modo "multi-part" do nbd-server que espera que as partes sejam nomeadas como part.0 , part.1 ... Infelizmente, ao contrário do qemu-nbd, nbd-server / o cliente não pode trabalhar com soquetes de domínio Unix, o que significa que temos que ter a sobrecarga de TCP e o qemu-nbd não tem esse modo de várias partes.

    
por 27.11.2012 / 22:35