Я пытаюсь создать образ диска объемом 500 ГБ, используя GNU ddrescue и файл журнала. Я получил 420GB, а затем остановил его, нажав ctrl+c Через некоторое время я снова запустил команду, и она началась снова, несмотря на наличие файла журнала.

Старый файл журнала был ddrescue .

Как я уже сказал, мой файл образа на 420 ГБ из 500 ГБ диска. Как мне отредактировать файл журнала или сказать ddrescue возобновить примерно с 420GB? Мне потребовались ДНИ запуска ddrescue чтобы получить 420 ГБ. Я не хочу перезапускать этот процесс заново.

Вот файл журнала:

# 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  ?

Вот что sudo fdisk -l говорит для диска, который я хочу создать образ:

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

1 ответ1

1

Шестнадцатеричное число 0x0C770000 в вашем файле журнала указывает, что было прочитано около 200 МБ. Это подтверждает ваше заявление о том, что ddrescue начался заново .

Чтобы изменить, сначала получите почти размер вашего изображения в шестнадцатеричном формате:

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

(Я вычел 4096 от фактического размера на всякий случай. Это, вероятно, не нужно; не причинит вреда.)

Затем замените каждый 0C770000 в вашем журнале на полученный номер (требуется три замены). Обратите внимание, что есть префикс 0x который вы не должны трогать. Чтобы сделать это с помощью sed:

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

Примечание: я не знаю, почему вторая попытка началась вместо продолжения. Файл журнала теперь (почти) такой, какой он был после вашего прерванного прохода (если не было ошибок чтения), поэтому это поведение может появиться снова по той же (пока неизвестной) причине.

Перезапустите ddrescue:

ddrescue /dev/sdd "/media/myname/New Volume4/backup.dmg" "/media/myname/New Volume4/logfile.log"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .