Linux dd 擦除安全性

Linux dd 擦除安全性

我对“dd”实用程序有一些疑问,希望有人能帮忙。请仅在您确定答案的情况下回答!

我这里遇到的情况是,我的硬盘上有坏道,我需要擦除它才能将其存档。我想退役相应的硬盘,然后我开始使用一次性清零来擦除它。

dd if=/dev/zero of=/dev/sda status=progress

在擦除时正好有 3.7 GB(HDD 有 500 GB 容量),它总是抛出“I/O 错误”,并且 dd 实用程序存在。

我估计那里有一个坏扇区或者类似的东西......

现在,我有多个问题/问题:

  1. 有没有一种方法可以擦除相应 HDD 的所有扇区,即使有坏扇区?或者至少跳过坏扇区并继续擦除具有好扇区的其余 HDD?... 在“dd”中使用“conv=noerror”不起作用,因为据我所知,“conv=noerror”仅跳过“if”设备(输入设备)中的信息,而不跳过“of”设备(输出设备)中的信息。我读了一些关于 ddrescue 和 badblocks 等的内容,但我心里没有一个明确的答案...

  2. 我读到过一些文章说“dd”并不是清除硬盘数据的好工具...更准确地说,我听说“dd”会跳过硬盘可能保留的一些扇区(例如坏扇区)。我需要“DD”来访问我所有的硬盘空间。

我想说的是,我使用“dd”清理了我所有的硬盘 15 年。其中只有极少数硬盘会抛出“I/O 错误”,而且这些硬盘都被归档,从未被送出,正是因为完全清理的不确定性……所以我没有冒任何风险……但是,我有一些硬盘被完全清理了,没有抛出任何 I/O 错误。

“DD” 有没有可能没有从这些硬盘上擦除所有内容?如果我使用“dd”,并且它一直运行,直到出现“设备上没有剩余空间”消息,我可以安全地假设它擦除了所有硬盘空间吗?或者即使在这些情况下,是否有一些扇区/块可能已被保留,而“dd”无法触及这些扇区/块?(在这种情况下,这是一个安全问题)...

谢谢 !

亚当。

答案1

执行所需操作的最佳方法是使用 gnu 实用程序 gnu ddrescue(在 Debian / Ubuntu 系统上安装 apt gddrescue)。它能够“跳过”损坏的扇区,还可以跳过带有直接 i/o 的内部缓冲区,并删除除损坏扇区外所有可写的扇区。info ddrescue 提供文档和示例。

相关内容