在硬盘上使用 dd 来处理坏块?

Ear*_*rlz 6 unix hard-drive dd

我正在寻找使用 dd 来克隆故障硬盘。我担心的是肯定会有坏块。所以我的问题是dd坏块会留下所选块大小(bs)大小的间隙还是只会与硬盘驱动器上的扇区一样大?

Spi*_*iff 4

我很确定它会是两者中较大的一个。

假设您在 中使用 512 字节的块大小dd,但您的磁盘使用 4K 扇区,其中一个扇区已损坏。dd尝试对该 4K 扇区进行的所有四个 512 字节读取都将失败,从而导致 4K 间隙。

现在假设您使用 8Kdd块大小,但磁盘使用 4K 扇区。当dd尝试执行 8K 读取时,它将失败,因为读取中的一个扇区失败,从而导致 8K 间隙。

现在可能是提一下GNU ddrescue(不要与同名的非 GNU 软件混淆)的好时机,它基本上自动使用 dd 来救援故障驱动器,并具有一些效率技巧。为了提高速度,它从较大的块大小开始,但它会跟踪看到坏块的位置,然后返回尝试以较小的读取大小读取其中的不同部分,直到它下降到绝对无法读取的 512 字节列表块。我花了一段时间才理解文档,但一旦我弄清楚了,我发现它是一个非常有用的工具,并且比我自己直接使用 dd 来完成此类任务更好。