salvando dados de uma unidade com falha

12

Um disco rígido externo de 3 ½ "parece estar em risco de falhar - está emitindo sons de tique-taque quando ocioso .

Adquiri uma unidade de substituição e quero conhecer a melhor estratégia para obter os dados da unidade duvidosa com a melhor chance de economizar o máximo possível.

Existem alguns diretórios que são mais importantes que outros. No entanto, acho que escolher e escolher diretórios reduzirá minhas chances de salvar a coisa toda. Eu também teria que montá-lo, despejar uma lista de arquivos e desmontá-la para poder priorizar diretórios com eficiência. Acrescentando que é demorado fazer isso, estou me afastando dessa abordagem.

Eu considerei apenas usar dd, mas não tenho certeza de como ele lidaria com erros de leitura ou outros problemas que poderiam impedir que apenas certas partes dos dados fossem resgatadas ou que poderiam ser superadas com algumas tentativas, mas não com tantas tentativas. comprometer o salvamento de outras partes da unidade. Eu acho que o ideal seria fazer um único passe para obter o máximo possível e depois voltar a tentar novamente tudo o que foi perdido devido a erros.

É possível que copiar mais lentamente - por exemplo, pausando cada x MB / GB - seja melhor do que apenas executar a operação em full tilt, por exemplo, para evitar problemas de superaquecimento?

Para a multidão "onde está o seu backup": esta é realmente a minha unidade de backup, mas também contém algumas coisas não críticas e volumosas, como música, que não são backups, ou seja, não são copiadas.

O drive não exibiu nenhum sinal claro de falha além desse som um tanto ameaçador. Eu tive que corrigir alguns erros recentemente - inodes órfãos, contagem incorreta de blocos / inodes livres, diferenças de bitmap no inode, zero hora no inodes excluídos; cerca de 20 erros no total.

O sistema de arquivos da partição é ext3.

intuído
fonte
postado no askubuntu e superusuário
intuited

Respostas:

9

Você pode usar ddrescueou dd_rescueou myrescueclonar o disco com falha, sem interromper nenhum setor ilegível. (O Myrescue é menos configurável, mas possui uma estratégia padrão melhor ao tentar pular regiões ilegíveis.) Isso copiará tudo, incluindo o espaço em branco, e não permitirá que você defina prioridades. No entanto, tal abordagem de baixo nível tem uma vantagem sobre ferramentas de nível de sistema de arquivos: se um diretório é ilegível, você ainda pode recuperar os arquivos que ele contém, pesquisando a imagem crua com ferramentas como foremost, magicrescue, photorecincluído no testdisk , etc.

Gilles 'SO- parar de ser mau'
fonte
O link para magicrescueparece estar quebrado; você quis dizer itu.dk/~jobr/magicrescue ?
landroni
@landroni Sim, acho que esse aluno se formou, obrigado.
Gilles 'SO- stop be evil'
"O Myrescue [..] tem uma estratégia padrão melhor". Você consideraria postar um ddrescueexemplo configurado com os myrescuepadrões? Obrigado!
landroni
1
Para ddrescue/ dd_rescuevocê faz o primeiro passe com tamanho de bloco grande e muda para menor nos passes a seguir (por exemplo, diminuindo pela metade o tamanho de cada vez). Obviamente, isso requer que você use um arquivo de log (consulte a página de manual).
Peterph
Confusamente, em sistemas baseados no Debian, o comando ddrescuevem do pacote gddrescue; dd_rescuedo pacote ddrescue; e myrescuedo pacote myrescue.
landroni
8

Não há como saber o melhor de suas opções sem saber exatamente o que está errado com a unidade. Se for uma falha mecânica, evitar o aquecimento pode ajudar, mas se for devido a erros nos dados do servo, é provável que o calor não importe.

Eu começaria imediatamente a copiar os dados exclusivos para a nova unidade rsync. rsyncpermitirá pausar, retomar e reiniciar conforme necessário até você obter todos os dados.

Então eu executaria uma limpeza de dados na unidade. Presumo que, no ext3sistema de arquivos, você esteja executando o Linux, tente o seguinte:

# umount /dev/sdX
# badblocks -n /dev/sdX

(Desmontar a unidade primeiro é importante.)

Isso lerá todos os setores do disco e o gravará sem alterações. Isso forçará o firmware da unidade a verificar todos os setores em busca de erros e a remapear todos os setores defeituosos encontrados. Esta é a parte mais importante do que o caro programa SpinRite faz. Avance para isso apenas se badblocksfalhar e você ainda não obteve todos os dados exclusivos da unidade: o SpinRite se esforça mais do que badblocksfaz.

Warren Young
fonte
2

Se o disco estiver acabando, primeiro certifique-se de fazer o melhor clone possível (consulte a resposta de Gilles) e só depois continue jogando com a unidade. Dessa forma, você sempre terá pelo menos alguns dados, caso algo dê errado (o que geralmente pode acontecer com a falha de um hardware).

Se você usar ddrescue(ou dd_rescuenão tiver certeza dos outros), sempre poderá fazer uma cópia dos dados parcialmente clonados e do arquivo de log associado e tentar melhorá-lo, executando ddrescuenovamente depois de fazer algo que deveria consertar a unidade. Ele tentará ler as partes ausentes, deixando as partes bem clonadas intocadas.

peterph
fonte