dd 命令足以删除硬盘上的所有数据吗?

dd 命令足以删除硬盘上的所有数据吗?

我需要从安装了 lubuntu 22.04 的硬盘中删除所有数据。我正在考虑从 Ubuntu liveUSB 映像启动,并从终端使用以下命令:

# the Hard Disk is the device file /dev/sda
> sudo dd if=/dev/zero of=/dev/sda

这个链接说:

请注意,这将删除所有分区信息,但不是“磁盘擦除”或“安全删除”。如果您想真正确定数据无法恢复,最有效的工具是锤子。

在阅读这些句子之前,我的印象是该dd命令可以安全地删除硬盘上的所有数据。

单独的命令dd不足以安全地擦除硬盘吗?

答案1

我认为dd来自/dev/zero/dev/urandom可能就足够了,如@roaima在他的评论中。但为了确保您的安全,我会使用以下专用工具之一:

  • shred(来自 GNU)
  • scrub(来自红帽)

这些工具专门用于使用多次传递安全擦除硬盘、写入随机数据等。

这是一些进一步的文档:

答案2

而mkfs(make文件系统)或gpartd(分区磁盘)和类似命令make文件由于无法访问,硬盘上的原始数据(分区表或文件系统元数据除外)不会被这些命令更改。

为了演示,如果您有一个备用磁盘或 USB 记忆棒,请将其命名为 /dev/$disk,对其进行分区,在其上创建一个 FS,用文本文件填充它,然后运行 ​​mkfs 或 gpartd,然后dd if=/dev/$disk | strings看看是否有任何看起来熟悉的东西。然后运行dd if=/dev/zero of=/dev/$disk以清除它,dd if=/dev/$disk | strings或者dd if=/dev/$disk | od -c查看它现在是空的。

请注意,SSD 或新硬盘可能需要其他工具。此外,使用 LUKS 加密磁盘的大部分或全部内容会导致其他人(缺少密码或令牌)无法出于大多数实际目的读取该磁盘。

答案3

最快的清除所有文件的方法是在文件系统上运行 mkfs(在存储可用之前应用此处的大部分建议后,无论如何您都需要这样做)。

即使使用“dd”,磁盘上以前的数据(并有可能至少追溯到一代人)仍然可以被使用复杂的取证工具的人恢复。如果(例如)您正在为监视气球实施捕获响应系统,则使用“碎片”或炸药。

相关内容