操作系统学习笔记(3)


我们现在有了两个可以专门讨论的专题,一个事grub专题,另一个就是使用winHex恢复硬盘数据专题。这两个专题都很有趣味性,在本讲结束后,我们就开始专门针对GRUB和winHex进行尝试性讨论。

今天主要说的内容是文件分配表FAT和文件记录表FDT。

 

数据的读写都要求操作系统和应用程序在硬盘上找的可操作扇区,那么这就涉及到扇区的地址问题,文件分配表FAT就是记录扇区地址的。硬盘的扇区数目庞大,为了不造成FAT表的体积过大,那么硬盘扇区采用分组管理,分作的过程就是分簇。高级格式化程序就是完成这一过程的。大家思考一下,那么低级格式化主要影响硬盘的那些数据结构呢?

簇的大小是由分区的大小和格式来决定的。文件在磁盘上是采取簇链的形式来检索和管理的。

我们来看一下在磁盘上对文件进行增删改查是如何进行的。这里提供一个思考问题,簇链的数据结构怎样实现,才能实现快速查找,效率最高。

当在磁盘上读取文件的时候,首先从文件的目录中找到该文件的目录登记项,继而从目录项的有关字段,查到分配给该文件的第一个簇号,根据第一簇号的内容可以计算出两组数据。其中一组数据,指出文件在数据区DATA里的第一簇扇区首地址,从首地址开始数据是连续存放的。连续存放多少扇区是由分区的特征决定的。另一组数据指出FAT表内簇登记项的地址,如果其值是结束标志fffH(FAT16格式)或ffffff0fH(FAT32格式)说明文件到此已经结束。如果不是结束标志,则该登记项的值为第二簇号,根据此又可以计算出两组数据,继而制定文件在数据区DATA里第二簇扇区首地址和FAT表内第2个簇登记项。

继续重复上面的过程,就得到全部数据,以及文件在FAT表里的所有簇登记项的地址。

大家可以写一下这个过程。

当建立一个文件时,首先检索FAT表,找到可用簇,可用簇就是登记项值为0000H(FAT16)或00000000H(FAT32)。将该簇作为起始簇,写入文件目录表FDT的相关登记项中。然后检索后面的可用簇,找到以后的将其簇号写入第一个可用簇项内。

重复以上过程,将满足文件长度所需的簇数全部找到。使每一个簇项的値指向下一个所需的簇项,在最后的簇登记项内写入结束标志。于是一条能够检索这个文件的完整簇链完成了。

当需要对文件扩展的时候,先检索FAT表,找到可用簇。将簇项的内容置为结束标志,并将文件原来的最后簇项值修改为指向可用簇。以此类推,直到完成扩展。

删除文件的时候,除了文件目录中表登记项的第一个字节改为e5H,还要把该文件在FAT表的簇链中所对应的项全部清零,这些清零的项又可以供他人其他文件使用。不过在删除文件结束之后,目录登记项的其他字段依然保存完好,只是文件名的第一字节变成了e5H,并且文件存储在扇区里的所有数据依然存在。这时只要FAT表中被清零的簇项没有被新文件使用,就可以将删除的文件恢复。

FAT表记录文件对磁盘的使用情况,系统保留的控制信息并不由FAT表记录。

这些过程很重要,假如我们尝试恢复删除的数据,这些过程必须很入微的理解,建议画一画草图理解。

文件目录表FDT,是由高级格式化程序在特定扇区上建立的。根据偏移量给出下表,说明对应的数据在FDT表中所传达的文件信息。

 

00H              8字节                文件名

08H              3字节                扩展名

0bH             1字节                  属性

0cH             10字节                DOS系统保留

16H             2字节                建立和修改的最后时间

18H             2字节                建立或修改的最后日期

1aH             2字节                 起始簇号

1cH            4字节                 文件长度

 

数据区DATA

data的所有扇区都划分为以簇为单位的逻辑结构和FAT表里的簇登记项一一对应。在数据严重受损的时候,我们可能尝试对DATA区数据的全部复制。

至此,磁盘的数据结构全部介绍完毕,在以后的winHex专题,我们还将继续探讨有关问题,比如扇区寻址等。使用相关工具或者编程技术对数据恢复技术做一个简单的尝试。

posted on 2009-06-08 16:37 2008momo2008 阅读(242) 评论(0)  编辑 收藏 引用

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