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

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

Eu tenho um disco rígido com blocos ou setores defeituosos que não conseguem ler devido a possíveis problemas mecânicos, como cabeçote de disco defeituoso, motor defeituoso ou algum outro problema que está fazendo com que o disco rígido leia dados de forma terrivelmente lenta e com muita de erros de leitura. Estou vendo uma média de 50 KB/s, com algumas leituras caindo abaixo de 10 KB/s, e frequentemente ele fica preso em um arquivo ou setor, geralmente por um longo tempo - de 2 a 10 minutos ou mais (quando usando rsync, antes que expire).

A velocidade parece variar muito e fica muito presa nos arquivos e, quando finalmente fica "solta", parece durar apenas um breve período antes de ficar presa novamente. A unidade também é muito silenciosa, com apenas um som ocasional de cópia de arquivos (geralmente quando fica travada/desbloqueada por um breve período, antes de travar novamente). Portanto, não há nenhum daqueles sons malignos normalmente associados à morte do HDD. Alguém sugeriu que os problemas pareciam ser causados ​​por uma cabeça de disco desalinhada, que requer muitas releituras antes de finalmente ler os dados com sucesso. Parece plausível, mas estou divagando...

De qualquer forma, o problema com o rsync é que ele parece não ter suporte decente para tratamento de erros. Obviamente, ele não foi feito para ser usado na recuperação de dados de discos rígidos com falha, mas todos os chamados utilitários de "recuperação de dados" que existem por aísãodestinados a esse uso geralmente se concentram na recuperação de arquivos excluídos ou partições bagunçadas, 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 procuro ainda.

Naturalmente, é aqui que você provavelmente diria "Você deveria usar o ddrescue!" Bem, está tudo bem, mas já fiz backup da maioria dos dados, então só quero recuperar alguns arquivos. Não estou preocupado em tentar recuperar uma partição completa bloco por bloco, como faz o ddrescue. Estou interessado apenas em resgatar 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 origem e destino como diretórios de arquivos normais como rsync (em vez de duas partições completas como o ddrescue exige), com uma maneira de pular arquivos com erros em uma execução inicial, e então me permite tentar a recuperação desses 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 novas tentativas ... assim como o ddrescue funciona com blocos, só que eu quero um utilitário que funcione com arquivos específicos/ diretórios como o rsync faz.

Então, estou sonhando acordado aqui ou existe algo lá fora que pode fazer isso? Ou talvez até uma maneira de fazer o rsync ou o ddrescue funcionar dessa maneira? Estou realmente aberto a quaisquer soluções que possam funcionar, desde que me permitam escolher quais arquivos desejo "resgatar" e possam pular arquivos com erros na execução inicial e tentar/repetir esses erros mais tarde.

Até agora eu tentei o rsync com as seguintes opções, mas muitas vezes ele 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 os arquivos obtidos. preso em. Eu não acho que isso seja possível. De qualquer forma, aqui está o que tenho usado até agora:

rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/

Responder1

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

Você gostaria de fazer isso em um script para ddrescue um arquivo por 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

Responder2

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

Minha experiência foi que rsyncatualmente ele faz um ótimo trabalho copiando coisas de um disco rígido que está morrendo, com

rsync -a <src> <dest>

Ele seguiria em frente rapidamente se encontrasse erros e, quando executado novamente, voltaria para tentar esses arquivos novamente.

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

Em relação às outras respostas:

As respostas de 2011 parecem promover ferramentas que são apenas equivalentes comerciais ao ddrescue - nenhuma indicação de que elas reconhecem arquivos. Duvidoso. A resposta de 2013 é interessante.

Responder3

Ótima pergunta, adoro o nível de detalhe. Para um utilitário que funcionaria bem neste cenário, eu recomendaria tentar o Filescavenger emQuetek. Ele permitirá releituras excessivas na contagem de mais de 100, mas o mais importante é que possui um recurso de imagem de disco que permitirá 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 a ponto de ver o que pode ser recuperado da imagem antes de gastar dinheiro.

Se for para uso profissional, custará um bom dinheiro, mas ganhará recursos significativos, incluindo suporte para matrizes de ataque lógico e de hardware.

Se isso também falhar, você pode ter ultrapassado o limite das ferramentas de recuperação de software. Se você estiver e puder justificar o custo da recuperação no laboratório, informe-me em que país, estado e cidade você está. Posso recomendar um de nossos laboratórios ou concorrentes perto de você.

Chris

Responder4

Você querCopiadora Progressiva. Ele é direcionado a unidades inteiras, mas como usa um caminho de arquivo como parâmetro, também deve funcionar para arquivos individuais. Não acho que funcione para diretórios - você teria que especificar cada arquivo.

informação relacionada