固态硬盘格式化 硬盘格式化3次无法恢复数据


是否可以恢复固态硬盘删除或格式化的数据?很多人向数据恢复公司咨询后得到的回答通常是:难以恢复。真的是这样吗?背后的原因又是什么呢?阅读完这篇文章,您将对此有个更清晰的认识。

一、TRIM的工作原理及其重要性

在操作系统中删除文件时,系统并不会真正销毁文件数据。相反,它只是将文件所占用的存储空间标记为“空闲”,以便于未来写入新的数据。这一操作是在文件系统层面进行的,硬盘本身并不知道哪些数据已经“无效”。在机械硬盘(HDD)上这通常不是问题,因为它们支持覆盖写入。在固态硬盘(SSD)上,情况就不同了。

由于NAND(闪存)的特性,固态硬盘(SSD)不支持覆盖写入,而是需要先进行擦除操作然后再写入新数据。这导致了固态硬盘陷入一个困境:随着越来越多的数据被写入,硬盘会变得越来越慢。为了获得“空闲”的闪存空间来进行新的写入操作,固态硬盘(SSD)需要进行垃圾回收(GC)操作。而TRIM指令,又称为disable delete notify,是操作系统发给NAND(闪存)存储设备的指令,告诉它哪些数据可以被擦除。

执行TRIM操作的意义在于:它能够大量减少“有效”页数据的数量,从而大大提高GC的效率。特别是对于消费级的SSD,由于其一般拥有较少的OP(Over-Provisioning,即预留空间),因此TRIM的操作显得尤为重要。

二、哪些操作系统和文件系统支持TRIM?

TRIM指令是微软和各大硬盘厂商共同开发的技术,属于ATA8--ACS规范的一部分。在Windows操作系统下,NTFS和ReFs文件系统支持TRIM指令,而exFAT和FAT16/32文件系统则不支持。一些较旧的Windows版本如XP、2003和2008也不支持TRIM。Windows 7及以后的版本基本都支持TRIM功能。

如何检查Windows系统中是否启用了TRIM功能?可以通过一个命令行工具来查询:C:\>fsutil behavior query disabledeletenotify。如果收到的指令值是0,则表示已经启用了TRIM功能;如果是1,则表示没有启用。

三、USAP协议的作用与条件

由于TRIM是一个ATA指令,那么它是否适用于移动固态硬盘呢?实际上,对于移动硬盘盒内的固态硬盘,如果移动硬盘盒支持UASP(U-Attached SCSI Protocol)协议,那么就可以使用硬盘的TRIM功能。UASP是一个由U-IF制定的传输协议,它可以提升大容量存储设备通过U接口的数据传输速度。

要实现UASP加速,需要满足以下条件:电脑主板的U3.2 Gen 1或Gen2主控芯片需支持UASP;电脑操作系统需是Win8、10或Mac OS 8 & 9及以上的版本;外接设备如移动硬盘盒也需要支持UASP传输协议。

四、哪些情况下可以恢复数据?

虽然大多数情况下固态硬盘(SSD)删除或格式化后的数据是无法恢复的,但也有一些特殊情况可以恢复。例如:在较旧的操作系统如Windows XP下使用SSD;将SSD格式化为exFAT或FAT16/32文件系统;在不支持UASP协议的移动硬盘盒中使用SSD等。

对于使用NVMe协议的SSD来说,其与SATA TRIM指令功能相似的有Deallocate指令;对于SCSI来说,与之对应的不是TRIM而是UNMAP。