ddrescue: Como tentar novamente um bloco danificado após todos os outros dados serem armazenados com segurança?

1

Eu usei ddrescue ontem para recuperar a cópia 1: 1 e armazená-la como uma imagem em uma nova unidade. Suponha que eu tenha lido de trás para frente, porque eu sabia, que há um cluster inválido no início da unidade com falha, ou seja, com -R switch, da página man:

-R
--reverse

Reverse the direction of all passes (copying, trimming, scraping and retrying). Every pass that is normally run forwards will now be run backwards, and vice versa. '--reverse' does not modify the size of the blocks copied during each phase, just the order in which they are tried.

Claro, usei mapfile para poder reiniciar o processo.

Além disso, usei o acesso direto, nem todas as unidades devem suportar isso, mas o meu faz isso.

A linha de comando completa que usei segue:

ddrescue -d -R /dev/sdb baddrive.ddrescue.img baddrive.ddrescue.log

O resultado é 1 erro de 4096 bytes de tamanho.

Parte relevante do mapfile segue:

# current_pos  current_status
0x1375BCE00     +
#      pos        size  status
0x00000000  0x1375BC000  +
0x1375BC000  0x00001000  -
0x1375BD000  0xE7A97F9000  +

Pergunta

É possível repetir o cluster ruim como 100 vezes apenas para ter certeza de que ele está totalmente morto?

    
por Vlastimil 01.06.2018 / 01:12

1 resposta

1

Sim, é possível.

Você precisa modificar a linha do mapfile :

0x1375BC000  0x00001000  -

para conter o ponto de interrogação no final da seguinte forma:

0x1375BC000  0x00001000  ?

Agora você está pronto para reiniciar o processo de recuperação, basta adicionar a opção de repetição:

-r n
--retry-passes=n

Exit after the given number of retry passes. Defaults to 0. -1 means infinity. Every bad sector is tried only once in each pass. To retry bad sectors detected on a previous run, you must specify a non-zero number of retry passes.

    
por 01.06.2018 / 01:12