使用磁盘工具安全擦除硬盘驱动器

Ste*_*ker 42 disk-utility gnome-disk-utility secure-erase

我打算卖掉我的笔记本电脑。所以我使用磁盘工具格式化了我的磁盘并选择用零覆盖磁盘。

两个问题:

这与使用 覆盖磁盘相同dd吗?

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

这种方法是否足够安全,以至于买家无法轻松恢复以前的数据?或者我应该采取其他措施(例如加密磁盘、破坏标头等)?

Dav*_*ter 38

是的,磁盘实用程序使用的方法类似于dd您所描述的方法,或者更快速、更安全的方法,例如:

dd if=/dev/urandom of=/dev/sda bs=1M
Run Code Online (Sandbox Code Playgroud)

这比仅零引入了更多的覆盖模式模糊,这应该更难以恢复,但执行起来不会明显变慢。

有些人声称,这还不够,应该多次覆盖硬盘并使用更复杂的模式(scrub(1)可以根据另一个答案同时进行),但大多数人会说一次就足够了,如果攻击者想要恢复超过几位有很大的机会。

编辑:显然/dev/urandom在包括我在内的至少两个系统上达到 ~13 MiB/s 的峰值。因此simonp提出了不同的方法使用openssl(1)

head -c 32 /dev/urandom | sudo openssl enc -rc4 -nosalt -pass stdin -in /dev/zero -out /dev/sda
Run Code Online (Sandbox Code Playgroud)

  • 有这么多方法,我只是想知道磁盘工具是否足够安全。我不想把这东西拖出来,只想让它足够干净以供出售,并确保没有人可以轻松获取我的数据。谢谢回答。 (2认同)
  • 使用“/dev/urandom”比“/dev/zero”慢得多(在我的笔记本电脑上达到 13MB/s 的峰值,而 ~0.5GB/s)。有关在 Linux 中生成随机数的更快方法,请参阅 http://serverfault.com/a/415962。例如 `openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | pv -pterb -s $(sudo blockdev --getsize64 /dev/sdb) | pv -pterb -s $(sudo blockdev --getsize64 /dev/sdb) | sudo dd of=/dev/sdb bs=1M` (2认同)

NGR*_*des 17

另一个可供参考的选项是使用 hdparm 的 ATA 安全擦除方法。

使用诸如 sa DD 之类的操作系统级命令的问题在于它们只会擦除操作系统可见的块。任何备用块(尤其是 SSD 上的保留单元)都不会被擦除。

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase


重申:(2017-7 月)

唯一可行的方法(对于HDDSSHDSSD)是使用ATA 的“增强型安全擦除”(ESE)命令来“删除”所有存储的和残留的数据。

如果无法使用此命令,则需要“销毁”介质(转换为 <2 毫米大小的碎片,或在熔炉中熔化)。

笔记:

  • 此建议忽略较旧的磁介质(从2001 年之前开始和/或容量小于 15GB)。
  • 由于 ESE 实施不当,一些 PC BIOS(或操作系统)阻止运行 ATA 命令,并且一些(更旧的)品牌/型号(驱动器)存在问题。
  • 较小 ATA“安全擦除”命令,但只覆盖与“零”,而不是随机的图案。
  • 唯一真正比使用 ESE更好的方法是首先不在驱动器上保存数据。这可以通过使用全盘加密(FDE) 或自加密驱动器(SED) 来实现。

  • 这不是“另一种”选择,它是唯一有机会成功的选择。 (6认同)

Pan*_*her 16

“引导行”AFIK 是数据必须被覆盖或可以检索。有很多工具/方法可以做到这一点。

共识是你只需要通过一次,所以额外的通过需要额外的时间,并对硬盘造成过度磨损。

虽然有很多解决方案,但我更喜欢scrub.

scrub /dev/sda
Run Code Online (Sandbox Code Playgroud)

或者如果你喜欢

scrub -p dod /dev/sda
Run Code Online (Sandbox Code Playgroud)

也可以看看