磁盘的逻辑0扇区都称为DOS引导扇区,又称为BOOT区。我们可以用DEBUG中的L命令读出DBR扇区的内容。
在DEBUG中,L命令的格式是:
L 内存缓冲区地址,盘号,起始扇区,要读取的扇区数
其中,磁盘A、B、C、D、E...的盘号分别为 0、1、2、3、4...
例如,进入DEBUG后,将D盘DBR扇区的读入内存CS:100的命令为:
-L 100,3,0,1
1.DBR扇区的结构
经由FORMAT高级格式化写到该扇区的内容为称为DOS的引导记录(DBR),其主要功能是完成DOS系统的自举。
以FAT16的硬盘DBR为例,它由以下5个部分组成:
·跳转指令。占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本而变化。
·厂商标识和DOS版本号。该部分总共占用8个字节,其内容随DOS的版本而不同。·BPB(BIOS Parameter Block,BIOS参数块)。BPB从第12(0BH)字节起占用19个字节,各字节内容及地址分配如表6-3所示。在该部分记录了磁盘的扇区字节数、磁头数等重要信息。该部分的内容随磁盘类型的不同而不一样。
·DOS引导程序。DOS引导程序即占用480字节的BOOT代码,负责完成DOS的3个系统文件的装入工作。这部分内容随DOS版本不同而变化。
·结束标志字。结束标志占用2个字节,其值为AA55。
以上5个部分共占用512个字节,也正好是一个扇区,因此称它为DOS引导扇区或BOOT区。在该区间的内容中,除了第5部分结束标志字是固定不变之外,其余4个部分都是不确定的。第1、2、4部分都因DOS版本的不同而不同,第3部分BPB信息的内容也将随DOS的版本及时间的变化而变化。
偏移量 | 字节数 | 含义 | |
00--02H | 3 | 跳转到引导代码 | |
03--0AH | 8 | 厂商标识和DOS版本 | |
0B--0CH | 2 | B P B 参 数 信息 | 每个扇区的字节数 |
0DH | 1 | 每个分配簇的扇区数(2的整数倍) | |
0E--0FH | 2 | 保留扇区数 | |
10H | 1 | FAT个数 | |
11--12H | 2 | 根目录登记项数(所允许的最大数值) | |
13--14H | 2 | 磁盘扇区总数 | |
15H | 1 | 磁介质类型说明 | |
16--17H | 2 | 每个FAT表所占的扇区数 | |
18--19H | 2 | 每个磁道(柱面)的扇区数 | |
1A--1BH | 2 | 磁头的个数 | |
1C--1FH | 4 | 当前DOS分区前面的隐含扇区数 | |
27--2AH | 4 | FAT16格式磁盘系列号 | |
2B--35H | 10 | FAT16卷标名 | |
36--3AH | 5 | FAT16磁盘格式标志 |
表6-3硬盘FAT16的DOS引导记录中BPB等内容地址分配表
DOS引导记录中的BPB参数块从第12(0BH)字节起占用21个字节,这是磁盘的重要参数区。表6-3中BPB参数块的多数项目的含义容易理解,在此仅对“保留扇区”、“介质描述”和“隐含扇区数”3项加以说明:
(1)保留扇区(RS-Reserved Sector)
由DOS指定的被保留用作引导区的扇区数。其值一般为1。
(2)介质描述(MD-Media Description)
向DOS提供的所用磁盘的性质。介质描述拦中的值DOS所能识别的十六进制数,不同的介质(即不同的磁盘类型)具有不同的介质描述值。硬盘的介质描述符为“F8”,不同的软盘所对应的介质描述符如表6-4所示。
表6-4各种类型磁盘的介质描述值
十六进制数 | 说明 |
F8 | 硬盘 |
F9 | 双面5.25"软盘(15扇区高密度)、双面3.5"软盘FA |
FA | 双面3.5"软盘、RAM虚拟盘FC |
FC | 单面5.25"软盘(9扇区/磁道)、双面8"磁盘 |
FD | 双面5.25"软盘(9扇区/磁道)、 |
FE | 单面8"软盘(单密度)、单面8"软盘(双密度) 单面5.25"软盘(8扇区/磁道) |
FF | 双面5.25"软盘(8扇区/磁道) |
(3)隐含扇区数(HS-Hidden Sectors)
隐含扇区一般用于硬盘分区,所以在软盘中该值为0。在硬盘分区中,它表示从磁盘起始扇区至当前分区之前的总扇区数。如图6-2所示。
分区表前 已用扇区 | 第1分区 | 第2分区 | 第3分区 | 第4分区 |
第1分区的隐含扇区 | | |
--------第2分区的隐含扇区------------| | |
-------------------第3分区的隐含扇区--------------------| |
---------------------------第4分区的隐含扇区-------------------------------|
图6-2 硬盘的隐含扇区数示意
硬盘的每一个分区都是独立的“逻辑驱动器”,DOS将每个分区都视为一个从0开始的连续扇区块。每个分区的隐含扇区数取决于该分区以前的总扇区数。一般来说,分区1的隐含扇区数为17。
2.DBR的主要功能及工作流程
DOS/Windows系统在引导的时候,DBR是第一个(除硬盘的MBR)之外)须装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要任务是装载DOS的系统隐藏文件IO.SYS(或IBMIO.COM)。
DBR程序段所要完成的主要任务如下:
(1)重新设置引导驱动器。
(2)将根目录的第一个扇区(即根目录FDT中的前16个文件项)装载到内存。
(3)检查FDT中的前两个文件是否是DOS的两个系统隐藏文件。
(4)将其中一个系统隐藏文件(IO.SYS或IBMIO.COM)装载到内存。
(5)将控制权交给该系统隐藏文件IO.SYS或IBMIO.COM。
DBR引导程序段执行流程如图6-3所示。
图6-3DBR引导程序段执行流程