我的系统是 Manjaro (Arch) Linux。我有 GNU ddrescue
v1.23-1(最近安装)。
恢复时ddrescue
,我输错了映射文件。现在我有一个图像和两个日志文件。
第一天,我拯救了磁盘的开头部分。第一天的命令:
sudo ddrescue -vn /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile
第二天,我抢救了磁盘末尾的一些数据。(我想加快速度,因此我将-N
和 降低-c
到32KiB
,并且我想sdc2
首先恢复分区的大致区域。我的sdc
磁盘文件系统已损坏,因此我无法ddrescue
sdc2
具体了解,但我可以使用 来估计其位置和大小-i144000MiB
-s50000MiB
)
第 2 天命令:
sudo ddrescue -vN -c 32KiB -i144000MiB -s50000MiB /dev/sdc /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfileq
在这两个命令中,我都正确地将图像名称输入为DDRnKB1
,但在第二天的命令中,我意外地将 mapfile 错误地输入为。~kb1mapfileq
我尝试使用此方法进行合并:
ddrescue -m logfile2 image2 image1 logfile1
因此我的合并命令是:
sudo ddrescue -m ~/kb1mapfileq /run/media/ab/2Nes1T/DDRnKB1 /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile
但ddrescue
返回:
ddrescue: Infile and outfile are the same.
我猜我可以复制我的图像并执行以下操作:
sudo ddrescue -m ~/kb1mapfileq /run/media/ab/2Nes1T/DDRnKB1COPY /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile
...但是我的图像文件几乎有 500GB,我觉得复制 500GB 来适应上述命令有点不切实际。
有没有合并的方法只是映射文件(日志文件)?
答案1
使用ddrescuelog --or-mapfile
。
Ddrescuelog 是一个操作 ddrescue mapfile 的工具
(来源)
-z file
--or-mapfile=file
对文件中已完成的块和映射文件中的块执行逻辑或运算,并将生成的映射文件写入标准输出。换句话说,如果块在两个输入映射文件之一中已完成,则在生成的映射文件中将显示该块已完成。
(来源)
调用这个:
# but see the warning below!
ddrescuelog -z ~/kb1mapfileq ~/kb1mapfile > ~/kb1mapfile-merged
警告:请勿重定向至~/kb1mapfile
(或~/kb1mapfileq
)或你会失去它。
结果在~/kb1mapfile-merged
。确认正确后(ddrescueview
是正确的工具),覆盖旧的 mapfile(cp ~/kb1mapfile-merged ~/kb1mapfile
)。