Byt*_*der 18 ssd hard-drive shredding secure-erase
在尝试安全擦除 SSD 时,我们遇到了几个问题:
现在我们有哪些选项可以从 Ubuntu 内部安全地擦除 SSD?
我听说一些较新的 SSD 应该能够安全地擦除自己,但是我如何确定我的 SSD 是否能够执行此操作以及如何触发它?
还应该有一个 ATA 安全擦除命令,我如何确定它是否受支持以及如何触发它?
是否还有安全擦除给定文件或仅未使用空间的方法?
我想备份所有分区,安全地擦除整个磁盘,然后恢复备份是可能的,但听起来太复杂了,而且需要很长时间才能实用。还有其他选择吗?如果没有,我可以使用哪些工具来备份分区而不备份已删除的文件?
当然,对于上述要点,这里的标准工具类似shred或wipe不可用。它们只是覆盖一个文件(通过覆盖它的文件系统集群,这些集群绑定到 LBA,由于磨损均衡控制器,LBA 不会一直指向相同的闪存单元)。
Dav*_*ter 11
目前没有办法在不擦除整个驱动器的内容或访问 SSD 固件的情况下安全地擦除 SSD 上的文件。
不可能知道 SSD 可能在哪里存储逻辑块的先前副本。
更糟糕的是,由于文件系统的日志记录和写时复制机制,可能无法知道哪些逻辑块可能保存特定文件的先前副本。
防止已删除文件泄露给直接访问驱动器的人的唯一方法是首先对它们进行加密并确保加密密钥不会被窥探。
我做了一些研究,发现如果您设法了解文件系统的所有未占用扇区,您可以某种方式擦除所有以前删除的文件,这通常是可能的,并且由某些文件系统工具提供(例如对于 ext* 系列) ),然后丢弃它们(例如,blkdiscard(8)如链接问题的答案中所述),这将返回用于垃圾收集的块,直到它们再次被使用并在过程中被覆盖。
这对于无法直接访问闪存单元的每个人都是安全的,因此每个
警告:如果尚不清楚,安全擦除驱动器将消除驱动器上的所有数据,并且无法恢复。您应该备份所有关键信息。
确定您的驱动器是否支持安全擦除的最简单方法是询问它:我在下面的示例中使用了/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
Run Code Online (Sandbox Code Playgroud)
在我的 SSD 上,这会导致:
supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
Run Code Online (Sandbox Code Playgroud)
如果您的设备支持安全擦除,则触发过程需要 2 或 3 个步骤。
sudo hdparm -I /dev/sdX类似于以下内容的输出所示:Run Code Online (Sandbox Code Playgroud)not enabled not locked frozen not expired: security count supported: enhanced erase
通过暂停和恢复系统来解冻它。我通过命令sudo systemctl suspend
移动指针直到系统恢复来完成此操作。
您必须设置一个密码才能使用安全擦除,在本例中我使用foobar作为密码,您可以使用您喜欢的任何非空白密码,因为它是临时的。
sudo hdparm --user-master u --security-set-pass foobar /dev/sdX
设置密码后,您现在可以使用它来安全地擦除驱动器:
sudo hdparm --user-master u --security-erase foobar /dev/sdX
如果您的驱动器支持它并且您愿意,您可以选择使用增强的安全擦除:
sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX