档案分配表FAT(File Allocation Table)用来描述档案系统记忆体储单元的分配状态及档案内容的前后连结关係的表格(也可以笼统的说成是记录档案所在位置的表格)。它对于FAT档案系统来讲是至关重要的一个组成部分,并且它对于硬碟的使用也非常重要,假若丢失档案分配表,那幺硬碟上的数据就无法定位,也就不能使用了。
FAT档案系统有FAT12、FAT16、FAT32。其所包含的这三种类型皆是由FAT表中每个FAT表项所占长度来分类的,也就是说,FAT12的FAT表中的每个FAT表项占用12位,FAT16中的FAT表每个FAT表项占用16位,FAT32的FAT表中的每个FAT表项占用32位。
FAT档案系统将逻辑盘的空间大致划分为三部分,依次是DBR及保留扇区、档案分配表区(FAT1、FAT2)、数据区(DATA区)。
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表项的大小有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表项为非零,则表示这个簇已被分配使用。一个非零的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之前的系统不可访问。
本文发布于:2023-03-25 12:43:43,感谢您对本站的认可!
本文链接:http://www.ranqi119.com/to/1679831525229446.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |