Recuperação da unidade - suspensão 'ddrescue'

2

Estou usando ddrescue para recuperar arquivos de um disco rígido. Detalhes:

  • unidade SATA de 500 GB,
  • 2 Partições (por exemplo, sdb2 , sdb3 ) - cada uma com cerca de 200 GB de dados,
  • conectado ao adaptador SATA para USB,
  • em execução: sudo ddrescue -d /dev/sdb2 sdb2.img sdb2.logfile --force -R .

O disco está bastante danificado pelo que eu experimentei:

  • Leva muito tempo para montar e navegar.
  • Não responde de forma intermitente.
  • Não há muita sorte em copiar arquivos individualmente, um por um.

Estou usando ddrescue em cada partição e vejo algo estranho, mas que me dá esperança.

  • ddrescue parece simplesmente travar em vários pontos no tempo, ou seja, ipos e opos não se movem e nem run time . A taxa atual permanece muito alta e não muda. O que esta acontecendo aqui? A unidade está ficando completamente sem resposta por um tempo?
  • Muitas vezes ddrescue não está fazendo nenhum progresso para resgatar nada e last sucessful read começa a contar por um tempo muito longo - indefinidamente, na verdade. Quando isso acontece eu ^C out, energico a unidade e inicio ddrescue novamente. Surpreendentemente, ele imediatamente começa a resgatar arquivos em velocidades muito altas. Às vezes isso dura e às vezes está morto na água depois de alguns segundos.

Parece assim:

rescued:    10970 MB,  errsize:    338 MB,  current rate:   15073 kB/s
   ipos:   191426 MB,   errors:    3806,    average rate:   15612 kB/s
   opos:   191426 MB, run time:    1.65 m,  successful read:       0 s ago

e um tempo depois:

rescued:    11402 MB,  errsize:    600 MB,  current rate:        0 B/s
   ipos:   144382 MB,   errors:    7149,    average rate:    4299 kB/s
   opos:   144382 MB, run time:    7.66 m,  successful read:    2.06 m ago

O fato de o drive ler absolutamente bem por um tempo depois de ser conectado pela primeira vez me faz pensar que há algo além de setores ruins em ação aqui. Eu poderia, por exemplo, escrever um script bash que aciona ciclos e reinicia ddrescue com frequência? Isso vai matar o carro? Para informações, usei algumas práticas do este post sobre o ddrescue .

    
por Monokh 29.12.2016 / 16:09

1 resposta

2

Adaptadores SATA para USB variam. Alguns deles esquecem o disco ao encontrar erros de E / S, enquanto outros retornam erros de E / S e continuam. Existe uma grande variedade de comportamentos, dependendo de qual adaptador você está usando.

Eu acho que o seu está bloqueando toda a E / S até que ela seja desligada.

Você provavelmente não pode desconectar fisicamente e reconectar o adaptador da linha de comando para redefinir o status de energia, mas pode tentar redefinir o dispositivo USB ou as portas USB .

Se isso não funcionar, recomendo conectar o disco rígido diretamente pelo SATA e, em seguida, executar ddrescue enquanto o disco rígido estiver conectado pelo SATA. Dessa forma, você ignoraria o adaptador USB, que parece ficar preso em cada erro.

    
por 29.12.2016 / 18:50