FAT(File Allocation Table)是“档案分配表”的意思。顾名思义,就是用来记录档案所在位置的表格,它对于硬碟的使用是非常重要的,假若丢失档案分配表,那幺硬碟上的数据就会因无法定位而不能使用了。不同的作业系统所使用的档案系统不尽相同,在个人计算机上常用的作业系统中,MS-DOS 6.x及以下版本使用FAT16。作业系统根据表现整个磁碟空间所需要的簇数量来确定使用多大的FAT。所谓簇就是磁碟空间的配置单位,就象图书馆内一格一格的书架一样。FAT16使用了16位的空间来表示每个扇区(Sector)配置档案的情形,故称之为FAT16。
基本介绍
- 外文名:FAT16
- 作用:记录档案所在位置的表格
- 属于:个人计算机上常用的作业系统中
- 表示:每个扇区(Sector)配置档案的情形
档案系统
先天限制
FAT16由于受到先天的限制,因此每超过一定容量的分区之后,它所使用的簇(Cluster)大小就必须扩增,以适应更大的磁碟空间。所谓簇就是磁碟空间的配置单位,就象图书馆内一格一格的书架一样。每个要存到磁碟的档案都必须配置足够数量的簇,才能存放到磁碟中。FAT16各分区与簇大小的关係如下表:
分区大小 FAT16簇大小
16MB-127MB 2KB
128MB-255MB 4KB
256MB-511MB 8KB
512MB-1023MB16KB
1024MB-2047MB 32KB
如果你在一个1000MB的分区中存放50KB的档案,由于该分区簇的大小为16KB,因此它要用到4个簇才行。而如果是一个1KB的档案,它也必须使用一个簇来存放。那幺每个簇中剩下的空间可否拿来使用呢?答案是不行的,所以在使用磁碟时,无形中都会或多或少损失一些磁碟空间。
最大缺点
由上可知,FAT16档案系统有两个最大的缺点:
(1)磁碟分区最大只能到2GB。当前只要你添购计算机的话,想必其中的硬碟大小必定至少有2GB,而现在300GB,700GB以上的硬碟比比皆是,且物美价廉。FAT16档案系统已不能适应当前这种大容量的硬碟,必须被迫分区成几个磁碟空间。而分区磁碟的大小又牵扯出簇的问题来,可谓影响颇大。
(2)使用簇的大小不恰当。试想,如果一个只有1KB大小的档案放置在一个1000MB的磁碟分区中,它所占的空间并不是1KB,而是16KB,足足浪费了15KB!当前流行的HTML档案,其大小几乎多为1KB、2KB,而製作一个网站往往用到数十个HTML档案。如果你的硬碟中有100个这种小档案的话,你浪费的磁碟空间可从700KB(511MB的分区),到3.1MB(2047MB的分区)。
以上这两个问题常常使得用户在“分多大的分区,才能节省空间,同时又可使硬碟的使用更加方便有效”的抉择中徘徊不定。
在Dos2.0的使用过程中,对更大的磁碟的管理能力的需求已经出现了,所以在Dos3.0中,微软推出了新的档案系统Fat16。除了採用了16位字长的分区表之外,Fat16和Fat12在其他地方都非常的相似。实际上,随着字长增加4位,可以使用的簇的总数增加到了65536。在总的簇数在4096之下的时候,套用的还是Fat12的分区表,当实际需要超过4096簇的时候,套用的是Fat16的分区表。刚推出的Fat16档案系统管理磁碟的能力实际上是32M。这在当时是看来是足够大的。1987年,硬碟的发展推动了档案系统的发展,Dos4.0之后的Fat16可以管理128M的磁碟。然后这个数字不断的发展,一直到2G。在整整的10年中,2G的磁碟管理能力都是大大的多于了实际的需要。需要指出的是,在windows95系统中,採用了一种比较独特的技术,叫做VFat来解决长档案名称等问题。FAT16分区格式存在严重的缺点:大容量磁碟利用效率低。在微软的DOS和Windows系列中,磁碟档案的分配以簇为单位,一个簇只分配给一个档案使用,不管这个档案占用整个簇容量的多少。这样,即使一个很小的档案也要占用一个簇,剩余的簇空间便全部闲置,造成磁碟空间的浪费。由于分区表容量的限制,FAT16分区创建的越大,磁碟上每个簇的容量也越大,从而造成的浪费也越大。
簇概念
磁碟上最小可定址存储单元称为扇区,通常每个扇区为512个位元组(或字元)。由于多数档案比扇区大得多,因此如果对一个档案分配最小的存储空间,将使存储器能存储更多数据,这个最小存储空间即称为簇。根据存储设备(磁碟、闪卡和硬碟)的容量,簇的大小可以不同以使存储空间得到最有效的套用。在早期的360KB磁碟上,簇大小为2个扇区(1,024位元组);第一批的10MB硬碟的簇大小增加到8个扇区(4,096位元组);小型快闪记忆体设备上的典型簇大小是8KB或16KB。2GB以上的硬碟驱动器有32KB的簇。表2列出在给定簇大小和FAT类型的最大分区。
为什幺採用簇呢?通常,存储设备上的空间分配是随机的。在一个新存储设备上,档案连续存储,并知道开始和结束扇区和长度,在读取时可以根据这些信息重新得到所存储的档案。但是,过一段时间后,有些档案将会被擦掉,同时可能有些档案增大,这时不能保证同一个档案存储在连续的一系列扇区里。因此,需要一种方法来辨别哪个扇区被分配到某些档案,以及还有哪些扇区可用。这时可以採用一种表结构来实现这种功能,使每个扇区对应一个表记录。然而,由于大多数档案存储在多个扇区,一个记录对应一个扇区的作法将造成一些浪费。因此,採用每个记录代表一个固定数量扇区将更有意义,这个固定扇区被称为簇。
分配扇区
如果给一个档案(簇)分配的最小存储空间大小取决于保存该档案的介质类型,我们必须有一种方法来标明某个簇是否可用或者已分配给一个档案。如果已将一个簇分配给一个档案,我们必须知道这个簇分配给档案的哪部分了,这就是通过一个连结列表来实现,即档案分配表(FAT)。FAT仅仅是一个包含N个整数的列表,N是存储设备上最大的簇数。表中每个记录的位数称为FAT大小,是12、16或32三个数之一。早期的存储设备使用12位(1.5位元组)FAT以减少浪费,12位可以提供4,096个簇。假定一个簇具有两个扇区(1,024位元组),则代表存储设备将近有4.2MB存储容量。更大的簇就能实现更大的存储空间,但是在存储较小档案时,由于簇没有完全装满而将造成存储空间的浪费。
作业系统根据表现整个磁碟空间所需要的簇数量来确定使用多大的FAT。如果磁碟要求的簇少于4,096个,则可以使用12位FAT;如果小于65,536但大于4,096个簇,就使用16位FAT;否则,必须採用32位FAT。在存储设备的第一个扇区内以数据列表的形式定义了簇的大小,该数据列表被称为BIOS参数块。在系统引导期间作业系统可以读该扇区,这样就能设定如何从存储设备中读取档案。
FAT是一种连结列表,连结列表中相关记录之间互相指向对方。在存储设备目录中包含了FAT表名称、该档案大小和分配给该档案的第一个簇的编号。存储该档案的第一个簇所对应的表记录中包含了该档案的第二个簇号码。同样,第二个簇对应的记录里包含有存储该档案的第三个簇编号,以此类推直到该档案的最后一个簇。在新存储设备上存储的第一个档案将保存在连续的簇内,因此第一个簇会指向第二个,第二个指向第三个,如此类推。
实际上,第一个簇(簇0)总是保留用于存储作业系统信息、根目录和两份FAT。系统建立两份FAT,其目的是在当修改其中一个时如果系统发生中断(崩溃),另一份还完整无缺,恢复程式会检查FAT并使用这份FAT来恢复。
作用介绍
那幺FAT的重要意义是什幺呢?当前的快闪记忆体设备使用12位FAT或16位FAT,数位相机和MP3播放器被设计成利用这种表结构进行读写。随着4GB微硬碟逐渐进入实际套用,16位FAT将不能够满足这种硬碟的需求,因为16位FAT只能实现65,536个簇,对于最大的32K位元组的簇而言只能提供最大2GB的容量。对于更大容量存储设备有两个解决方案,即将FAT增加到32位或者将驱动器分成多个区。

