recuva:为什么删除的数据可以恢复,详解磁盘储存数据与数据恢复的原理

recuva:为什么删除的数据可以恢复,详解磁盘储存数据与数据恢复的原理

今天刷到一个问题“究竟有没有办法可以彻底抹去电子产品里的数据”,其实很多人以为右键删除文件,清空回收站后数据就没了,但是这些数据通过一些特殊方法是可以恢复的,想要了解为什么删除的数据能恢复,就需要我们从磁盘储存数据的工作原理来解释了。

正文部分:

【磁盘存储数据的基本原理】

大家应该都知道我们的电脑是利用二进制储存和计算数据的,我们的磁盘同样是利用二进制来存储数据的。无论是电脑磁盘还是手机上的闪存颗粒都是这样。

设我有个磁盘,他可以储存64字节的数据,那么这时候64个格子里什么数据都没有,默认就全是0


这时候我有这么一组数据,大小是13个字节,他们合起来叫文件A



这时候我把这13个字节的文件A存入这块磁盘,就得到了这么一个情况。



但是这里有个问题,系统并不知道哪些数据是文件A的,所以我们用一个红色的方框把它们框起来,这样告诉系统这个红框框是一个整体的文件。



这个红色的方框就叫FAT表,它是用来描述文件系统内存储单元的分配状态及文件内容的前后链接关系的表格。有了FAT表后我们的磁盘才知道哪些数据合起来是一个文件。


【磁盘数据是如何恢复的】

绝大多数人删除文件,就是右键然后点一下删除,这个文件就到回收站里去了,那么回收站很好理解,就是一个另类的文件夹而已,你删除的文件不会直接消失,而是先放进这个文件夹,让你有一次反悔的机会。


然后很多人还会把回收站清空,那么清空回收站执行的操作就是删除该文件在FAT表中的记录。也就是说你执行彻底删除也就是删除并清空回收站后或者直接shift+delete删除,系统完成的操作就是在FAT表中标记这个文件已被移除,然后把红框框从磁盘上拿掉了,你的文件本质上还是存在的,所以这就是为什么数据删除了可以被恢复的原因,因为你的数据本质上并没有被删除,他还在你的磁盘里



而FAT存储数据的时候是有算法规定的,那么我们按照这个算法的规律逆推回去把这个红框框也就是FAT表重新找回来,那么数据就被恢复了。


【如何彻底删除数据呢】

那么这里就有人要问了,为什么删除数据后系统不把那块区域直接全部清空呢?也就是把所有的数据全部变成0呢?答案是没必要,机械硬盘里新储存的数据是可以直接覆盖在上面的,也就是说,删除文件的FAT表记录后,系统直接在这里标记:空,然后把相应磁盘容量告诉系统这里空了,下次存储数据直接往上覆盖就可以了,这样做的好处是可以大幅减少磁盘读写的次数,提高磁盘工作性能和延长磁盘寿命


既然删除文件只是删除FAT表的记录,那我们的数据就没有办法彻底删除么?当然有,既然FAT表被删除了,磁盘里那块区域就会被标记为空,那新的数据就可以覆盖上去,新的数据覆盖过以后,原来的010101就会被改变,这样就彻底无法恢复了。


那么我们只需要不断的往磁盘里存储无关紧要的文件,这些文件覆盖掉原来的数据就可以达到彻底删除的效果,但是文件在硬盘中是链式存储的(链式存储结构)即一个文件被分散在空间上不连续的簇中。这种分散可以近似认为是随机的,所以有时数据覆盖可能导致被删除的文件破损而不是彻底删除。所以最保险的方法就是重复几次数据覆盖的操作就行了。当然这种操作不需要我们来做,我们自己复制删帖数据去覆盖未免有点太蠢了,目前有很多的软件都可以往磁盘里填充大量的0,你只需要在那挂着让他自己填充就行,重复几次后,这个数据就在也不可能恢复了。那么除了这个方法,另外就是磁场和高温这种暴力破坏了,因为磁盘是利用磁粒吸附的原理储存数据的,所以高强度磁场将会直接破坏磁盘内的全部信息,而且这种破坏是几乎不可能恢复的,同样的高温,高温将会直接改变磁盘的物理结构,这种破坏也是不可逆的。物理拆解破坏是没法破坏磁盘全部的数据的,见过一个磁盘从十几楼摔下来粉碎了,大部分数据都能找回来的。


