为何删除的文件可以恢复

写给不知道的人。

数据是怎么存到我们硬盘上的 文件存储方式

下面介绍下常见的文件存储方式: FAT 和 NTFS。

FAT

FAT 把分区卷(Volume)规划为如下几部分

  1. 主引导区 —— 文件
  2. 分配表#1 —— 文件
  3. 分配表#2 —— 根目录
  4. 剩下磁盘空间 —— 其他所有数据

第4部分,会被按一定大小(可指定)分成若干块。文件会占用自己大小 / 块大小的 块(向上取整)。

如块大小 128KB,文件 a.txt 130KB,将会占用两个块,即占用 256KB 的硬盘空间。

而操作系统如何去找到这两个块呢?

这里,分配表就派上用处了。

分配表记录的是所有块的使用情况。
有5种记录:

  • 链中下一个簇的地址
  • 一个特殊的簇链结束符(EOC,End Of Clusterchain,或称End Of Chain)符号指示链的结束
  • 一个特殊的符号标示坏簇
  • 一个特殊的符号标示保留簇
  • 0 来表示空闲簇

a.txt 的两个块记录就是:

地址 记录 备注
0x00000122 0x00010207 文件的下一块在0x00010207
... ... ...
0x00010206 0x00000000 这是一个空闲块
0x00010207 0xFFFFFFFF 这是文件的最后一块

当删除文件的时候,仅仅将该文件所占用的块标记为空闲(记录值重置为 0 ),并不真正覆盖文件内容。

但是由于大文件会被分散到多个不一定连续的块上,所以记录置 0 后,很难找全所有块,所以会增加恢复难度。

NTFS

相对于 FAT 文件系统。NTFS 采用了主文件表(MFT)

在NTFS中,所有文件数据——文件名、创建日期、访问权限(使用访问控制列表(ACL)实现),以及内容——都作为元数据储存在主文件表中。

在删除的时候,并不会像 FAT 文件系统一样破坏结构。所以 NTFS 的反删除操作更加容易。

最后

完美恢复的前提,当原本文件占据的块被标记为空闲时,任何数据写入操作都有可能会覆盖原文件占用的块。

所以,一旦误删文件,
尽可能减少硬盘写入操作的产生!!!
尽可能减少硬盘写入操作的产生!!!
尽可能减少硬盘写入操作的产生!!!

重要数据多备份,有钱的买硬盘,没钱就XX云盘。

当然最重要的,不要手贱 =_=||

hxsf

继续阅读此作者的更多文章