Recomendamos enfaticamente que você use apenas ddrescue
- não evite usar uma ferramenta adequada para o trabalho, a execução não é difícil, e você vai poupar algum stress.
A invocação é simples:
Primeira execução:
-
-p
- pré-alocar espaço -
-b 4M
- use tamanho de setor grande para velocidade
ddrescue -p -b 4M ${SRC_DISK} ${DST_IMAGE} ${DST_LOGFILE}
Execuções subseqüentes: (ao contrário de dd
, você pode executá-lo várias vezes e continuará de onde parou, referindo-se ao arquivo de log)
-
-b 512
- use um tamanho de setor menor para tentar preencher as lacunas -
-r 10
- usar várias passagens de nova tentativa
ddrescue -b 512 -r 10 ${SRC_DISK} ${DST_IMAGE} ${DST_LOGFILE}
Seções com erros de leitura terão (por padrão) zeros, e você terá um arquivo de log similar ao seguinte:
# pos size status
0x00000000 0x00014E00 +
0x00014E00 0x00000200 -
0x00015000 0x00005800 +
0x0001A800 0x00000200 -
0x0001AA00 0x00028000 +
0x00042A00 0x00000200 -
0x00042C00 0x00125400 +
As linhas marcadas com +
são regiões sem erros, as linhas marcadas com -
são regiões com erros.
Você pode precisar examinar algumas das seguintes opções, dependendo da natureza de seus erros de leitura:
-d, --direct
use direct disc access for input file
-K, --skip-size=<min>[,<max>]
initial size to skip on read error [64 KiB]
-M, --retrim
mark all failed blocks as non-trimmed
-O, --reopen-on-error
reopen input file after every read error
-r, --retry-passes=<n>
exit after <n> retry passes (-1=infinity) [0]
-R, --reverse
reverse the direction of all passes
Em resposta direta à sua pergunta:
- Você provavelmente está enfrentando um problema de buffering ... provavelmente verá várias linhas aparecerem de uma vez e, depois, nada novamente - veja
unbuffer
-
sudo
pode estar pedindo uma senha, mas você redirecionou o prompt ... então nada está acontecendo.