FAT文件系统总结(三)

七、 FAT 表结构  

FAT 表(File Alloacation Table)是一一对应于数据簇号的列表。文件系统分配磁盘空间按簇来分配。因此,文件占有磁盘空间时,基本单位不是字节而是簇, 即使某个文件只有一个字节,操作系统也会给它分配一个最小单元:即一个簇。为了可以将磁盘 空间有序地分配给相应的文件,而读取文件的时候又可以从相应的地址读出文件,我们可以把数 据区空间分成 BPB_BytsPerSec*BPB_SecPerClus 字节长的簇来管理,FAT 表项的大小与 FAT 表的类型有关,FAT12 的表项为 12bit ,FAT16 为 16bit, 而 FAT32 则为 32bit。对 于大文件,需要分配多个簇。同一个文件的数据并不一定完整地存放在磁盘中一个连续地区域 内,而往往会分若干段,像链子一样存放。这种存储方式称为文件的链式存储。为了实现文件的 链式存储,文件系统必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存 储后继内空的下一个簇的簇号,对于文件的最后一簇,则要指明本簇无后继簇。这些都是由 FAT 表来保存的,FAT 表的对应表项中记录着它所代表的簇的有关信息:诸如是空,是不是坏簇,是 否是已经是某个文件的尾簇等。 
以 FAT16 为例说明 FAT 的结构如下: 

表项
 
示例代码
描述
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FFF8
 
磁盘标识字,必须为 FFF8
 
 
 
1
 
FFFF
 
第一簇已经被占用
 
 
 
2
 
0003
 
0000h :可用簇
 
 
 
3
 
0004
 
0002h - FFFEF :已用簇,表项中存放文件下个簇的簇号
 
……
 
……
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
N
 
FFFF
 
FFFF0h - FFFF6 :保留簇
 
 
 
N+1
 
0000
 
FFFF7h :坏簇
 
 
 
……
 
……
 
FFFF8h - FFFFFh :文件的最后一簇
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FAT各系统记录项的取值含义(16进制)
 
 
 
 
 
 
 
 
 
 
FAT12记录
FAT16记录项
FAT32记录项的取值
对应簇的表现情况
 
 
 
项的取值
的取值
 
 
 
 
 
 
 
 
0
0
0
未分配的簇
 
 
 
 
 
 
 
 
 
 
002~FFF
0002~FFEF
00000002~FFFFFFEF
已分配的簇
 
 
 
 
 
 
 
 
 
 
FF0~FF6
FFF0~FFF6
FFFFFFF0~FFFFFFF6
系统保留
 
 
 
 
 
 
 
 
 
 
 
 
 
FF7
 
FFF7
FFFFFFF7
坏簇
 
 
 
 
 
 
 
 
 
 
FF8~FFF
FFF8~FFFF
FFFFFFF8~FFFFFFFF
文件结束簇
 
 
 
本站域名:www.mrtlab.com | QQ交流群:250649022 | 使用条款 | 备案:鄂ICP备11013447号
MRT数据恢复网,专业的硬盘固件维修与数据恢复技术资料提供站!
Copyright 2003-2013 Powered By MrtLab