如何仅合并“ddrescue”的 mapfile?(只有 mapfile 输入错误)

如何仅合并“ddrescue”的 mapfile?(只有 mapfile 输入错误)

我的系统是 Manjaro (Arch) Linux。我有 GNU ddrescuev1.23-1(最近安装)。

恢复时ddrescue,我输错了映射文件。现在我有一个图像和两个日志文件。

第一天,我拯救了磁盘的开头部分。第一天的命令:

sudo ddrescue -vn /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile

第二天,我抢救了磁盘末尾的一些数据。(我想加快速度,因此我将-N和 降低-c32KiB,并且我想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)。

相关内容