我正在学习使用 ddrescue,我想知道 -d(直接)选项的用途以及建议在什么情况下使用。
答案1
在某些情况下-d
(或--idirect
)允许您挽救更多数据。
这是真的,man ddrescue
很快就说这意味着
对输入文件使用直接磁盘访问
这可能无法解释很多。不过还有GNU ddrescue 在线手册:
11 直接光盘访问
如果您注意到位置和大小地图文件始终是扇区大小的倍数,也许您的内核正在缓存磁盘访问并对它们进行分组。在这种情况下,您可能需要使用直接光盘访问内菲莱,或从原始设备读取,以绕过内核缓存并挽救更多数据。
笔记!必须使用
--sector-size
直接磁盘访问选项正确设置扇区大小才能正常工作。注意:直接磁盘访问可以通过读取整个扇区然后仅写入请求的部分来复制任意域。这是 ddrescue 尝试读取救援域之外的数据的唯一情况。
首先尝试该
--idirect
选项。如果您的系统中无法直接访问光盘,请尝试原始设备。阅读系统文档以了解如何将原始设备绑定到常规块设备。某些操作系统通过特殊设备名称提供原始访问,例如/dev/rdisk
.Ddrescue 将其 I/O 缓冲区与扇区大小对齐,以便它可用于直接磁盘访问或从原始设备读取。出于效率原因,如果页面大小是扇区大小的倍数,则还将其与内存页面大小对齐。在某些系统上,ddrescue 无法确定原始设备的大小,因此可能需要显式
--size
或选项。--complete-only
使用直接磁盘访问或从原始设备读取可能比正常缓存读取慢或快,具体取决于您的操作系统和硬件。如果速度较慢,您可能需要使用正常的缓存读取进行第一次传递,并使用直接磁盘访问或原始设备,仅恢复故障块内的好扇区。