
fat文件系统
壳管换热器-出口成章的意思
2023年3月20日发(作者:肾的解剖图)FAT16⽂件系统之FAT表浅谈(三)
FAT16⽂件系统的FAT表分析
1:FAT表的作⽤及结构特点
FAT即⽂件系统分配表,对于FAT⽂件系统来讲是⾮常重要的⼀环。其主要作⽤如下
(1)FAT⽂件系统⼀般有两份FAT,它们由格式化程序对分区进⾏格式化的时候创建,FAT1是活动FAT,FAT2是备份FAT。
(2)FAT1跟在DBR之后,FAT2跟在FAT1之后中间没有空的扇区
(3)FAT表由FAT表项构成的,我们把FAT表项简称为FAT项。每个FAT项的⼤⼩有12位,16位,32位,三种情况,对应的分别
FAT12,FAT16,FAT32⽂件系统。
(4)每个FAT项都有⼀个固定的编号,这个编号是从0开始。
(5)FAT表的前两个FAT项有专门的⽤途:0号FAT项通常⽤来存放分区所在的介质类型,例如硬盘的介质类型为“F8”,那么硬盘上分区FAT表第⼀个
FAT项就是以“F8”开始,1号FAT项则⽤来存储⽂件系统的肮脏标志,表明⽂件系统被⾮法卸载或者磁盘表⾯存在错误。
(6)分区的数据区每⼀个簇都会映射到FAT表中的唯⼀⼀个FAT项。因为0号FAT项与1号FAT项已经被系统占⽤,⽆法与数据区的族形成映射,所以从2
号FAT项开始跟数据区中的第⼀个簇映射,正因为如此,数据区中的第⼀个族的编号为2,这也是没有0号簇与1号簇的原因,然后3号簇与3号FAT项映射,4号
簇与4号FAT项映射。。。。。。。。。。
(7)分区格式化后,⽤户⽂件以簇为单位存放在数据区中,⼀个⽂件⾄少占⽤⼀个簇。当⼀个⽂件占⽤多个簇时,这些族的簇号不⼀定是连续的,但这些
簇号在存储该⽂件时就确定了顺序,即每⼀个⽂件都有其特定的“簇号链”。在分区上的每⼀个可⽤的簇在FAT中有且只有⼀个映射FAT项,通过在对应簇号的
FAT项内填⼊“FAT项值”来表明数据区中的该簇是已占⽤,空闲或者是坏簇三种状态之⼀。
FAT表中每个FAT项可取的表项值及其含义
FAT项值(FAT12)FAT项值(FAT16)FAT项值(FAT32)含义
000H0000H00000000H未使⽤的簇
002H–FEFH0002H-FFEFH00000002H–0FFFFFFEH⼀个已分配的族号
FF0H–FF6HFFF0H–FFF6H0FFFFFF0H–0FFFFFF6H保留
FF7HFFF7H0FFFFFF7H坏簇
FF8H-FFFHFFF8H-FFFFH0FFFFFF8H–0FFFFFFFH⽂件结束簇
其中损坏的族可以在格式化过程中,由格式化程序发现并记录在相应的FAT项中。在⼀个簇中,有⼀个坏的扇区,该簇就不能使⽤。
(8)FAT16⽂件系统的FAT项是16位的,也就是说每个FAT项占2字节。16位的FAT项最多可管理65535个簇。在Windows2000系统之前簇最⼤为64个
扇区,这样,采⽤16位FAT的系统最多只能管理32*65535约于2G的分区。现在簇⼤⼩可以达到128个扇区,这样FAT16就可以管理4G的分区了。
(8)综合上⾯的说明可以看出,FAT表的功能主要有如下:
A:表明分区所在介质类型。FAT表的0号FAT项来表明分区所在的介质类型,该FAT项的⾸字节与BPB中介质描述符所对就的介质类型相同
B:表明⼀个⽂件所占⽤各簇的簇链分配情况。每个簇在FAT表中映射⼀个FAT项,FAT项以指针的⽅式记录在⽂件的簇。
C:标明可⽤簇与坏簇。坏簇是在分区格式化时发现的,并把相应的簇表的项写⼊FFF7H.⽤户不能使⽤。
分区上未被使⽤但可⽤的“空簇“的FAT项值为0,