|
磁盘的逻辑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分区的隐含扇区-------------------------------| 图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引导程序段执行流程
|