FAT16文件系统之DBR(二)
来源:互联网 发布:linux tail 100f 编辑:程序博客网 时间:2024/05/16 17:53
FAT16文件系统的DBR由5部分组成,跳转指令,OEM,BPB,引导程序,结束标志
1:跳转指令
跳转指令本身占用2字节,它将程序执行流程跳转到引导程序处。例如,当前DBR中的“EB 3C”,就是代表汇编语言中的“JMP 3C”。需要注意该指令本身占用2个字节,计算跳转目标地址时该指令的下一个字节为基准,所以实际上执行的下一条指令应该位于3E。紧接着跳转是一条空的指令NOP(90H)
2:OEM代号
占用8个字节,这个说明了微软不同的操作系统版本。修改这个值不影响文件系统的使用。
3:BPB(BIOSParameter Block,BIOS参数块)
BPB从DBR的第12个字节开始,占用51个字节,记录了有关该文件系统的重要信息,其中各个参数的含义见下表
字节偏移
字段长度
字段名与定义
0X0B
2
每扇区字节数
0X0D
1
每簇扇区数
0X0E
2
DBR及保留扇区数
0X10
1
FAT个数
0X11
2
根目录最大所能容纳的目录项数
0X13
2
扇区总数
0X15
1
介质描述符
0X16
2
每FAT表包含的扇区数
0X18
2
每磁道扇区数
0X1a
2
磁头数
0X1C
4
隐藏扇区数
0X20
4
扇区总数,大于32M的分区扇区总数记录在这里
0X24
1
BIOS驱动器号
0X25
1
未使用
0X26
1
扩展引导标记
0X27
4
卷序列号
0X2B
11
卷标
0X36
8
文件系统类型
下面对这些参数做详细的分析
(1) 每扇区字节数
每扇区字节数记录每个逻辑扇区的大小,其常见的值为512,但是并不是固定的值。该值可以由程序定义,合法值包括512,1024,2048,4096。
(2) 每簇扇区数
每簇扇区数记录着文件系统的簇大小,即由多少个扇区组成一个簇。
簇是FAT12,FAT16及FAT32文件系统下数据的最小存储单元,一个簇由一组连续的扇区组成,簇所含的扇区数必须是2的整数次幂,如1,2,4,8,16,32,64,128.
在Windows 2000以前族最大值为64扇区,之后最大值为128.
在FAT文件系统中,所有的族是从2开始编号,每个簇都有一个自己的地址编号,但是所有的族都位于数据区,在数据区之前没有族。
(3) DBR及保留扇区数
DBR及保留扇区数是DBR到FAT1表之间的扇区数,或者说是FAT1的开始扇区号
(4) FAT个数
一般为2.
(5) 根目录项数
根目录项数是指FAT16的FDT中最大所能容纳的目录项数,这个数值一般都是512,也就是说FDT中只能存放512个目录项,而每一个目录项的大小为32字节。
(6) 分区总扇区数
小于32M的分区记录在这里,因为这个位置只有2个字节,也就是16位,所以能管理的最大分区为216 * 512 = 32M。对于大于32M的分区,用32位记录在20H-23H偏移处。
(7) 介质描述符
介质描述符是描述磁盘介质的参数,根据磁盘性质的不同,取不同的值
如F8 硬盘
F9 双面5.25英寸软盘(15扇区高密度),双面3.5英寸软盘
。。。。。。。。。。。。。。。。不一一列举了。
(8) 每FAT扇区数
略
(9) 每磁道扇区数
其值一般为63.
(10)磁头数
其值一般为255.
(11)隐藏扇区数
是MBR到DBR之间的扇区数,对于扩展分区中逻辑驱动顺来说,是其EBR到DBR之间的扇区数。
(12)分区总扇区数
(13)BIOS驱动器号
这是BIOS的INT 13H所描述的设备号码,一般把硬盘定义为8xh.
(14)扩展引导标记
用来确认后面的三个参数是否有效,一般值为29H
(15)卷序列号
(16)卷标
不在这里进行记录,放到目录项中来管理
(17)文件系统类型
使用ASCII码记录当前分区的文件系统类型
4:引导程序
Fat16的DBR引导程序占用448个字节,在98 之前的系统之下,这段代码负责完成DOS三个系统文件的装入; 2000之后的系统中,其负责完成将系统文件NTLDR装入。对于一个没有操作系统的分区来讲,这段代码是没有作用的。
5:结束标志
为固定值“55 AA”- FAT16文件系统之DBR(二)
- FAT16文件系统简介(二)
- 四极管:FAT16文件系统移植(二)
- FAT16文件系统之总结构分析(一)
- FAT16文件系统之FAT表浅谈(三)
- FAT16文件系统之目录项分析(四)
- 从FAT16开始认识文件系统《第一讲 DBR肢解它,哼》
- 文件系统:FAT16
- FAT16文件系统
- 基于stm32f103zet6的FAT16文件系统学习1(初识FAT16)
- FAT16文件系统解析(C#版本)
- FAT16文件系统解析(C#版本)
- FAT16文件系统解析(C#版本)
- 文件系统:FAT(FAT16),FAT32,VFAT,NTFS
- FAT16文件系统简介
- FAT16文件系统简介(一)
- FAT16文件系统格式说明
- 四极管:转 FAT16 文件系统
- 2017/7/23 学习心得 css3
- servlet生命周期时序图
- Karen and Morning
- 《小白兔到大黑牛》第十二篇centous 7命令的总结
- Java反射(四):java获取类的属性及构造器
- FAT16文件系统之DBR(二)
- Android高级控件01
- 矩阵快速幂
- unity学习总结
- Greenplum 数据库 集群安装部署(生产环境) 所需硬件
- SCCB协议下ov7670调试
- oracle中创建序列以及序列使用注意事项
- UE4 凹多边形渲染
- win7更改文件权限