![]() |
|
| | 首 页 | 联盟介绍 | 业内新闻 | 技术文章 | 资源下载 | 会员专区 | 联盟BLOG | 联系各地数据恢复提供商 | | 当前位置 首页 |
|
||||||||||
4.3 FAT表和数据的存储原则 FAT表(File Allocation Table 文件分配表),是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进的一种链式结构。假如把磁盘比作一本书,FAT表可以认为相当于书中的目录,而文件就是各个章节的内容。但FAT表的表示方法却与目录有很大的不同。
我们再考虑如何来写这三个文件的目录。对于每个文件而言,一定要记录的有:文件名,开始簇,大小,创建日期、时间,修改日期、时间,文件的读写属性等。这里大小能不能用结束簇来计算呢?一定不能,因为文件的大小不一定就是整数个簇的大小,否则的话像B.TXT的内容就是54KB的内容了,少了固然不行,可多了也是不行的。那么我们怎么记录呢?可以想象一下。为了管理上的方便,我们用数据库的管理方式来管理我们的目录。于是我把1KB再分成10份,假定开始簇号为0,定义每份100B的各个位置的代表含义如图4.3.2
这样设计的结构绝对可以对文件进行正确的读写了。接着让我们设计的文件系统工作吧。先改动个文件,比如A.TXT,增加点内容吧!咦?增加后往哪里放呀,虽然存储块的后面有很多空间,但紧随其后B.TXT的数据还顶着呢?要是把A.TXT移到后边太浪费处理资源,而且也不一定解决问题。这个问题看来暂时解决不了。
这个操作看来还可以,我们接着做,在存入一个文件D.txt(大小为60.3KB),总共100簇的空间只用了31簇,还有68簇剩余,按说能放下。可是?往那里放呢?没有61个连续的空间了,目录行没办法写了,看来无连续块存储暂时也不行。
第一簇用来记录数据区中每一簇的被占用情况,暂时称其为文件分配表。结合文件分配表和文件目录就可以达到完全的文件读取了。我们想到,把文件分配表做成一个数据表,以图4.3.7的形式记录簇与数据的对应。
参照图4.3.8来理解一下文件分配表的意义。如文件a.txt我们根据目录项中指定的a.txt的首簇为2,然后找到文件分配表的第2簇记录,上面登记的是3,我们就能确定下一簇是3。找到文件分配表的第3簇记录,上面登记的是4,我们就能确定下一簇是4......直到指到第11簇,发现下一个指向是FF,就是结束。文件便丝毫无误读取完毕。
上面是我们对文件存储的一种假设,也该揭开谜底的时候了。上面的思想其实就是fat文件系统的思想的精髓(但并不是,尤其像具体的参数的意义与我们所举的例子是完全不同的。请忘掉上边细节,努力记忆下边)。 数据恢复技术联盟提示: |
||||||||||
本站域名 http://www.cndatasos.com |
|
Copyright © 2004-2005 DATASOS. All rights reserved.DATASOS数据急救中心版权所有 |