当前位置: 华文问答 > 数码

在硬盘中,我们删掉的文件去哪里了?而为什么文件在专门的公司又能被恢复?恢复的原理是什么?

2015-09-06数码

昨天的这个时候我还在为获得了50赞而高兴,结果今天就450赞了^_^

对答案做了一些修正,以答谢大家的支持。

创建文件:

盖大楼(文件本体),同时制作一个指向楼的路标(指针)。用户通过路标就能找到楼。

「删除」文件(移动至回收站):

在路标上写一个「拆」字。

恢复文件(从回收站恢复):

将路标上的「拆」字抹掉。

「完全」删除文件(这里的「完全」删除指的是Shift+Delete直接删除,或从回收站删除):

把路标拆了,楼先留着。这样,只记路标位置的用户就无法找到这个楼的具体位置了,而且也不会消耗太多的时间(毕竟拆路标比拆楼容易多了)。

此时,虽然楼还在原地,但是这块地已经被系统认定为「空地」了——文件本体占据的空间被加入到硬盘可用空间中。

恢复文件(恢复「完全」删除的文件):

因为废弃的大楼还在原地,专业的搜救队(数据恢复工具)还是有可能找到它的。然而楼附近很可能都是废墟(被删除数据),它们可能会干扰搜救队的判断,造成抢救失败。 一般来说,搜救队会尝试将楼1:1整体复制到其他场所 ,这样如果抢救失败了,用户还有机会请求其他搜救队的帮助;而如果原地抢救,万一失败,可能会对楼造成无法逆转的破坏。

在英文维基百科上有一些搜救队的联系方式,如有需要可以参考:

List of data recovery software

恢复文件的原理:(评论区 陆涛 问起这个问题,于是补充一下)

从一片废墟中找到目标大楼的「招牌」。找到之后,以找到的楼为原型,在其他地方建造一模一样的新楼。

(招牌:绝大多数的文件都以特定内容开头和结尾,比如GIF格式图片一定是以GIF87a或者GIF89a开头、十六进制数字「3B」结尾。只要定位到特定文件头、文件尾,基本就能确定这部分数据属于同一个文件,以及判断出该文件的格式)

再创建文件:

施工队到达施工现场后,发现这里已经有大楼存在,但是这个大楼已经废弃,于是把它炸了,盖新的楼。这时候原来的楼就彻底找不到了,最多只能抢救出一部分残骸。

(注:以上信息仅对普通硬盘有效; 如果使用的是 SSD固态硬盘,且 SSD 硬盘本身和操作系统都支持 Trim 指令 ,则在执行 「完全」 删除操作的同时, 立刻开始拆楼,因此删除的数据无法找回 。感谢评论区

老赵

superheasy

补充)

-------------------

2015.9.17由于评论区有两位朋友问到如何彻底删除文件,补充一段。

「粉碎」文件(使用第三方工具,在普通硬盘上彻底删除文件):

将原来的楼炸掉,然后在废墟上搭建违章建筑(全零、全一,或者随机无用数据)。搭建完成后,将违章建筑炸掉,再搭建新的违章建筑。如此反复一定次数后,原来的楼就连渣都找不到了。

该操作需要在炸楼后盖新楼(且可能会盖好几次),因此速度非常慢。

能够完成此工作的工程队(文件粉碎工具)有很多,请自行查找。

请不要在SSD固态硬盘上使用文件粉碎工具,因为:

1.SSD硬盘的寿命与写入数据的次数有关。文件粉碎工具会多次写入数据,严重影响硬盘寿命。

2.由于耗损平均技术(

Wear leveling

),在SSD硬盘上无法强行指定写入数据的位置,这一点与普通硬盘不同。也就是说,SSD硬盘上搭建的违章建筑很可能和原来的楼位置完全不同,无法达到破坏楼的效果。

3.由于上文中提到的

Trim

指令,一般并不需要刻意执行「粉碎文件」操作。