硬盘擦除中的 hdparm 与 /dev/zero

use*_*770 9 hard-drive disk-cleanup hdparm

那么,什么更安全,为什么?

hdparm --security-erase-enhanced NULL /dev/sdX
Run Code Online (Sandbox Code Playgroud)

或者

dd if=/dev/zero of=/dev/sdx
Run Code Online (Sandbox Code Playgroud)

Jou*_*eek 7

它们使用不同的方法,其有效性可能取决于驱动器。前者使用“较新”的ATA 安全擦除命令,而后者只是用零覆盖它。

对于不支持 ata 安全擦除的真正旧驱动器,后者是唯一的方法 - 它只是用零覆盖驱动器,在许多情况下就足够了(尽管使用类似 shred 命令的东西更好 - 因为它专为清除数据而设计,与 DD 不同)。擦除后将无法访问大多数驱动器。

但是,对于 SSD,出于磨损均衡目的,数据会被有意在内部进行加扰和存储。用零覆盖它应该可行,但不确定 - 在这种情况下,进行 sata 安全擦除是更好的解决方案。它还可以在遭受写入放大的驱动器上提供短期性能提升。Sata 安全擦除会触发内部擦除方法,是确保擦除的最佳方式。

在大多数现代驱动器中,hdparm 方法应该足够可靠以供使用。如果出于某种原因需要将驱动器归零,请使用 dd 方法。

  • 请注意,hdparm 根据驱动器报告其安全擦除应花费的时间来强加超时。(这显示在 `hdparm -I` 输出的安全部分。)如果驱动器不提供该信息,hdparm 假定硬编码限制为 3 小时。有一些(较旧的)驱动器不会报告擦除需要多长时间,但需要 3 个小时以上,因此 hdparm 将停止等待并在擦除完成之前重置驱动器。如果您在 `hdparm -I` 输出中没有看到像“322min for SECURITY ERASE UNIT”这样的行,请注意这一点。 (2认同)