FAT是文件分配表(File Allocation table)的缩写,FAT32指的是
文件分配表是采用32位
二进制数记录管理的
磁盘文件管理方式,因FAT类
文件系统的核心是文件分配表,命名由此得来。FAT32是从
FAT和
FAT16发展而来的,优点是稳定性和
兼容性好,能充分兼容Win 9X及以前版本,且维护方便。缺点是安全性差,单个文件也只能支持最大4GB。
产生背景
Windows的文件系统在每个硬盘都使用一个被称为
文件分配表(
FAT)的专用扇区来储存跟踪全部文件位置所需的数据,以前操作系统中使用的是16位的FAT,这种方式的缺点是:
1.虽然能够有效地管理小容量硬盘上的数据,但不能管理大容量硬盘,
硬盘分区不能大于2GB。
2.由于在计算机内文件是以簇的形式存储的,在
FAT16情况下,硬盘分区越大,簇的尺寸越大,这样文件存储时将浪费硬盘空间,硬盘空间利用率很低,尤其在小文件比较多时。
因此,FAT32应运而生。
Windows98包括一种被称为FAT32的新32位文件系统,可以有效地管理大容量硬盘并识别容量超过2GB的硬盘。FAT32是
文件分配表系统的提高版,使用比FAT
驱动程序更小的簇,使大硬盘上的空间得以充分利用。
由于
微软公司并不对外公开
Windows操作系统的内部结构和
源代码,人们无法直接了解FAT32文件系统的工作原理和技术特点。
磁盘结构
当使用
FAT32
文件系统管理硬盘时,能够支持的每个分区容量最大可达到128TB。对于使用FAT32文件系统的每个逻辑盘内部空间又可划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。引导区和
文件分配表区又合称为系统区,占据整个逻辑盘前端很小的空间,存放有关
管理信息。数据区才是逻辑盘用来存放文件内容的区域,该区域以簇为分配单位来使用。
引导区
FAT32文件系统的第一个扇区就是
引导扇区,其内存放了一个文件系统的很多具体信息,例如
FAT表个数、每个FAT表的大小(
扇区数目)、每扇区内的字节数目、每簇中所包含的扇区数目、被保留的扇区数目、文件系统大小(扇区数目)、
根目录的起始簇号及一些其它的附加信息。引导区(BOOT区)从第一扇区(逻辑扇区号0)开始使用了三个
扇区,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等等重要参数和引导记录。之后还留有若干保留扇区,其中有一至三扇区的备份,
文件分配表区
文件分配表区(FAT区)是FAT文件系统管理磁盘空间和文件的最重要区域,它保存逻辑盘数据区各簇使用情况信息,采用
位示图法来表示,文件所占用的
存储空间及空闲空间的管理都是通过FAT实现的。FAT区共保存了两个相同的文件分配表,便于第一个损坏时,还有第二个可用。
FAT表的大小由该逻辑盘数据区共有多少簇所决定,取整数个扇区。数据区中每簇的使用情况通过查找其在FAT表中相应位置的填充值可知晓。FAT32表中每簇占用四个字节(32位)表示,开头的8个字节(0H-07H字节)用来存放该盘
介质类型编号了,因此有效簇号从02H开始使用。02H簇的使用情况由08H-0BH字节组成的32位
二进制数指示出来,03H簇的使用情况由0CH一0FH字节组成的32位二进制数指示出来,依此类推。未被分配使用和已回收的簇相应位置写零,
坏簇相应位置填入特定值0FFFFFF7H标识,已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为0FFFFFFFH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT32表中。
数据区
数据区是被用来存放用户数据的,位于FAT2后,同样被划分成簇,从2开始编号,即2号簇起始位置即是数据区的真正起始位置。
(1)根目录
通常情况下根目录位于2号簇,但是原则上FAT32文件系统中的根目录可以位于数据区的任意位置。根目录区保存根目录下的各文件的
目录项,每个目录项占用32字节。FAT32文件系统中,根目录作为数据区的一部分,采用与
子目录相似的
管理方式,这一点与
FAT12、FAT16明显不同,如FAT16文件系统的根目录区(ROOT区)是固定区域、固定大小的,占用从FAT区之后紧接着的32个扇区,最多保存512个目录项(其根目录保存的文件数受限的原因在此),作为系统区的一部分。
(2)子目录
FAT32文件系统中,除了根目录外,全部子目录均在被使用过程中,根据具体的需要而建立。若在根目录之下创建了一个新的子目录,则称该子目录是根目录的子目录,并且称根目录为该子目录的父目录。子目录被新建时,在为其父目录分配的簇中建立目录项,目录项中描述了目录的起始簇号,并且为其在空闲的空间中分配一个簇并清零,将该簇的簇号记录在其目录项之中。为子目录创建目录项的同时,为子目录分配的簇中通过用前两个目录项来记录其与对应父目录的关系。
(3)目录项
FAT32文件系统由于结构的不同,一般将目录项分成四种:
卷标目录项、“.”目录项和“..”目录项、短文件名目录项、
长文件名目录项。短文件名目录项中存放子目录或文件的短文件名、属性、起始簇号、时间值、内容大小等基本的信息。
特点
以下是对FAT32的一些特点的阐述:
(1)FAT32文件系统仍然将逻辑盘的
空间划分为三部分,依次是
引导区(BOOT区)、
文件分配表区(FAT区)、
数据区(DATA区)。引导区和文件分配表区又合称为系统区。
(2)FAT32的MBR和
扩展分区的结构与
DOS的仍然相同。只不过
引导程序的代码不同而已。前一小节在介绍MBR所使用的就是win98的引导程序。这里不再赘述。
(3)FAT32的引导区从第一
扇区开始,使用了三个扇区,保存了该逻辑盘每扇区字节数,每簇对应的
扇区数等等重要参数和引导记录。之后还留有若干保留扇区。
(4)FAT32的
文件分配表的结构与DOS下的
FAT16相同,仍然采用簇链结构来
管理文件,只不过FAT32的一个表项用4Byte即32位罢了,这样文件分配表可以有更多的簇,可以管理更大的
磁盘空间。
(5)FAT32系统一簇对应8个逻辑相邻的扇区,理论上,这种用法所能管理的逻辑盘容量上限为16TB,容量大于16TB时,可以用一簇对应16个扇区,依此类推。FAT16系统在逻辑盘容量介于128MB到256MB时,一簇对应8个扇区,容量介于256MB到512MB时,一簇对应16个扇区,容量介于512MB到1GB时,一簇对应32个扇区,容量介于1GB到2GB时,一簇对应32个扇区,超出2GB的部分无法使用。显然,对于容量大于512MB的逻辑盘,采用FAT32的簇比采用FAT16的簇小很多,大大减少了空间的浪费。
(6)FAT32的一个大的改进之处就是
根目录区(ROOT区)不再是固定区域、固定大小,可看作是数据区的一部分。因为根目录已改为根目录文件,采用与
子目录文件相同的
管理方式,一般情况下从第二簇开始使用,大小视需要增加,因此根目录下的文件数目不再受最多512的限制。
(7)目录区中的
目录项变化较多,一个目录项仍占32字节,可以是文件目录项、子目录项、
卷标项(仅根目录有)、已删除目录项、
长文件名目录项等。
适用条件
一般来说,只有在以下情况下才能创建(用Windows 95OSR2或者
Windows 98)FAT32分区:
■硬盘总容量必须大于528MB。
■每个分区的大小必须大于528MB。
■用户需要有一张OSR2安装盘,或者是由其他安装OSR2的PC制作的OSR2
启动盘(或者是适当的Windows98启动盘)。
■当0SR2/98的FDISK提示Do you wish to enable large disk support?Y or N(是否希望启动大硬盘支持?)时,应回答Y。如果回答N,那么创建的就将是
FAT16磁盘分区。
应用要点
1、FAT32的速度
FAT32通常与FAT16一样快,在某些情况下,它会稍快一些。典型的情况下没有明显的性能差异。FAT32的主要优点是它对大磁盘的利用比FAT16更为有效。
在实模式
MS-DOS或Windows98安全模式下,FAT32会比FAT16慢不少。如果要在MS-DOS下运行程序,最好要运行SMARTDRV。
3、双重引导和FAT32
不能在需要对另一个操作系统进行双重引导的机器上使用FAT32,如Windows 95.Windows NT,Windows3.1或
MS-DOS6.x。其他操作系统不能访问FAT32分区表。只要C驱是FAT16的,那么其他系统也可以引导,但是其余FAT32的分区对其他操作系统来说是不可见的。如果使用FAT16,那么Windows 98也支持在Windows98和以前的MS-DOS操作系统之间进行双重引导,并用F4进行切换,但是不能在
Windows95和Windows98之间进行切换。
在FAT32中使用防病毒软件,改变
驱动器会引起
分区表和引导记录的更新。如果防毒软件启动,它可能截取更新分区表或引导记录的要求,并询问是否允许更新。并且,在改变驱动器后重启计算机时,防病毒软件会发觉分区表或引导记录被更改了,会提出“修复”的请求。不要让防病毒软件修复引导记录或分区表,不然驱动器和上面的所有的数据都将丢失。