【误删文件怎么办】

如果你不小心手滑删掉了什么重要的东西,回收站也被你同样手滑清空了,或者你直接用的shift+delete,都没进回收站直接就删掉了FAT表的,那么如果发生了这个情况怎么办?


首先推荐你直接直接停止一切操作,因为你任何的操作都有可能产生缓存文件,这些缓存文件上面我们说过了是随机储存在磁盘上的,万一他就刚好覆盖到你的文件上了,那就彻底没法恢复了。


然后用另外一个电脑下载一个磁盘数据恢复软件,一般这里我自己用的通常是Recuva,当然你也可以用别的软件,目前市面上有大量的数据恢复软件,用U盘拷贝到你要恢复数据的电脑上,直接在U盘内打开,然后开始扫描,这时候就能找到很多被你删除的文件了,你只需要选中后点一下恢复就行。



但是这种利用软件的方法恢复数据是有弊端的,部分数据可能即便没有被覆盖你也找不回来,比如上面我发的这个截图里,红色标记的都是无法恢复的。这时候就要用专业的仪器,比如磁力隧道显微镜直接从磁盘上直接找数据了,而我们自己就没有这个能力了,你就必须要找大型的专业的数据恢复公司才可以完成了。



【SSD能不能恢复数据】

很多人提到固态硬盘里的数据删除了能不能恢复,经过我多方查证,最后确定是NAND颗粒是不能恢复数据的,只有机械硬盘可以恢复数据,固态硬盘是不能恢复的,为什么呢。


机械硬盘删除数据后,删掉了FAT表中的文件信息,而文件本体是还在磁盘上的,下次写入数据直接往上覆盖就行了,因此你删除文件后,机械盘不需要进行其他操作,只需要删FAT表记录就行。但是固态硬盘不一样,固态硬盘要是往上面写入数据,必须要把原来数据擦除干净,才能重新覆写,所以如果你删除文件后,如果不当时就把数据全部变成0,下次再往这里写入数据的时候,就需要先执行擦除,擦除完毕后才能再次写入,那么时间一长,你的干净的磁盘上都写满了数据,那么写入速度就会大幅下降,因为每次写入都要先擦写,这就是我们说的固态硬盘掉速。


所以微软在Windows7系统上增加了一项功能,那就是TRIM垃圾回收功能,系统会自动识别你的磁盘是固态还是机械,如果是机械,那么删除数据后就删FAT表,磁盘表面的数据不动。如果是固态硬盘,你删除文件后,不仅会删除FAT表,还会立马把删除区域的所有数据都变成0,也就是全部擦除,当然这个操作不是立马就去做的,TRIM会在你系统空闲的时候才会去开始擦除磁盘数据。


而目前win7和win10下TRIM是自动打开的,所以如果删除数据,同时系统执行了TRIM,那数据所在的区块就会被全部恢复成0,那是没法找回数据的,因为有这个指令,所以SSD中的数据删除了,是不太可能恢复的。


  • 发表于 2020-11-11 16:34
  • 阅读 ( 149 )

0 条评论

请先 登录 后评论
wanghao
wanghao

33 篇文章

作家榜 »

  1. wanghao 33 文章
  2. lv 0 文章
  3. 陈麒齐 0 文章
  4. 陈芊语 0 文章
  5. wwmelissa 0 文章
  6. cdbbf 0 文章
  7. cxp1609 0 文章
  8. caiyue 0 文章