Utilitário de cópia de arquivos como rsync com tratamento de erros como ddrescue, para recuperação de dados de um disco rígido com setores defeituosos ou falha de hardware [fechado]

12

Eu tenho um disco rígido com blocos defeituosos ou setores que não estão conseguindo ler devido a possíveis problemas mecânicos, como uma cabeça de disco defeituosa, motor defeituoso ou algum outro problema que esteja fazendo com que o disco rígido leia dados de maneira extremamente lenta e com muitos erros de leitura. Estou vendo uma média de 50 KB / s, com algumas leituras caindo abaixo de 10 KB / s, e freqüentemente fica preso em um arquivo ou setor por completo, geralmente por um bom tempo - de 2 a 10 minutos ou mais (quando usando rsync, antes que o tempo limite).

A velocidade parece variar muito, e fica muito presa nos arquivos, e quando finalmente fica "solta", parece durar apenas uma pequena rajada antes de ficar presa novamente. O drive também é muito silencioso, com apenas um som ocasional de arquivos copiando (geralmente quando fica preso / solto por um breve tempo, antes de ficar preso novamente). Assim, não há nenhum desses sons malignos que estão normalmente associados à morte do disco rígido. Alguém sugeriu que os problemas pareciam ser causados por um cabeçote de disco desalinhado, que requer muitas releituras antes de finalmente ler os dados com sucesso. Soa plausível, mas eu discordo ...

De qualquer forma, o problema com o rsync é que ele parece não ter suporte a manipulação de erro decente. Obviamente, não se destinava à recuperação de dados em discos rígidos, mas todos os chamados utilitários de "recuperação de dados", que são destinados a esse uso, geralmente se concentram na recuperação de arquivos excluídos. ou bagunçou partições, em vez de copiar arquivos de discos rígidos que estão morrendo. A recuperação de arquivos excluídos não é o que eu preciso, obviamente, então talvez você possa entender minha decepção por não conseguir encontrar o que eu ainda estou procurando.

Naturalmente, é aqui que você provavelmente diria "Você deveria usar o ddrescue!" Bem, tudo bem e elegante, mas eu já tenho a maioria dos dados salvos em backup, então eu só quero recuperar alguns arquivos. Eu não estou preocupado em tentar recuperar uma partição completa bloco a bloco como o ddrescue faz. Estou interessado apenas em resgatar apenas arquivos e diretórios específicos.

Idealmente, o que eu gostaria é de algum tipo de cruzamento entre rsync e ddrescue: algo que me permite especificar a origem e o destino como diretórios de arquivos normais como rsync (em vez de duas partições completas como ddrescue requer), com uma maneira de pular arquivos com erros em uma execução inicial, e então me permite tentar recuperar esses arquivos com erros em uma execução posterior (com um comando ligeiramente alterado, é claro), talvez até oferecendo uma opção para especificar o número de tentativas de repetição ... assim como o ddrescue trabalha com blocos, apenas eu quero um utilitário que trabalhe com arquivos / diretórios específicos como o rsync faz.

Então, estou sonhando aqui ou existe algo que possa fazer isso? Ou talvez até mesmo uma maneira de fazer o rsync ou o ddrescue funcionarem de tal maneira? Estou realmente aberto a quaisquer soluções que possam funcionar, desde que elas permitam que eu escolha quais arquivos eu quero "resgatar", e posso pular arquivos com erros na execução inicial, e tentar / repetir esses erros novamente mais tarde.

Até agora eu tentei rsync com as seguintes opções, mas muitas vezes fica preso em um arquivo por mais tempo do que o tempo limite, e idealmente eu gostaria que ele passasse para o próximo arquivo e voltasse mais tarde para o arquivos fica preso. Eu não acho que isso seja possível. Enfim, aqui está o que eu tenho usado até agora:

rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/
    
por purefusion 31.01.2011 / 07:47

4 respostas

3

Eu tenho uma Hitachi de 3 TB que lê com lentidão, o ddrescue vai operar no nível do arquivo. Mas não em diretórios. No entanto, não consegui que as opções --timeout ou --min-read-rate do ddrescue funcionassem.

Você gostaria de fazer isso em um script para ddrescue um arquivo de cada vez.

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log
    
por 16.02.2013 / 06:26
3

Talvez o rsync tenha mudado nos anos desde que essa pergunta foi feita.

Minha experiência foi que rsync atualmente faz um excelente trabalho copiando coisas de um disco rígido que está morrendo, com

rsync -a <src> <dest>

Ele moveria rapidamente se encontrasse erros e quando a reexecução voltasse a tentar esses arquivos novamente.

rsync --version relatórios rsync version 2.6.9 protocol version 29

Em relação às outras respostas:

As respostas de 2011 parecem estar promovendo ferramentas que são apenas equivalentes comerciais do ddrescue - nenhuma indicação de que estejam cientes de arquivos. Duvidoso. A resposta de 2013 é interessante.

    
por 15.08.2014 / 11:56
2

Grande pergunta, ama o nível de detalhe. Para um utilitário que funcionaria bem neste cenário, eu recomendaria tentar o Filescavenger de Quetek . Isso permitirá releituras excessivas na contagem de mais de 100, mas o mais importante é que ele possui um recurso de imagem de disco que permite despejar todo o conteúdo em uma imagem sem perder tempo tentando avaliar os arquivos, carregar a imagem e digitalizá-la. para arquivos. O utilitário custa US $ 50 para usuários domésticos, mas você pode baixá-lo e testá-lo ao ponto de ver o que pode ser recuperado da imagem antes de gastar dinheiro.

Se for um uso profissional, você terá um bom custo, mas ganhará recursos significativos, incluindo suporte para arrays de raids lógicas e de hardware.

Se isso falhar também, você pode estar além do ponto de ferramentas de recuperação de software. Se você é e pode justificar o custo de recuperação em laboratório, informe-me em que país, estado e cidade você está. Posso recomendar um de nossos laboratórios ou de concorrentes perto de você.

Chris

    
por 16.02.2011 / 22:48
1

Você deseja Copiadora progressiva . Ele tem como objetivo fazer unidades inteiras, mas como ele usa um caminho de arquivo como parâmetro, ele também deve funcionar para arquivos individuais. Eu não acho que funcionará para diretórios - você teria que especificar cada arquivo.

    
por 16.02.2011 / 23:06