将磁盘映像写回到有坏块的磁盘

将磁盘映像写回到有坏块的磁盘

我正在尝试通过创建磁盘映像而不是复制文件来备份硬盘。

如果我用类似的东西创建了一个图像

dd if=/dev/sdb of=/backup/sdb.img

如果我将此图像写回到同一个磁盘,会发生什么?

dd if=/backup/sdb.img of=/dev/sdb

磁盘自创建映像以来是否已出现一些损坏的块?磁盘是否仍能工作,还是会出现文件损坏、无法启动等问题?如果硬盘完全损坏,是否可以将其写回到大小相同的新硬盘上?

我对硬盘内部工作原理的了解还不够,无法独自弄清楚这一点,而且测试起来也相当困难。

答案1

DD 会将映像上的任何内容完美地逐位复制到驱动器中。但是,现代磁盘足够聪明,可以抽象出任何坏块并为您组织一切。如果您知道有坏块,您应该知道您的磁盘随时可能坏掉(但您有备份,太好了! - 不要将其视为短期解决方案以外的任何其他问题)。使用坏块进行格式化(Windows 完整格式或带有 -c 标记的某些类型的 mkfs)应该可以让磁盘将坏块标记为坏块,并且您应该能够利用磁盘内部标记方法。

为确保万无一失,您可以运行 smartmontools(我使用它的图形前端 - gsmartcontrol),并检查成像之前和之后待处理的扇区重新分配计数。

答案2

如果磁盘启动时出现错误,并且这些错误不是 UNC(软错误),而是硬错误,那么你的第二个命令将失败并出现以下错误:

dd: writing to '/dev/hdc': Input/output error
499969+0 records in
499968+0 records out

您可以尝试添加 conv=errors - 也许它会成功。

如果那是 UNC 错误 - 那么它将会成功并且磁盘将完全可用。

图像可以写入另一个容量相同或更大的磁盘。

同时,如果你的问题不是关于dd硬盘恢复问题,我建议你寻找救援或者克隆兹拉

相关内容