
と ログ ファイルを使用して 500 GB のディスクをイメージ化しようとしていますGNU ddrescue
。 420 GB に到達した時点で で停止しましたctrl+c
。しばらくしてからコマンドを再度実行すると、ログ ファイルがあるにもかかわらず、最初からやり直しになりました。
古いログファイルは によって上書きされましたddrescue
。
前にも言ったように、私のイメージ ファイルは、これまでのところ 500 GB のディスクのうち 420 GB です。ログ ファイルを編集するか、ddrescue
420 GB あたりから再開するように指示するにはどうすればよいでしょうか。420 GB に到達するまでに何日もかかりましたddrescue
。このプロセスをもう一度やり直したくありません。
ログファイルは次のとおりです:
# 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
ログ ファイルの 16進0x0C770000
数は、約 200 MiB が読み取られたことを示しています。これは、ddrescue
最初からやり直したというあなたの主張を裏付けています。
変更するには、まず画像のほぼサイズを 16 進数で取得します。
printf "%x\n" $(($(wc -c < "/media/myname/New Volume4/backup.dmg")-4096))
(念のため実際のサイズから減算しました4096
。おそらく不要ですが、害はありません。)
次に、0C770000
ログ内のすべての数字を結果の数字に置き換えます (3 回の置き換えが必要です)。0x
触れてはいけないプレフィックスがあることに注意してください。これを行うには、次のようにしますsed
。
sed -i 's/0C770000/the_resulted_number_here/' "/media/myname/New Volume4/logfile.log"
注: 2 回目の試行が続行されずに最初からやり直された理由はわかりません。ログ ファイルは、中断されたパスの後の (ほぼ) 状態になっています (読み取りエラーがなかった場合) であるため、この動作は同じ (まだ不明な) 理由で再び発生する可能性があります。
再起動ddrescue
:
ddrescue /dev/sdd "/media/myname/New Volume4/backup.dmg" "/media/myname/New Volume4/logfile.log"