como retomar o processo do ddrescue?

7

Eu tenho que recuperar meu HD USB de 1 TB. Estou usando ddrescue para realizar isso. Existe uma maneira que eu possa retomar ddrescue quando eu iniciá-lo?

Estou usando o comando:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image
    
por confiq 02.06.2012 / 16:50

5 respostas

12

ddrescue pode ser retomado, mas requer um arquivo de log para poder fazer isso. O arquivo de log registrará o progresso que o ddrescue fez até agora, e reiniciar o ddrescue lerá o arquivo de log e iniciará de onde parou.

O arquivo de log seria o terceiro parâmetro:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log

Se você já iniciou uma execução do ddrescue sem um arquivo de log e a cancela, na próxima vez que o ddrescue for executado, ele começará no início, já que não tem registro do que já foi recuperado.

Nota : ddrescue e dd_rescue são programas diferentes.

    
por 02.06.2012 / 17:25
6

Mesmo se você esqueceu de especificar um arquivo de log, pode haver esperança:

Gerar modo

Então você não leu o tutorial e iniciou o ddrescue sem um arquivo de log. Agora, dois dias depois, o seu computador travou e você não pode saber quantos dados o ddrescue conseguiu salvar. E pior ainda, você não pode retomar o resgate; você tem que reiniciá-lo desde o começo.

Ou talvez você tenha começado a copiar uma unidade com dd conv=noerror,sync e esteja agora na mesma situação descrita acima. Nesse caso, observe que você não pode usar uma cópia feita pelo dd, a menos que tenha sido invocada com o argumento de conversão sync .

Não se desespere (ainda). O Ddrescue pode, em alguns casos, gerar um arquivo de log aproximado, a partir do arquivo de entrada e da cópia (parcial), que é quase tão bom quanto um arquivo de log exato. Isso é feito simplesmente supondo que setores contendo todos os zeros não foram resgatados.

No entanto, se o destino da cópia for uma unidade ou uma partição, (ou um arquivo regular existente e truncamento não foi solicitado), provavelmente você precisará reiniciar o ddrescue desde o início. (Desta vez com um logfile, claro). A razão é que os dados antigos podem estar presentes na unidade que ainda não foram sobrescritos e podem ser, portanto, não experimentados, mas diferentes de zero.

Por exemplo, se você tentou um desses comandos pela primeira vez:

ddrescue infile outfile

ou

dd if=infile of=outfile conv=noerror,sync

você pode gerar um arquivo de log aproximado com este comando:

ddrescue --generate-mode infile outfile logfile
    
por 29.08.2013 / 02:53
3

Como outros já disseram, você deve sempre especificar um arquivo de log como o terceiro parâmetro, que permitirá a retomada. Desde que você não fez isso, isso não vai ajudá-lo aqui. Se você souber aproximadamente em que ponto o processo chegou, poderá usar os parâmetros --input-position e --output-position para iniciar a partir desse ponto (lembre-se de definir ambos os parâmetros para o mesmo valor; caso contrário, a saída será corrompida). / p>     

por 03.06.2012 / 07:23
2

Como você não especificou um arquivo de log como terceiro parâmetro, a continuação não pode ser feita automaticamente. Você poderia criar um arquivo de log manualmente se você conhece os setores já resgatados, a sintaxe é fácil. Basta iniciar outro resgate fictício para outro arquivo ao especificar um log e deixá-lo ler áreas diferentes. Em seguida, edite o log para representar as áreas já salvas em seu primeiro arquivo. Agora execute novamente o comando anterior, mas forneça o nome do arquivo de log como o terceiro parâmetro. O ddrescue será retomado no primeiro setor não-pesquisado.

    
por 02.06.2012 / 17:29
2

Por link parece que, com a opção conv=noerror,sync , dd de fato adiciona zeros ao final de um bloco, não exatamente onde ocorreram os erros de leitura. Isto é contrário à informação na resposta de Miles Wolbe de 2013-08-29.

Por exemplo, se uma seqüência correta for 198123283 e houver um erro de leitura no meio, ela gravará 198283000 , não 198000283 .

Portanto, caso tenha havido erros de leitura, o método proposto não será exato - haverá áreas que poderiam ser lidas e que acabarão preenchidas com zeros, mas que serão consideradas "resgatadas".

A propósito, é uma boa prática começar uma tentativa de recuperação, preenchendo o disco de destino com zeros (ou pelo menos o espaço livre, o que pode ser feito com o WinHex, por exemplo).

    
por 22.08.2015 / 02:04