FAT表

生活百科 2023-01-25 19:31生活百科www.aizhengw.cn

FAT表

档案分配表FAT(File Allocation Table)用来描述档案系统记忆体储单元的分配状态及档案内容的前后连结关係的表格(也可以笼统的说成是记录档案所在位置的表格)。它对于FAT档案系统来讲是至关重要的一个组成部分,并且它对于硬碟的使用也非常重要,假若丢失档案分配表,那幺硬碟上的数据就无法定位,也就不能使用了。

FAT表类别

FAT档案系统有FAT12、FAT16、FAT32。其所包含的这三种类型皆是由FAT表中每个FAT表项所占长度来分类的,也就是说,FAT12的FAT表中的每个FAT表项占用12位,FAT16中的FAT表每个FAT表项占用16位,FAT32的FAT表中的每个FAT表项占用32位。

FAT表位置

FAT档案系统将逻辑盘的空间大致划分为三部分,依次是DBR及保留扇区、档案分配表区(FAT1、FAT2)、数据区(DATA区)。
FAT档案系统的整体布局
DBR只占一个扇区,之后还留有31个保留扇区。档案分配表区紧跟在DBR及保留扇区后,FAT1的具体地址偏移量为0EH~0FH的两位元组,FAT2跟在FAT1之后,其地址可以用FAT1的所在扇区号加上每个FAT所占的扇区数获得。(需要注意的是,FAT16档案系统只有DBR,占一个扇区,没有保留扇区。)
FAT表是由格式化程式在对分区进行格式化时创建,具体数量在引导扇区的偏移0x10位元组处FAT1是活动FAT,FAT2是备份FAT[1]。FAT档案系统一般有两份FAT表,因为档案所占用的存储空间(簇链)及空闲空间的管理都是通过FAT实现的,FAT如此重要,保存两个以便第一个损坏时,还有第二个可用,但对于一些较小的存储介质允许只有一个FAT表。

FAT表组成

FAT表由FAT表项构成。每个FAT表项的大小有12位、16位、和32位三种情况。每个FAT表项都有一个固定的编号,这个编号从0开始。
FAT表的0号和1号FAT表项有专门的用途。0号FAT表项通常用来存放分区所在的介质类型;1号FAT表项用来存储档案系统的骯髒标誌,表明档案系统被非法卸载或者磁碟表面存在错误。
每一个FAT表项都会映射FAT数据区的一个簇中。因为0号FAT表项和1号FAT表项有特殊用途,无法与数据区中的簇形成映射,所以从2号FAT表项开始跟数据区中的第一个簇映射,正因为如此,数据区中的第一个簇也就编号为2号簇,这也是没有0号簇和1号簇的原因。然后3号簇跟3号FAT表项映射,4号簇跟4号FAT表项映射,以此类推,直到数据区中的最后一个簇。

FAT表的功能

  1. 表明分区所在介质类型。
  2. 表明一个档案所占用的各簇的簇链分配情况。每个簇在FAT表中映射一个FAT项,FAT项以指针的方式记录档案的簇链。
  3. 标明坏簇和可用簇。坏簇是在格式化过程中,由格式化程式发现并记录在相应的FAT表项中。在一个簇中,只要有一个扇区有问题,该簇就不能使用。以FAT16为例,如果分区格式化时发现坏扇区,即在相应簇的表项中写入FFF7H,表明该簇的扇区不能使用,系统就不会将它分配给用户档案。

FAT表的使用

如果一个FAT表项为非零,则表示这个簇已被分配使用。一个非零的FAT表项可能会是一个档案的下一个簇号,也有可能是一个好的档案的结束标记,或者是一个坏簇标记。如果要找一个档案的下一个簇,只需要查看该档案的目录项中描述的起始簇号所对应的FAT项,如果该档案只有一个簇,则此处的值为一个结束标记;如果该档案不只一个簇,则此处的值是它下一个簇的簇号。
FAT表中每个FAT项可取的表项值及其含义
对于FAT表项的管理,以FAT16档案系统的为例,其FAT表项是16位的,也就是每个FAT项占2个位元组。16位的FAT表项项最多管理65535个簇。在Windows 2000系统之前簇大小最大为64个扇区(32KB),这样,採用FAT16作业系统最多能管理32*65535=209120KB=2048MB=2GB的分区。对于容量超过2GB的硬碟,必须将其划分成多个不超过2GB的分区。从Windows 2000系统开始,簇大小可以达到128个扇区(64KB),FAT16档案系统就可以管理4GB的分区了,但这种分区在Windows 2000之前的系统不可访问。

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有