DBR分区表详解(FAT)

4 篇文章 0 订阅
4 篇文章 0 订阅

DBR(Dos Boot Record)是操作系统引导记录区的意思。

先来有个宏观认识,看个图:

位置:它通常位于硬盘的 0 磁道 1 柱面 1 扇区,是操作系统可以直接访问的第一个扇区,

内容:跳转指令,厂商标志和操作系统版本号,BPB(BIOS Parameter Block),扩展BPB,os引导程序,结束标志几部分。

BPB:描述能够使可执行引导代码找到相关参数的信息。参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT 个数,分配单元的大小等重要参数。

作用:引导程序的主要任务是当 MBR 将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以 DOS 为例,即是 Io.sys 和Msdos.sys)。如果确定存在,就把其读入内存,并把控制权 交给该文件。

下面是一个FAT32文件系统的DBR的信息

(注意 数据以小端格式存储的)

0x01~0x02:      3个字节,跳转指令。跳转到操作系统引导程序处。引导程序是一段用来加载真正操作系统的程序。X86指令。

0x03~0xA:        8个字节,厂家标志和OS版本号 与格式化时的操作系统有关,本例为MSOSDOS 5.0 

以下为BPB(0x0B-0x3F):

0X0B~0X0C:     2个字节,每扇区的字节数。本例是0X0200,512

0X0D                1个字节,每簇的扇区数。本例是0x8

0X0E~0X0F:     2个字节,保留扇区数。本例是0x1780???为甚会这么大呢?

0X10:             1个字节,FAT表个数。本例是0x02

0X11~0X12:   2个字节,根目录最多可容纳的目录项数。FAT12和FAT16通常为512,FAT32不使用此值,为0.本例中是FAT32,所以为0.

0X13~0X14:   2个字节,扇区总数。小于32MB时使用该处存放,超过32MB的使用偏移0x20~-x23字节处的4字节存放。本例中磁盘为7G多,故为0.此处中《FAT文件系统原理》中说法为只有FAT12/FAT16使用此字段。目前暂不纠结。

0X15:            1个字节,介质描述。本例中0XF8表示高密度的 3.5寸软盘。

0X16~0X17:   2个字节,每个FAT表的扇区数只被 FAT12/FAT16 所使用。同样,FAT32不使用,为0.

0X18~0X19:   2个字节,每个磁道的扇区数。本例是0X3F,63

0X1A~0X1B:     2个字节,磁头数。本例是0XFF,255

0X1C~0X1F:     4个字节,分区前已经使用的扇区数,隐藏扇区数。本例是 0X 00 00 20 00,8192

0X20~0X23:   4个字节,文件系统扇区数。本例是 0X 01 D1 FC 00,30538752

0X24~0X27:   4个字节,每个FAT表的扇区数。本例是 0X 00 00 74 40,29760

0X28~0X29:   2个字节,扩展标志(Extended Flag)(只被 FAT32 使用)该两个字节结构中各位的值为:位 0-3:活动 FAT 数(从 0 开始计数,而不是 1).只有在不使用镜像时才有效位 4-6:保留位 7:0 值意味着在运行时FAT 被映射到所有的 FAT1 值表示只有一个 FAT是活动的位 8-15:保留。

0x2A~0x2B:    2个字节,文件系统版本(File ystemVersion)只供 FAT32 使用,高字节是主要的修订号,而低字节是次要的修订号。本字段支持将来对该 FAT32 媒体类型进行扩展。如果本字段非零,以前的 Windows 版本将不支持这样的分区

0x2C~0x2F:    4个字节,根目录簇号,2。(虽然在FAT32文件系统下,根目录可以存放在数据区的任何位置,但是通常情况下还是起始于2号簇)

0x30~0x31:     2个字节,FSINFO(文件系统信息扇区)扇区号(只供 FAT32 使用),1。该扇区为操作系统提供关于空簇总数及下一可用簇的信息。文件系统信息扇区号 FAT32 分区的保留区中的文件系统信息(File SystemInformation, FSINFO)结构的扇区号。其值一般为 1。在备份引导扇区(Backup Boot Sector)中保留了该 FSINFO 结构的一个副本,但是这个副本不保持更新(没看懂

0x32~0x33:     2个字节,备份引导扇区的位置,6。备份引导扇区总是位于文件系统的6号扇区。

0x34~0x3F:     12个字节,未使用。

以下为扩展BPB(0x40-0x59):

0x40~0x40:     1个字节,软盘驱动器被标识为 0x00,物理硬盘被标识为 0x80,而与物理磁盘驱动器无关。

0x41~0x41:     1个字节,未用。

0x42~0x42:     1个字节,扩展引导标志。0x29。本字段必须要有能被 Windows 2000 所识别的值 0x28 或 0x29

0x43~0x46:     4个字节,卷序列号。通常为一个随机值。在格式化磁盘时所产生的一个随机序号,它有助于区分磁盘

0x47~0x51:     11个字节,卷标(ASCII码),如果建立文件系统的时候指定了卷标,会保存在此。本字段只能使用一次,它被用来保存卷标号。现在,卷标被作为一个特殊文件保存在根目录中

0x52~0x59:     8个字节,文件系统格式的ASCII码,FAT32。

0x5A~0x1FD:  410个字节,引导程序代码。

0x1FE~0x1FF: 签名标志“55 AA”。

 

参考资料:解析DBR操作系统引导记录数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值