FAT32文件系统原理——
2007-10-28 18:19
[返回索引]
★FAT32存储原理:
FAT32是个非常有功劳的文件系统,Microsoft成功地设计并运用了它,直到今天NTFS铺天盖地袭来的时候,FAT32依然占据着Microsoft Windows文件系统中重要的地位。FAT32最早是出于FAT16不支持大分区、单位簇容量大以致空间急剧浪费等缺点设计的。实际应用中,FAT32还是成功的。
FAT32与FAT16的原理基本上是相同的,。
Fat32的组织形式
引导扇区
其余保留扇区
FAT1
FAT2(重复的)
根文件夹首簇
其他文件夹及所有文件
剩余扇区
1扇区
31个扇区
实际情况取大小
同FAT1
第2簇
不足一簇
保留扇区
┗━━━━━━━━数据区━━━━━━━━┛
[返回索引]
FAT32在格式化的过程中就根据分区的特点构建好了它的DBR,其中BPB参数是很重要的,可以回过头来看一下表4和表5。首先FAT32保留扇区的数目默认为32个,而不是FAT16的仅仅一个。这样的好处是有助于磁盘DBR指令的长度扩展,而且可以为DBR扇区留有备份空间。上面我们已经提到,构建在FAT32上的win98或win2000、winXP,其操作系统引导代码并非只占一个扇区了。留有多余的保留扇区就可以很好的拓展OS引导代码。在BPB中也记录了DBR扇区的备份扇区编号。备份扇区可以让我们在磁盘遭到意外破坏时恢复DBR。
FAT32的文件分配表的数据结构依然和FAT16相同,所不同的是,FAT32将记录簇链的二进制位数扩展到了32位,故而这种文件系统称为FAT32。32位二进制位的簇链决定了FAT表最大可以寻址2T个簇。这样即使簇的大小为1扇区,理论上仍然能够寻址1TB范围内的分区。但实际中FAT32是不能寻址这样大的空间的,随着分区空间大小的增加,FAT表的记录数会变得臃肿不堪,严重影响系统的性能。所以在实际中通常不格式化超过32GB的FAT32分区。WIN2000及之上的OS已经不直接支持对超过32GB的分区格式化成FAT32,但WIN98依然可以格式化大到127GB的FAT32分区,但这样没必要也不推荐。同时FAT32也有小的限制,FAT32卷必须至少有65527个簇,所以对于小的分区,仍然需要使用FAT16或FAT12。
分区变大时,如果簇很小,文件分配表也随之变大。仍然会有上面的效率问题存在。既要有效地读写大文件,又要最大可能的减少空间的浪费。FAT32同样规定了相应的分区空间对应的簇的大小,见表12:
表12 FAT32分区大小与对因簇大小
分区空间大小
每个簇的扇区
簇空间大小
<8GB
8
4k
>=8GB且<16GB
16
8k
>=16GB且<32GB
32
16k
>=32GB
64
32k
[返回索引]
簇的取值意义和FAT16类似,不过是位数长了点罢了,比较见表13:
表13 FAT各系统记录项的取值含义(16进制)
FAT12记录项的取值
FAT16记录项的取值
FAT32记录项的取值
FAT32文件系统原理 来自淘豆网m.daumloan.com转载请标明出处.