是的。如果你做一个正常的格式化,旧的数据是可以恢复的。普通格式只会删除/覆盖一小部分文件系统元数据,但不会覆盖所有数据本身。数据还在。由于 SSD 的磨损均衡和其他功能,SSD 尤其如此。
以下研究论文研究了 SSD 上数据的擦除:
- Michael Wei、Laura M. Grupp、Frederick E. Spada 和 Steven Swanson。 从基于闪存的固态驱动器中可靠地擦除数据。USENIX 文件和存储技术会议,2011 年。
一个重要的教训是,安全擦除 SSD 上的数据有点棘手。一个原因是,由于磨损均衡和其他功能,覆盖 SSD 上的数据并不像您想象的那样工作。当您要求 SSD “覆盖”现有扇区时,它实际上并不会立即覆盖或删除现有数据。相反,它将新数据写入其他地方,然后更改一个指向新版本的指针(留下旧版本)。旧版本最终可能会被删除,也可能不会。因此,即使您认为已擦除的数据也可能仍然存在并可在 SSD 上访问。
此外,SSD 的清理(完全擦除)有点棘手,因为用于磁性 HDD 的方法不一定能在 SSD 上可靠地工作(由于上述磨损均衡和其他问题)。因此,宣传为提供“安全驱动器擦除”功能的实用程序如果应用于 SSD,可能并不完全安全。例如,FAST 论文发现,在大多数情况下,对 SSD 上的所有数据执行两次完全覆盖就足以清理磁盘驱动器,但也有一些例外情况,其中一些数据仍然存在。不希望重复覆盖整个驱动器可能还有其他原因:它非常慢,并且可能会缩短驱动器的后续寿命。
FAST 论文还发现,消磁(用于清理磁性硬盘驱动器的标准方法)在清理 SSD 时根本无效。
此外,FAST 论文发现,用于清理单个文件的标准实用程序在 SSD 上非常不可靠:通常大部分数据仍然存在于驱动器的某个位置。因此,您应该假设没有可靠的方法来安全擦除 SSD 上的单个文件;您需要将整个驱动器作为一个整体进行消毒。
安全擦除整个 SSD 的最可靠方法是使用 ATA Secure Erase 命令。然而,这并非万无一失。FAST 论文发现大多数 SSD 都正确实现了这一点,但不是全部。特别是,他们研究的 12 个 SSD 中有 8 个支持 ATA Secure Erase,4 个不支持。在支持它的 8 个中,有 3 个有一个错误的实现。1 个错误的实现非常糟糕:它报告成功,但实际上留下了数据。这是非常糟糕的,因为软件无法检测到擦除失败。2 个有缺陷的实现失败并留下旧数据(在某些条件下),但至少它们报告了失败,因此如果发送 ATA 安全擦除命令的软件检查结果代码,至少可以检测到失败。
另一种可能的方法是使用全盘加密:确保驱动器上的整个文件系统从一开始就被加密(例如,Bitlocker、Truecrypt)。当您想要清理驱动器时,请忘记所有加密密钥并安全地擦除它们,然后尽可能地擦除驱动器。这可能是一个可行的解决方案,但我个人可能也希望将它与 ATA Secure Erase 结合使用,以获得最佳安全性。
另请参阅本网站上的以下问题: