FAT32
DBR及保留扇区
|
FAT1
|
FAT2
|
数据区
|
- DBR及保留扇区:DBR的含义是DOS引导记录,也称为操作系统引导记录,在DBR之后往往会有一些保留扇区。
- FAT1:FAT的含义是文件分配表,FAT32一般有两份FAT,FAT1是第一份,也是主FAT。
- FAT2:FAT2是FAT32的第二份文件分配表,也是FAT1的备份。
- DATA:数据区,是FAT32文件系统的主要区域,其中包含目录区域。
FAT32文件系统的DBR分析
1:跳转指令
EB 58 90 共3个字节,跳转指令本身占用2字节,它将程序执行流程跳转到引导程序处。例如,当前DBR中的“EB 58”,就是代表汇编语言中的“JMP 58”。需要注意该指令本身占用2个字节,计算跳转目标地址时该指令的下一个字节为基准,所以实际上执行的下一条指令应该位于 5A。紧接着跳转是一条空的指令NOP(90H)
2:OEM代号
4d 53 44 4f 53 35 2e 30(MSDOG5.0)占用8个字节,这个说明了微软不同的操作系统版本。修改这个值不影响文件系统的使用。
3:BPB(BIOSParameter Block,BIOS参数块)
BPB从DBR的第12个字节开始,占用79个字节,其又分为25字节的分区参数块(BPB)和52字节的扩展分区参数块(扩展BPB),记录了有关该文件系统的重要信息,其中各个参数的含义见下表
偏移 |
长度(B) |
字段名与定义 |
说明 |
BPB |
|||
0X0B |
2 |
每扇区字节数 |
记录每个逻辑扇区的大小,其常见的值为512,但是并不是固定的值。该值可以由程序定义,合法值包括512、1024、2048、4096。 |
0X0D |
1 |
每簇扇区数 |
记录着文件系统的簇大小,即由多少个扇区组成一个簇。簇是FAT12,FAT16及FAT32文件系统下数据的最小存储单元,一个簇由一组连续的扇区组成,簇所含的扇区数必须是2的整数次幂,如1,2,4,8,16,32,64,128.在Windows 2000以前族最大值为64扇区,之后最大值为128。在FAT文件系统中,所有的簇是从2开始编号,每个簇都有一个自己的地址编号,但是所有的簇都位于数据区,在数据区之前没有簇。 |
0X0E |
2 |
DOS保留扇区数 |
DBR到FAT1表之间的扇区数,或者说是FAT1的开始扇区号,对于FAT32文件系统来说,该值的范围是32扇区到38扇区之间。 |
0X10 |
1 |
FAT个数 |
一般为2 |
0X11 |
2 |
未用 |
FAT32必须等于0,FAT12/FAT16为根目录中目录的个数 |
0X13 |
2 |
未用 |
FAT32必须等于0,FAT12/FAT16为扇区总数 |
0X15 |
1 |
介质描述符 |
描述磁盘介质的参数,根据磁盘性质的不同,取不同的值。0xF8标准值,可移动存储介质,常用 0xF0 |
0X16 |
2 |
未用 |
FAT32必须为0,FAT12/FAT16为一个FAT 表所占的扇区数。 |
0X18 |
2 |
每磁道扇区数 |