一个存储设备可以分成多个区(其中每个区看起来像单独的存储设备),每个区有自己的目录和FAT。大多数工程师在自己的PC硬碟上已经体验过多分区,通常仅有一个硬碟的计算机具有“C:”和“D:”盘。
多数携带型设备如数位相机和MP3播放器都没有设计成採用存储器分区,而PDA是真正的计算机,其档案系统程式是按分区来设计的。以数位相机市场为例,存储器必须只有单个分区才能兼容。对用户来说,每个区有自己的逻辑驱动器字母,通常指定为驱动器“C:”、 “D:”和“E:”等。
兼容性
在一个兼容FAT32的主机里可以无缝使用FAT16存储设备,因为支持FAT32的作业系统也支持FAT16。唯一需要注意的是在对FAT16设备重新格式化的时候,有些兼容FAT32的主机(如一些PDA)在没有特别选择下会默认为FAT32格式。第一次对存储设备格式化时,必须认真观察提示以保证用的是FAT16格式,除非你的相机/PDA/MP3播放器支持FAT32。
在一个只兼容FAT16的主机里使用FAT32设备会有几个可能结果,最普遍的是在显示屏上显示的“CF错误”指示。如果4GB的存储器在只兼容FAT16的主机里格式化,将可能不出现错误提示,但显示的容量将为2G。通常,不同的程式设计工程师会採用不同的方法来处理这个问题,对于这个特例,其结果不是总可预测的。如果4GB设备是用FAT16来格式化,就能在兼容FAT32的主机里对这个设备重新格式化,只要在格式化期间规定了FAT32。这样,用户可以在兼容FAT32的主机里恢复整个4GB容量。
分区大小
概要
Microsoft MS-DOS 4.0 版及更新版本允许 FDISK 给硬碟划分最大为 4 千兆位元组 (GB) 的分区。然而,MS-DOS 档案分配表 (FAT) 档案系统仅支持每分区为 2 GB 大小。基于这一事实,大小在 2 到 4 GB 的硬碟必须划分为多个分区,而且每一个分区都不能超过 2 GB。
注意:Windows 95 OEM Service Release 版本 2 和更新版本支持大小超过 2 GB 的使用 FAT32 档案系统的驱动器。有关 FAT32 档案系统的更多信息,请参见下面的 Microsoft 知识库文章:
文章 ID:154997
标题:FAT32 档案系统说明
更多信息
FAT 档案系统支持的最大簇数目和簇的最大大小决定了 2-GB 这一分区限制。FAT 档案系统限于 65,525 个簇。簇大小必须为 2 的次方而且小于 65,536 位元组,结果是最大簇大小为 32,768 位元组 (32K)。将最大簇数 (65,525) 乘以最大簇大小 (32,768) 等于 2 GB。
注意:为用 FDISK 对硬碟进行分区,硬碟驱动器必须受计算机 ROM BIOS API 的支持,后者有 1024 柱面这一限制。
因为每个簇 32K 会浪费宝贵的硬碟空间,所以 FAT 档案系统并非总是最好的硬碟管理方案。Microsoft Windows NT 使用 NT 档案系统 (NTFS),它使用另一不同的档案/簇方案。Microsoft OS/2 版本 1.3 支持 HPFS,后者也使用了一种更保守的分配磁碟资源的方式。
注意:Microsoft Windows NT 也支持 FAT 驱动器。Windows NT 3.51支持最大 4 GB 大小的 FAT 驱动器。MS-DOS 或 Windows 不支持 2 GB 至 4 GB 大小的 FAT 驱动器。换句话说,如果希望从 MS-DOS 或 Windows 95/98 以及 Windows NT 都能访问 FAT 驱动器,那幺 FAT 驱动器不能够大于 2 GB。如果只从 Windows NT 上访问 FAT 驱动器,则驱动器大小可以在 2 GB 到 4 GB 之间。
小结
由于相机和MP3播放器在处理多分区上有困难,FAT32是提供它们超过2GB存储容量的唯一途径。所以,有些公司推出新的4GB微驱动器在出厂前将採用FAT32格式化。为实现与更多设备的兼容,2GB的微驱动器将继续使用FAT16,其他容量超过2GB的CF设备必须採用FAT32。有几家公司已经在其相机和MP3播放器中支持FAT32,多数有CF插槽的PDA都支持FAT32。如果你计画要购买一台新的数位相机或MP3播放器,最好能验证它是否支持FAT32,以便将来与最新的CF存储设备兼容。FAT32档案系统占大多数,还有更新的NTFS。