FAT(文件分配表)如何工作?

FAT(文件分配表)如何工作?

我从 PowerPoint 幻灯片中获得了以下有关 FAT 的描述:

Partition boot record(1 sector)
-------------------------------
Main FAT (size is up to 2 clusters)
-------------------------------
Backup FAT (sam size as main FAT)
-------------------------------
Root directory
-------------------------------
Data area(size varies)

通过互联网搜索,我主要可以了解 FAT 功能的要点。但是深入了解上述细节,我不明白所示每个部分的功能。

有人能解释一下上述 FAT 结构中每个部分的特点吗?

答案1

维基百科有一个很好的解释:

FAT 文件系统由四个不同的部分组成:

保留扇区位于最开始的位置。第一个保留扇区(扇区 0)是引导扇区(又称为卷引导记录 (VBR))。它包含一个称为 BIOS 参数块的区域(包含一些基本的文件系统信息,特别是其类型,以及指向其他部分位置的指针),并且通常包含操作系统的引导加载程序代码。引导扇区的重要信息可通过 DOS 和 OS/2 中称为驱动器参数块 (DPB) 的操作系统结构访问。保留扇区的总数由引导扇区内的字段指示。对于 FAT32 文件系统,保留扇区包括扇区 1 处的文件系统信息扇区和扇区 6 处的备份引导扇区。

FAT 区域。

这通常包含文件分配表的两个副本(可能有所不同),用于冗余检查,尽管很少使用,即使是磁盘修复实用程序也是如此。这些是数据区域的映射,指示文件和目录使用哪些簇。在 FAT12 和 FAT16 中,它们紧跟在保留扇区之​​后。通常,额外的副本在写入时保持紧密同步,在读取时,仅在第一个 FAT 中出现错误时才使用它们。在 FAT32 中,可以从默认行为切换并从可用 FAT 中选择一个 FAT 用于诊断目的。

根目录区域。

这是一个目录表,用于存储有关位于根目录中的文件和目录的信息。它仅用于 FAT12 和 FAT16,并为根目录规定一个固定的最大大小,该大小在创建此卷时预先分配。FAT32 将根目录与文件和其他目录一起存储在数据区域中,允许其增长而不受此类限制。因此,对于 FAT32,数据区域从这里开始。

数据区域。

这是实际文件和目录数据存储的地方,占据了分区的大部分空间。传统上,在 IBM 兼容机上格式化时,数据区域未使用的部分会用填充值 0xF6 进行初始化,但也用于 Atari Portfolio。8 英寸 CP/M 软盘通常预格式化为 0xE5;[9] 据 Digital Research 称,此值也用于 Atari ST 格式化的软盘。[nb 3] 一些现代格式化程序会用 0x00 的值擦除硬盘,而闪存盘上会使用 0xFF 的值来减少磨损。后一个值通常也用于 ROM 磁盘。(一些高级格式化工具允许配置格式填充字节。[nb 4])

只需在 FAT 中的文件链中添加更多链接,即可任意增加文件和子目录的大小(只要有空闲簇)。但请注意,文件是以簇为单位分配的,因此如果 1 KB 文件驻留在 32 KB 簇中,则浪费了 31 KB。

FAT32 通常从 2 号簇开始根目录表:数据区域的第一个簇。

相关内容