Como editar o arquivo de log ddrescue para retomar em um determinado ponto?

0

Estou tentando criar imagens de um disco de 500 GB usando GNU ddrescue e usando o arquivo de log. Cheguei a 420GB e depois parei com ctrl+c . Eu executei o comando novamente depois de algum tempo e ele começou tudo de novo, apesar de haver um arquivo de log.

O arquivo de log antigo foi gravado por ddrescue .

Como eu disse, meu arquivo de imagem até agora é de 420 GB de um disco de 500 GB. Como faço para editar o arquivo de log ou dizer a ddrescue para continuar em torno de 420 GB? Demorei DIAS de correr ddrescue para chegar a 420GB. Eu não quero reiniciar este processo novamente.

Aqui está o arquivo de log:

# Mapfile. Created by GNU ddrescue version 1.21
# Command line: ddrescue /dev/sdd /media/myname/New Volume4/backup.dmg /media/myname/New Volume4/logfile.log
# Start time:   2016-05-17 13:08:39
# Current time: 2016-05-17 13:08:48
# Copying non-tried blocks... Pass 1 (forwards)
# current_pos  current_status
0x0C770000     ?
#      pos        size  status
0x00000000  0x0C770000  +
0x0C770000  0x7464496000  ?

Isso é o que sudo fdisk -l diz para o disco que eu quero criar:

Disk /dev/sdd: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disk identifier: 0xeea5da13

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1              63   976768064   488384001    7  HPFS/NTFS/exFAT
    
por fuzzybabybunny 17.05.2016 / 09:11

1 resposta

1

O número hexadecimal 0x0C770000 em seu arquivo de log indica que houve cerca de 200 MiB de leitura. Isso confirma sua afirmação de que ddrescue começou de novo.

Para modificar, primeiro obtenha o tamanho quase da sua imagem em hexadecimal:

printf "%x\n" $(($(wc -c < "/media/myname/New Volume4/backup.dmg")-4096))

(eu subtrai 4096 do tamanho real apenas no caso. Provavelmente é desnecessário; não prejudicará embora.)

Em seguida, substitua cada 0C770000 em seu log pelo número resultante (três substituições necessárias). Observe que há% de prefixo0x que você não deve tocar. Para fazer isso com sed :

sed -i 's/0C770000/the_resulted_number_here/' "/media/myname/New Volume4/logfile.log"

Nota: não sei por que a segunda tentativa começou em vez de continuar. O arquivo de log agora é (quase) o que foi depois do seu passo interrompido ( se não houver erros de leitura ), então esse comportamento pode reaparecer pelo mesmo motivo (ainda que desconhecido).

Reinicie o ddrescue :

ddrescue /dev/sdd "/media/myname/New Volume4/backup.dmg" "/media/myname/New Volume4/logfile.log"
    
por 17.05.2016 / 09:53

Tags