我正在尝试使用GNU ddrescue
日志文件对 500GB 的磁盘进行映像。我达到 420GB 后,我用 停止了它ctrl+c
。一段时间后,我再次运行该命令,尽管有一个日志文件,但它又重新开始了。
旧日志文件已被覆盖ddrescue
。
就像我说的,到目前为止,我的映像文件占了 420GB,而磁盘大小为 500GB。我该如何编辑日志文件或指示从 420GB 左右ddrescue
恢复?我花了好几天的时间ddrescue
才达到 420GB。我不想重新开始这个过程。
这是日志文件:
# 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
日志文件中的十六进制数字0x0C770000
表明读取了大约 200 MiB。这证实了您的说法,即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"