今天一位客户来找我帮他恢复电脑里删除的数据库,但是最后没恢复成功,原因是他的硬盘是固态硬盘SSD。对,是固态硬盘。
那为啥固态硬盘删除和格式化后数据就无法修复数据,今天跟大家讲个明白。过程有点长,请耐心看完。
首先我们要先知道我们在点击“删除”后系统对我们的硬盘做了什么。
当我们在操作系统中删除一个文件时,系统并没有真正删掉这个文件的数据,它只是把这些数据占用的地址标记为‘空’,即可以覆盖使用。也就是说系统允许你在这个地方再存储别的文件。
但这只是在文件系统层面的操作,硬盘本身并不知道哪些地址的数据已经‘无效’,除非系统通知它可以在这些地址写入新的数据。在HDD(机械硬盘)上本无任何问题,因为HDD允许覆盖写入(被覆盖的数据一样不能恢复)。但到SSD(固态硬盘)上问题就来了,因为闪存不允许覆盖,只能先擦除再写入,所以在删除文件后,操作系统会发送给SSD一个TRIM指令开始执行安全擦除操作,得到‘空闲’的闪存空间来等待下一次写入。因为这样在写入操作过程中就不用再花时间去擦除原本的数据了,写入速度要快得多,但也导致数据无法恢复。
其实TRIM指令是可以关闭的,大家想要知道自己的SSD是否已经使用了TRIM指令的话,可以用管理员模式启动命令提示符,以Windows 10 为例输入:
fsutil behavior QUERY DisableDeleteNotify
如果显示的是“DisableDeleteNotify = 0”就是开了,“1”就是没开,数据恢复有望。
关闭TRIM指令可以在命令提示符(管理员)中输入“fsutil behavior set disabledeletenotify 1”就齐活了!
最后要说明一下,也是友情提示,TRIM指令不仅可以提高存储数据的效率,也提升了SSD的寿命。除非你是土豪,否则不建议关闭TRIM指令,最好是SSD HDD一起使用。