删除文件并清空回收站后找回数据的原理

时间:2024-04-14 17:04:25

清空回收站后数据就彻底消失了?

答案:不。


数据删除与恢复的原理

电脑是用2进制进行存储和计算数据的,磁盘同样也是利用2进制进行存储数据,无论是电脑上的磁盘还是手机上的内存颗粒都是这样。

假设一块磁盘可以存储64字节的数据。这时候64个格子里什么数据都没有,默认就全部是0:

删除文件并清空回收站后找回数据的原理

现在假设有这么一组大小是13个字节的数据他们合起来叫文件A:

删除文件并清空回收站后找回数据的原理

这时把这13个字节存入到这块磁盘:

删除文件并清空回收站后找回数据的原理

但是系统不知道哪些数据是文件A的,所以用红框框出来:

删除文件并清空回收站后找回数据的原理

告诉系统红色的框就是一个整体的文件,这个红框就叫FAT表。

FAT表:用来描述文件系统内存储单元的分配状态和文件的内容前后链接关系的表格。

有了FAT表后,磁盘才知道哪些数据合起来是一个文件。


磁盘数据是如何恢复的?

一般删除文件就是ctrl+D,然后该文件就到回收站里。

回收站就是一个另类的文件夹而已,删除的文件并不会直接消失而是先放入文件夹让我们有“反悔” 的机会。

然后很多人还会把回收站清空,清空回收站执行的操作就是删除该文件在FAT表中的记录。

也就是说执行彻底删除,删除并清空回收站或shift+del不进入回收站的删除,系统完成的操作就是在FAT表中标记这个文件已经被移除了。然后把红框从磁盘上拿掉了。但是文件那些0101的数据本质上还是存在的。

这就是数据删除了可以被恢复的原因,因为我们的数据本质上并没有消失,还存在我们的磁盘里,只是FAT表中的记录没了。

为什么删除文件只是删除FAT表呢,而不是直接把那一块区域全部清空?

原因是机械硬盘的工作原理比较特殊。在写入新的数据的时候可以直接往旧的数据上去覆盖。所以,删除旧的数据的时候拿掉FAT表就可以了,下次还要往里写入数据的时候直接往上覆盖就OK。

如果删除数据以后还需要全部填充回默认的0000那就会占用一定的磁盘性能,而且反正能直接覆盖上去填充回0又有啥意义。

所以,机械硬盘不小心删除的数据是可以通过一定的方法去进行恢复的。删除文件以后只是删除了FAT表当中记录,数据还是存在磁盘表面。

磁盘存储FAT表时是按照一定的算法进行的,只需要利用软件根据算法逆推回原来的FAT表,数据就可以被找回了。

而数据找回软件百度一大片。

就算FAT表不能进行恢复,数据恢复行业还有很多黑科技,例如磁隧道显微镜可以直接在硬盘表面上找0101 的数据,很多的机械硬盘被火烧、几十层楼掉下去摔碎了磁盘变形了、盘表面被划了,都是有一定几率找回数据的。

就数据的安全性讲,机械硬盘可以给我们留更多的后路。

提早及时备份才是王道。

 

上面是对于机械硬盘而言,对于固态就不适用了。固态硬盘在写入新数据的时候必须要保证那一块的区域是空的,如果不是空的,就需要先进行擦除操作,再进行写入。固态硬盘不像机械硬盘那样直接往旧数据上覆盖。也正是这个原因,固态硬盘内部的特殊功能:TRIM回收指令。

假如有个固态硬盘,用了一段时间然后删掉了一些数据,下一次再进行写入数据的时候刚好用到这一块区域。因为需要先进行擦除操作就会浪费一定的磁盘性能,所以写入的速度就会发生下降。这就是为什么固态硬盘用久了就会发生降速的现象。降速不只是只需要擦除数据这一个原因导致的。

为了避免出现固态硬盘降速的情况,固态硬盘的厂商久搞了TRIM回收指令。在删除数据以后,如果系统检测到我们当前没有进行数据读写,硬盘处于空闲状态,就会开始擦除之前删除的数据,当数据删除完后那块区域久空了,下一次再写入的时候直接往上写就OK了。

古老的Windows XP,系统不支持TRIM回收指令,机械或固态硬盘在系统内部都是一样的,所以那时的固态是越用越慢。

win7后就加入了TRIM指令。

如果开着TRIM,使用的还是固态硬盘,那么清空数据后系统也执行了TRIM擦除,数据就几乎不可能找回了。

总之,使用的是机械硬盘,不小心删除了某个文件,立马停止一切操作,防止系统写入新的数据覆盖了旧数据,找一个别的电脑下载数据恢复软件装进U盘到你的电脑运行。大概率是可以找回源文件的FAT表的。

或者马上断电,然后进入PE,用DG找回。

但是如果使用的是固态硬盘,还开着TRIM指令,那就呵呵了。打钱给数据恢复公司吧。

用机械硬盘不是上面的原因,只是刚好数据恢复的特性,便宜容量大。

不要本着数据安全去买机械硬盘。。。