FAT文件系统总结(二)

 

  FAT32 的 BPB 的内容和 FAT12/16 的内容在地址 0x36 以前是完全一样的,从偏移量 0x36开始,他们的内容有所区别,具体的内容要看 FAT 类型为 FAT12/16 还是 FAT32,这点保证了 在启动扇区中包含一个完整的 FAT12/16 或 FAT32 的 BPB 的内容,这么做是为了达到最好的兼容性,同时也为了保证所有的 FAT 文件系统驱动程序能正确的识别和驱动不同的 FAT 格式,并 让他们良好地工作,因为他们包含了现有的全部内容从 offset 36 开始 FAT12/FAT16 的内容开始区别于 FAT32,下面分两个表格列出,下 表为 FAT12/FAT16 的内容下表为 FAT32 的内容

名称
offset
长度
描述
 
(byte)
(byte)
 
BPB_FATSz32
0x24
4
一个 FAT 表所占的扇区数,此域为 FAT32 特有,同时
 
 
 
BPB_FATSz16 必须为 0
BPB_Flags
0x28
2
此域 FAT32 特有。
 
 
 
Bits0-3:不小于 0 的 FAT(active FAT)数目,只有
 
 
 
在镜像(mirrorig)禁止时才有效。
 
 
 
Bits 4-6: 保留
 
 
 
Bits 7: 0 表示 FAT 实时镜像到所有的 FAT 表中
 
 
 
1 表示只有一个活动的 FAT 表。这个表就是
 
 
 
Bits0-3 所指定的那个
 
 
 
Bits8-15: 保留
BPB_FSVer
0x2A
2
此域为 FAT32 特有,
 
 
 
高位为 FAT32 的主版本号,低位为次版本号,这个版本
 
 
 
号是为了以后更高级的 FAT 版本考虑,假设当前的操作
 
 
 
系统只能支持的 FAT32 版本号为 0.0。那么该操作系统
 
 
 
检测到此域不为 0 时,它便会忽略 FAT 卷,因为它的版
 
 
 
本号比系统能支持的版式本要高
 
 
 
 
BPB_RootClus
0x2C
4
根目录所在第一个簇的簇号,通常该数值为 2,但不是必

  

 
 
 
须为 2
 
 
 
磁盘工具在改变根目录位置时,必须想办法让磁盘上第一
 
 
 
个非坏簇作为根目录的第一个簇(比如第 2 簇,除非它
 
 
 
已经被标记为坏簇),这样的话,如果此域正好为 0 的
 
 
 
话磁盘检测工具也能轻松的找到根目录所在簇的位置
 
 
 
 
BPB_FSIfo
0x30
2
保留区中 FAT32 卷 FSINFO 结构所占的扇区数,通常为
 
 
 
1
 
 
 
在 Backup Boot 中会有一个 FSINFO 的备份,但该备
 
 
 
份只是更新其中的指针,也就是说无论是主引导记录还是
 
 
 
备份引导记录都是指向同一个 FSINFO 结构
BPB__BkBootSec
0x32
2
如果不为 0,表示在保留区中引导记录的备数据所占的扇
 
 
 
区数,通常为 6。同时不建议使用 6 以外的其他数值
BPB_Reserved
0x34
12
用于以后 FAT 扩展使用,对 FAT32。此域用 0 填充
BS_DrvNum
0x40
1
与 FAT12/16 的定义相同,只不过两者位于启动扇区不
 
 
 
同的位置而已
 
 
 
 
BS_Reserved1
0x41
1
与 FAT12/16 的定义相同,只不过两者位于启动扇区不
 
 
 
同的位置而已
 
 
 
 
BS_BootSig
0x42
1
与 FAT12/16 的定义相同,只不过两者位于启动扇区不
 
 
 
同的位置而已
 
 
 
 
BS_VolID
0x43
4
与 FAT12/16 的定义相同,只不过两者位于启动扇区不
 
 
 
同的位置而已
 
 
 
 
BS_FilSysType
0x47
11
与 FAT12/16 的定义相同,只不过两者位于启动扇区不
 
 
 
同的位置而已
 
 
 
 
BS_FilSysType
0x52
8
通常设置为“FAT32”,请参照 FAT12/16 此部分的陈
 
 
 
述。

 
本站域名:www.mrtlab.com | QQ交流群:250649022 | 使用条款 | 备案:鄂ICP备2020023514号
MRT数据恢复网,专业的硬盘固件维修与数据恢复技术资料提供站!
Copyright 2003-2020 Powered By MrtLab