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区用来存放文件的簇链信息,数据区存放用户数据和一些系统数据。


image




二.引导区

2.1引导区简介

FAT32引导区有两个非常重要的扇区,分别是BPB扇区(通常为0号扇区)和FS Info扇区(通常为1号扇区),它们的备份扇区通常为6号扇区和7号扇区。若发生格式化,这四个扇区的信息会被重新写入。

2.2 BPB扇区

BPB扇区里存放了两种类型的数据,一种是以“BS_”开头的磁盘引导参数,里面存放了驱动器号、卷序列号、文件系统类型字符串、引导签名等参数,另一种是以“BPB_”开头的文件系统参数。


FAT12、FAT16、FAT32的公共字段如下图
image




若文件系统为FAT32格式,从偏移 0x024 至0x034为FAT32 特有字段。从 0x040 至 0x05A为FAT32继续的"BS_"字段信息。
image


image




若文件系统为FAT12/FAT16格式,从偏移 0x024 至0x036为FAT12/FAT16的特有字段。
image


下图FAT32格式的BPB扇区参考图,标注了文件系统的重要信息。

image


2.3 FS Info扇区

相比FAT12/FAT16,FAT32 格式的文件系统支持更大的容量,但FAT 表也随之膨胀,每次查询剩余空间都完整扫描 FAT 会明显变慢。
为此,FAT32 引入了FS Info扇区(通过 BPB 中的 BPB_FSInfo 字段指定扇区位置,通常是 1),用来缓存空闲簇总数和下一个空闲簇搜索起点,下图为FS Info扇区的参考图,但需注意这两个参数并非绝对可靠,例如在写入过程中系统突然掉电。
image

posted @ 2026-03-27 15:01  Charles_hui  阅读(7)  评论(0)    收藏  举报