Como dizer ao rsync para pular arquivos em um bloco de disco rígido danificado, em vez de ficar preso tentando lê-lo

13

Estou tentando recuperar arquivos de um disco que possui erros de hardware.

O disco foi reparado pelo utilitário de disco, mas ele me disse que o disco está danificado, portanto, preciso fazer backup de tudo antes que ocorra uma falha.

Então, eu tentei copiar os arquivos via localizador, mas ele fica preso. Tentei outros utilitários e eles ficam presos tentando copiar os arquivos, quando a cabeça bate no bloco danificado.

Então eu tentei com o rsync, e parece funcionar; mas leva uma eternidade quando eu bato em um bloco ruim.

Então, eu estava pensando, se existe uma maneira de dizer ao Rsync para nem se preocupar com um arquivo, se demorar muito? Ou posso especificar o número de tentativas em cada arquivo ou quanto tempo ele precisa para cada arquivo?

Não tenho certeza de quanto tempo essa unidade durará honestamente, por isso quero obter todos os dados o mais rápido possível, enquanto ainda posso montá-los e ver os dados no localizador.

É isso que estou usando como comando; aconselhe se houver alguma maneira de reduzir a tentativa de um arquivo, para que eu possa ter o rsync para tentar ler os blocos danificados, mas evite ficar preso em um setor específico por muito tempo.

rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup

Desde já, obrigado.

rataplan
fonte
3
Se a unidade danificou setores, é melhor tentar imaginá-la com algo parecido dd_rescue, ela possui recursos avançados para lidar com setores defeituosos.
precisa saber é o seguinte
Acho que @jmreicha tem a idéia certa, mas no futuro, se você tiver perguntas técnicas sobre o rsync, gurus amigáveis ​​estarão disponíveis na lista rsync: lists.samba.org/mailman/listinfo/rsync
Joe

Respostas:

10

Resposta curta: rsyncnão é a ferramenta certa para ser usada neste caso: seu uso pode ser até prejudicial.
Use em ddrescuevez disso (melhor que dd_rescue). É capaz de fazer o que você está pedindo.


Se o disco estiver fisicamente danificado, existe a possibilidade de bloqueá- lo com qualquer tentativa de repará-lo.

Não se trata apenas de uma questão de uso do seu tempo , quando rsyncparece pendurar para sempre se aproximando de um setor danificado. O problema é que, com operações repetidas, pode ocorrer uma falha irreparável, e você não poderá mais recuperar seus dados sem a substituição cara de peças (sempre se isso ainda for possível e você não tiver bloqueado o disco rígido ).

Nesse caso, o procedimento mais seguro que encontrei é

  1. Para criar uma imagem não processada em outro disco não quebrado.
  2. Para criar uma cópia dessa imagem.
  3. Para trabalhar na cópia para corrigir o sistema de arquivos e para resgatar os arquivos .

Por que a cópia? Como se falhar algo na etapa de fixação do sistema de arquivos, você sempre poderá iniciar novamente sem a necessidade de tocar novamente no disco rígido danificado original .

Eu sugiro que você use ddrescue, para fazer a imagem bruta do disco, os defeitos incluídos, porque funciona bem mesmo em caso de erros de leitura.


Como fazer isso com ddrescue

Você pode usar ddrescueexatamente como gostaria de usar rsync, pulando os setores danificados sem tentar novamente ou dividi-los, copiando o máximo de dados possível.
Este comando está aqui abaixo (em vez de /dev/hda1você colocar seu dispositivo):

ddrescue --no-split /dev/hda1 imagefile logfile

Depois de ter feito essa primeira passagem (a mais rápida ), você pode tentar refiná-la tentando acessar por 3 vezes em caso de erro.

ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile 

Você pode continuar a refinar a imagem repetindo as ddrescuechamadas de comando com outras opções, tentando extrair cada vez mais dados (consulte as referências). Quando você terminar, poderá criar a cópia (se tiver todo o espaço necessário) e, em seguida, corrigir o sistema de arquivos .

Observe que a imagem não processada será tão grande quanto o HDD original .
Você pode encontrar na internet, neste e em outros sites do StackExchange muitas perguntas e respostas sobre como recuperar dados com ddrescueou outras ferramentas.

Referências:

Hastur
fonte
de fato, o dd_rescue é o caminho a percorrer. Eu o tinha na minha resposta original, há 2 anos; mas para algumas razões que alguém decidiu que eu não poderia responder a minha pergunta :) Obrigado pela resposta e impressionantes detalhes
Rataplan
@newbiez: Em vez disso, tive um sério problema de disco com o meu HDD principal quase emparedado ... então conheci ddrescuee seus amigos :-) Sobre a sua resposta, apenas uma palavra: estranho ... publique novamente e se alguém tentar fechar novamente vou votar sim para reabrir (eu nunca usei esse novo poder : D)
Hastur
11
A opção --no-split foi removida nas versões mais recentes do ddrescue. Use --no-scrape. Veja lists.gnu.org/archive/html/bug-ddrescue/2015-09/msg00001.html
Grmpfhmbl