首页 理论教育 Windows存储技巧:硬盘维护与数据恢复

Windows存储技巧:硬盘维护与数据恢复

时间:2023-10-23 理论教育 版权反馈
【摘要】:FAT表里面记录的是每个簇的使用分配情况。文件头用来记录文件名、文件属性、占用簇号等信息,文件头保存在一个簇并映射在FAT表中,而真实的数据则是保存在数据区中。用Fdisk分区和Format格式化和文件的删除类似,前者只是改变了分区表,后者只是修改了FAT表,都没有将数据从数据区直接删除。Windows 的文件删除就是将目录区文件的第一字符改成E5。

Windows存储技巧:硬盘维护与数据恢复

硬盘上最重要的数据区除了BOOT(引导区)外,是ROOT(根目录)和FAT(文件分配表),ROOT里面记录的是文件或字目录的属性、尺寸、日期以及它的起始簇。FAT表里面记录的是每个簇的使用分配情况。

正常情况下,当我们向硬盘添加一个新文件时,操作系统首先在ROOT里面将文件属性等填进去,在FAT表里面按一定算法找到一个空簇,将它标记为该文件占用后,在ROOT里面将这个簇作为起始簇记录进去,然后将文件内容写入这个簇。如果文件没有写完,系统再在FAT里找一个空簇,将其标记为占有,然后在前一个簇的最后做一个指针指向这个新簇,形成一个单链表,接着再在这个新簇里继续写内容。如此重复直到文件内容完全记录完毕。最后系统根据占用的总簇数计算出文件的大小,取出当前时间写到ROOT里面。

当我们删除一个文件的时候,系统实际上并不到每个簇去清除内容,而只是把ROOT里面文件名的首字符换成“&”符号,即标记这个文件被删除,然后沿着链表在FAT表中将该文件占用的所有簇释放,这样新的文件写入的时候就可以使用这些被释放的簇。

当我们改变一个文件的属性或名字时,系统实际上只在ROOT里面做一点改动而已。子目录下的文件稍微复杂一些,它们的目录信息不是记录在ROOT里面,而是在目录所指的第一个簇。

1.文件读取

操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件大小在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是004,操作系统从004簇读取相应的数据,然后再找到FAT的004单元,如果内容是文件结束标记(ff),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样直到遇到文件结束标志。(www.xing528.com)

2.文件写入

当我们保存文件时,操作系统首先在目录区中找到空区写入文件名、大小、创建时间等相应的信息,然后在数据区找到闲置空间将文件保存,并将数据区的第一簇写入目录区,其余的和文件的读取差不多。

3.文件删除

存储在硬盘中的每个文件都可分为两部分:文件头和存储数据的数据区。文件头用来记录文件名、文件属性、占用簇号等信息,文件头保存在一个簇并映射在FAT表中,而真实的数据则是保存在数据区中。平常所做的删除,其实是修改文件头的前两个代码,这种修改映射在FAT表中,就为文件作了删除标记,并将文件所占簇号在FAT表中的登记项清零,表示释放空间,这也就是平常删除文件后,硬盘空间增大的原因。而真正的文件内容仍保存在数据区中,并未删除。要等到以后的数据写入,把此数据区覆盖掉,这样才算是彻底把原来的数据删除。如果不被后来保存的数据覆盖,它就不会从磁盘上抹掉。用Fdisk分区和Format格式化和文件的删除类似,前者只是改变了分区表,后者只是修改了FAT表,都没有将数据从数据区直接删除。

Windows 的文件删除就是将目录区文件的第一字符改成E5。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