如何使用终端安全地擦除 Mac 机械驱动器上的可用空间

macOS Big Sur 终端图标

如果您要出售带有硬盘驱动器、备用硬盘驱动器的旧 Mac,或者您只是对已删除的数据非常偏执,那么您要么熟悉(或者应该熟悉)”擦除可用空间”磁盘实用程序中”擦除”选项卡上的按钮(位于”应用程序”->”实用程序”文件夹中)。

编者注:此终端提示最初于 2009 年 3 月运行,仅适用于机械硬盘,不适用于较新 Mac 中的 SSD。

当您单击此按钮时,您会看到三个选项,用于安全地擦除硬盘上的可用空间:用零覆盖可用空间(快速且相对安全),将可用空间覆盖三次(更多)安全,非常慢),或者在可用空间上写入七次(非常慢)。

每当出售带有硬盘驱动器的旧机器时,都可以使用此功能。格式化驱动器并安装 macOS 的全新副本,然后使用”磁盘工具”擦除可用空间(通常是一次性写入零选项)。这给了我一种很好的安全感,因为需要一支由专门的专业人员组成的团队,可能还需要特殊的硬件,才有机会恢复我删除的任何数据。

使用终端安全擦除驱动器

如果您想从终端执行此操作该怎么办?在终端中,名为 diskutil 的程序提供了 macOS 磁盘实用程序的大部分功能。

(请注意,与许多终端命令一样,如果您按照以下说明犯了错误,则可能会发生非常糟糕的事情。请谨慎操作,并在尝试以下任何操作之前确保您的备份是最新的.)

要详细了解 diskutil,请在终端提示符下键入 man diskutil。在手册页中,您将找到有关如何使用diskutil安全擦除磁盘可用空间的说明:

secureErase [可用空间]级别的设备擦除,使用”安全”(但请参阅下面的注释)方法,可以是整个磁盘(如果已分区,则包括其所有分区),或者仅是可用空间(未用于文件)位于当前安装的卷上。安全擦除使得使用”文件恢复”软件恢复数据变得更加困难。擦除整个磁盘将使其无用,直到再次分区。擦除卷上的可用空间将使您的文件保持完整,事实上,从最终用户的角度来看,它看起来没有任何变化,但它会尝试使已删除的文件无法恢复。如果您需要擦除卷上的所有内容分区但不是其托管整个磁盘,请使用 ZeroDisk 或 randomDisk 动词。需要受影响磁盘的所有权。级别应为以下之一: o 0 – 单遍零填充擦除。 o 1 – 单遍随机填充擦除。 o 2 – 七次擦除,包括零填充和全一填充以及最终的随机填充。 o 3 – Gutmann 算法 35 遍擦除。 o 4 – 三遍擦除,由两次随机填充和最后一次零填充组成。注意:这种安全擦除不再被认为是安全的。现代设备具有磨损均衡、块备用和可能持久的缓存硬件,这些硬件无法通过这些命令完全擦除。快速安全地擦除数据的现代解决方案是加密。高度加密的数据可以通过销毁(或丢失)密钥(密码)立即”删除”,因为这实际上会使您的数据无法恢复。考虑使用 APFS 加密 (FileVault)。

但是,您如何确定要为设备列出的内容,即具有您要安全擦除的可用空间的磁盘(或分区)? diskutil 也可以提供该信息。只需使用diskutil list即可查看所有驱动器和分区的列表。在最右侧,您会看到一个 IDENTIFIER 列;该列包含 diskutil 所需的标识符。以下是我机器上的 list 输出示例:

终端擦除可用空间

您只需了解最后一点信息即可从命令行擦除硬盘上的可用空间。在 Unix 中,所有设备都显示为文件系统树的一部分,而在 macOS 中,它们都列在 /dev 目录中。因此,如果我想使用 diskutil 擦除外部驱动器上 Apple_HFS Untitled 卷上的可用空间,使用单遍方法,最终命令将如下所示:

diskutil secureErase 可用空间 1 /dev/disk2s1

警告!包含该命令的 freespace 部分非常重要。如果不这样做,diskutil 将很乐意开始安全地擦除整个磁盘,而不仅仅是可用空间!是的,这确实是一件糟糕的事情,特别是因为它将被安全地删除,这意味着您将无法恢复数据。