FAT32文件系统
一 . 简介1.1 概述FAT文件系统家族主要包括FAT12、FAT16、FAT32以及exFAT四个主要版本。其中FAT12是最早的版本FAT16随着硬盘容量的提升而发展FAT32突破了前两者的容量限制最大支持2TB成为U盘和移动存储设备的主流格式exFAT则是为闪存设备优化的最新版本不仅解决了FAT32单个文件4GB大小的限制还提升了读写性能但是目前存在专利限制。随者技术发展FAT32成为了主流嵌入式设备的首选文件系统格式。1.2 用途若要提升产品磁盘的读写性能那么对文件系统的理解就至关重要。1.3 FAT32格式Fat32文件系统可以分为三个区引导区也称保留区、FAT区、数据区其中数据区包含根目录区和文件数据区。引导区用来存放磁盘和文件系统的相关信息FAT区用来存放文件的簇链信息数据区存放用户数据和一些系统数据。二引导区2.1引导区简介FAT32引导区有两个非常重要的扇区分别是BPB扇区通常为0号扇区和FS Info扇区通常为1号扇区它们的备份扇区通常为6号扇区和7号扇区。若发生格式化这四个扇区的信息会被重新写入。2.2 BPB扇区BPB扇区里存放了两种类型的数据一种是以“BS_”开头的磁盘引导参数里面存放了驱动器号、卷序列号、文件系统类型字符串、引导签名等参数另一种是以“BPB_”开头的文件系统参数。FAT12、FAT16、FAT32的公共字段如下图若文件系统为FAT32格式从偏移 0x024 至0x034为FAT32 特有字段。从 0x040 至 0x05A为FAT32继续的BS_字段信息。若文件系统为FAT12/FAT16格式从偏移 0x024 至0x036为FAT12/FAT16的特有字段。下图FAT32格式的BPB扇区参考图标注了文件系统的重要信息。2.3 FS Info扇区相比FAT12/FAT16FAT32 格式的文件系统支持更大的容量但FAT 表也随之膨胀每次查询剩余空间都完整扫描 FAT 会明显变慢。为此FAT32 引入了FS Info扇区通过 BPB 中的 BPB_FSInfo 字段指定扇区位置通常是 1用来缓存空闲簇总数和下一个空闲簇搜索起点下图为FS Info扇区的参考图但需注意这两个参数并非绝对可靠例如在写入过程中系统突然掉电。