如何安全地从 SSD 驱动器擦除文件?

如何安全地从 SSD 驱动器擦除文件?

当尝试安全擦除 SSD 时,我们遇到了几个问题:

  • SSD 经过有限次数的擦除循环后就会磨损
  • SSD 有一个控制器,可以动态地将 LBA(系统用于访问磁盘的逻辑块地址)映射到 NVRAM 单元(实际的闪存单元),以平衡磨损。这意味着告诉磁盘覆盖以前存储特定文件的块可能会导致覆盖任何其他备用块。
  • SSD 具有相当一部分的备用容量,用于补偿即将报废的存储单元并减少磨损。它们对系统不可见,并且可能保留旧数据片段。

现在我们在 Ubuntu 内部有哪些选项可以安全地擦除 SSD?

我听说一些较新的 SSD 应该能够安全地自行擦除数据,但我如何知道我的 SSD 是否能够做到这一点以及如何触发它?
还应该有一个 ATA 安全擦除命令,我如何知道它是否受支持以及如何触发它?

是否还有其他方法可以安全地擦除特定文件或未使用的空间?
我猜备份所有分区,安全地擦除整个磁盘,然后恢复备份是可能的,但这听起来太复杂,而且需要很长时间才能实现。还有其他选择吗?如果没有,我可以使用哪些工具来备份分区,而无需备份已删除的文件?

当然,像shred或者wipefs由于上述原因,它们在这里不可用。它们只是覆盖文件(通过覆盖其文件系统簇,这些簇绑定到 LBA,由于磨损均衡控制器,这些 LBA 不会持续指向相同的闪存单元)。

答案1

目前,没有办法安全地擦除 SSD 上的文件,除非删除整个驱动器的内容或访问 SSD 的固件。

  • 我们不可能知道 SSD 可能将逻辑块的先前副本存储在哪里。

  • 更糟糕的是,由于文件系统的日志记录和写时复制机制,可能无法知道哪些逻辑块可能保存着特定文件的先前副本。

防止已删除文件泄露给可直接访问驱动器的人员的唯一方法是首先对其进行加密,并保证加密密钥不被窥探。

附录:

我做了一些研究,发现你可以删除全部如果您设法了解文件系统的所有未占用的扇区,这通常是可能的,并且由一些文件系统工具(例如 ext* 系列)提供,然后丢弃他们(例如blkdiscard(8)如上所述在这个链接问题的答案中),它将返回块进行垃圾收集,直到它们在过程中被再次使用和覆盖。

这对于无法直接访问闪存单元的人来说是安全的,因此

  • 没有合适的闪光细胞读取设备,并且
  • 无法让驱动器固件显示未分配块的内容(由于没有标准化的方法,因此在大多数情况下这需要对固件进行有意义的修改和自定义 ATA 命令)。

答案2

警告:如果还不清楚,安全擦除驱动器将删除驱动器上的所有数据,并且无法恢复。您应该备份所有关键信息。

确定你的驱动器是否支持安全擦除的最简单方法是询问它:我用过/dev/sdX在以下示例中。您需要仔细更改它以匹配您正在使用的设备:

资料来源:

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

https://superuser.com/questions/1161531/how-to-un-freeze-drive-in-linux

$ sudo hdparm -I /dev/sdX | grep -i erase

在我的 SSD 上,结果如下:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

如果您的设备支持安全擦除,则触发该功能需要 2 或 3 个步骤。

  1. 如果设备报告它已冻结,如sudo hdparm -I /dev/sdX类似这样的输出所示:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

通过暂停并恢复系统来解除冻结。我使用命令sudo systemctl suspend 移动指针直到系统恢复。

  1. 您必须设置密码才能使用安全擦除,在这种情况下我使用福巴作为密码,您可以使用任何您喜欢的非空白密码,因为它是临时的。

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. 设置密码后,您现在可以使用它来安全地擦除驱动器:

sudo hdparm --user-master u --security-erase foobar /dev/sdX

如果您的驱动器支持它并且您愿意,您可以选择使用增强的安全擦除功能:

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

相关内容