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 conseguem ler devido a possíveis problemas mecânicos, como uma cabeça defeituosa do disco, um motor defeituoso ou algum outro problema que está fazendo com que o disco rígido leia os dados de maneira dolorosa e lenta demais de 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 longo período de tempo - de 2 a 10 minutos ou mais (quando usando rsync, antes de atingir o tempo limite).

A velocidade parece variar bastante, e fica muito presa nos arquivos e, quando finalmente fica "solta", parece durar apenas uma pequena explosão antes de ficar presa novamente. A unidade também é muito silenciosa, com apenas um som ocasional de cópia de arquivos (geralmente quando fica presa / desconectada por um breve período, antes de ficar presa novamente). Portanto, não há nenhum desses sons malignos que normalmente estão associados à morte do disco rígido. Alguém sugeriu que os problemas pareciam ser causados ​​por uma cabeça de disco desalinhada, o que requer muitas re-leituras antes de finalmente ler os dados com êxito. Parece plausível, mas eu discordo ...

De qualquer forma, o problema com o rsync é que ele parece não ter suporte decente ao tratamento de erros. Obviamente, não foi concebido para uso na recuperação de dados de queda de discos rígidos, mas todos os chamados utilitários "recuperação de dados" lá fora, que são destinados para tal uso geralmente se concentram em recuperação de arquivos apagados ou desarrumada 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 estou procurando ainda.

Naturalmente, é aqui que você provavelmente diria "Você deve usar o ddrescue!" Bem, está tudo bem e elegante, mas eu já tenho a maioria dos dados em backup, então só quero recuperar certos arquivos. Não estou preocupado em tentar recuperar uma partição completa, bloco por bloco, como faz o ddrescue. 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 permita especificar a origem e o destino como diretórios de arquivos normais como rsync (em vez de duas partições completas conforme o ddrescue exigir), com uma maneira de ignorar arquivos com erros em uma execução inicial e, em seguida, permite-me 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 nova tentativa ... assim como como o ddrescue funciona com blocos, só quero um utilitário que funcione com arquivos / diretórios específicos, como o rsync.

Então, eu 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 muito aberto a quaisquer soluções que funcionem, desde que me permitam escolher quais arquivos eu quero "resgatar", e pule arquivos com erros na execução inicial e tente / tente novamente esses erros mais tarde.

Até agora, tentei o rsync com as seguintes opções, mas geralmente fica preso em um arquivo por mais tempo que o tempo limite e, idealmente, gostaria que ele passasse para o próximo arquivo e voltasse mais tarde para os arquivos que obtém preso em. 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/

Respostas:


3

Eu tenho um Hitachi de 3 TB que lê dolorosamente lento, o ddrescue funcionará 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ê deseja fazer isso em um script para gravar 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

3

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

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

rsync -a <src> <dest>

Ele seguiria rapidamente se encontrasse erros e quando a execução fosse executada novamente, tentaria 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 promover ferramentas que são apenas equivalentes comerciais ao ddrescue - nenhuma indicação de que eles tenham conhecimento de arquivos. Duvidoso. A resposta de 2013 é interessante.


2

Ótima pergunta, adoro o nível de detalhe. Para um utilitário que funcionaria bem nesse cenário, eu recomendaria tentar o Filescavenger da Quetek . Ele permitirá releituras excessivas na contagem de mais de 100, mas o mais importante é que ele possui um recurso de geração de imagens em disco que permitirá despejar todo o conteúdo de uma imagem sem perder tempo tentando avaliar os arquivos, depois carregá-la 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 de uso profissional, custará um centavo considerável, mas você obterá recursos significativos, incluindo suporte para matrizes de ataques lógicos e de hardware.

Se isso também falhar, você pode ter passado do ponto das ferramentas de recuperação de software. Se você é e pode justificar o custo da recuperação em 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


1

Você quer uma copiadora progressiva . Seu objetivo é fazer unidades inteiras, mas, como leva um caminho de arquivo como parâmetro, também deve funcionar para arquivos individuais. Eu não acho que funcione para diretórios - você precisaria especificar cada arquivo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.