📄 引导记录.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://cracker2003.nease.net/htm/disk005.htm -->
<HTML><HEAD><TITLE>引导记录</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY background=引导记录.files/back01.jpg>
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD width="100%"></TD></TR>
<TR>
<TD width="100%">当前位置:<A
href="http://cracker2003.nease.net/index.htm">首页</A>-<A
href="http://cracker2003.nease.net/htm/disk001.htm">磁盘文件</A>-引导记录(DBR)及其结构</TD></TR></TBODY></TABLE>
<P>引导记录(DBR)及其结构</P>
<P>磁盘的逻辑0扇区都称为DOS引导扇区,又称为BOOT区。我们可以用DEBUG中的L命令读出DBR扇区的内容。<BR>在DEBUG中,L命令的格式是:<BR>L
内存缓冲区地址,盘号,起始扇区,要读取的扇区数<BR>其中,磁盘A、B、C、D、E...的盘号分别为
0、1、2、3、4...<BR>例如,进入DEBUG后,将D盘DBR扇区的读入内存CS:100的命令为:<BR>-L
100,3,0,1<BR><B>1.DBR扇区的结构</B><BR>经由FORMAT高级格式化写到该扇区的内容为称为DOS的引导记录(DBR),其主要功能是完成DOS系统的自举。<BR>以FAT16的硬盘DBR为例,它由以下5个部分组成:<BR>·跳转指令。占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本而变化。<BR>·厂商标识和DOS版本号。该部分总共占用8个字节,其内容随DOS的版本而不同。·BPB(BIOS
Parameter
Block,BIOS参数块)。BPB从第12(0BH)字节起占用19个字节,各字节内容及地址分配如表6-3所示。在该部分记录了磁盘的扇区字节数、磁头数等重要信息。该部分的内容随磁盘类型的不同而不一样。<BR>·DOS引导程序。DOS引导程序即占用480字节的BOOT代码,负责完成DOS的3个系统文件的装入工作。这部分内容随DOS版本不同而变化。<BR>·结束标志字。结束标志占用2个字节,其值为AA55。<BR>以上5个部分共占用512个字节,也正好是一个扇区,因此称它为DOS引导扇区或BOOT区。在该区间的内容中,除了第5部分结束标志字是固定不变之外,其余4个部分都是不确定的。第1、2、4部分都因DOS版本的不同而不同,第3部分BPB信息的内容也将随DOS的版本及时间的变化而变化。</P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
<TBODY>
<TR>
<TD align=middle width="16%">偏移量</TD>
<TD align=middle width="16%">字节数</TD>
<TD width="68%" colSpan=2>
<P align=center>含义</P></TD></TR>
<TR>
<TD align=middle width="16%">00--02H</TD>
<TD align=middle width="16%">3</TD>
<TD align=left width="68%" colSpan=2> 跳转到引导代码</TD></TR>
<TR>
<TD align=middle width="16%">03--0AH</TD>
<TD align=middle width="16%">8</TD>
<TD align=left width="68%" colSpan=2> 厂商标识和DOS版本</TD></TR>
<TR>
<TD align=middle width="16%">0B--0CH</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="3%" rowSpan=11>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">B</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">P</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">B</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">参</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">数</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">信息</P></TD>
<TD align=left width="65%"> 每个扇区的字节数</TD></TR>
<TR>
<TD align=middle width="16%">0DH</TD>
<TD align=middle width="16%">1</TD>
<TD align=left width="65%"> 每个分配簇的扇区数(2的整数倍)</TD></TR>
<TR>
<TD align=middle width="16%">0E--0FH</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="65%"> 保留扇区数</TD></TR>
<TR>
<TD align=middle width="16%">10H</TD>
<TD align=middle width="16%">1</TD>
<TD align=left width="65%"> FAT个数</TD></TR>
<TR>
<TD align=middle width="16%">11--12H</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="65%"> 根目录登记项数(所允许的最大数值)</TD></TR>
<TR>
<TD align=middle width="16%">13--14H</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="65%"> 磁盘扇区总数</TD></TR>
<TR>
<TD align=middle width="16%">15H</TD>
<TD align=middle width="16%">1</TD>
<TD align=left width="65%"> 磁介质类型说明</TD></TR>
<TR>
<TD align=middle width="16%">16--17H</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="65%"> 每个FAT表所占的扇区数</TD></TR>
<TR>
<TD align=middle width="16%">18--19H</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="65%"> 每个磁道(柱面)的扇区数</TD></TR>
<TR>
<TD align=middle width="16%">1A--1BH</TD>
<TD align=middle width="16%">2</TD>
<TD align=left width="65%"> 磁头的个数</TD></TR>
<TR>
<TD align=middle width="16%">1C--1FH</TD>
<TD align=middle width="16%">4</TD>
<TD align=left width="65%"> 当前DOS分区前面的隐含扇区数</TD></TR>
<TR>
<TD align=middle width="16%">27--2AH</TD>
<TD align=middle width="16%">4</TD>
<TD align=left width="68%" colSpan=2> FAT16格式磁盘系列号</TD></TR>
<TR>
<TD align=middle width="16%">2B--35H</TD>
<TD align=middle width="16%">10</TD>
<TD align=left width="68%" colSpan=2> FAT16卷标名</TD></TR>
<TR>
<TD align=middle width="16%">36--3AH</TD>
<TD align=middle width="16%">5</TD>
<TD align=left width="68%" colSpan=2> FAT16磁盘格式标志</TD></TR></TBODY></TABLE>
<P><BR>表6-3硬盘FAT16的DOS引导记录中BPB等内容地址分配表<BR>DOS引导记录中的BPB参数块从第12(0BH)字节起占用21个字节,这是磁盘的重要参数区。表6-3中BPB参数块的多数项目的含义容易理解,在此仅对“保留扇区”、“介质描述”和“隐含扇区数”3项加以说明:<BR>(1)保留扇区(RS-Reserved
Sector)<BR>由DOS指定的被保留用作引导区的扇区数。其值一般为1。<BR>(2)介质描述(MD-Media
Description)<BR>向DOS提供的所用磁盘的性质。介质描述拦中的值DOS所能识别的十六进制数,不同的介质(即不同的磁盘类型)具有不同的介质描述值。硬盘的介质描述符为“F8”,不同的软盘所对应的介质描述符如表6-4所示。<BR>表6-4各种类型磁盘的介质描述值</P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
<TBODY>
<TR>
<TD align=middle width="19%">十六进制数</TD>
<TD align=middle width="81%">说明</TD></TR>
<TR>
<TD width="19%">F8</TD>
<TD width="81%">硬盘</TD></TR>
<TR>
<TD width="19%">F9</TD>
<TD width="81%">双面5.25"软盘(15扇区高密度)、双面3.5"软盘FA</TD></TR>
<TR>
<TD width="19%">FA</TD>
<TD width="81%">双面3.5"软盘、RAM虚拟盘FC</TD></TR>
<TR>
<TD width="19%">FC</TD>
<TD width="81%">单面5.25"软盘(9扇区/磁道)、双面8"磁盘</TD></TR>
<TR>
<TD width="19%">FD</TD>
<TD width="81%">双面5.25"软盘(9扇区/磁道)、</TD></TR>
<TR>
<TD width="19%">FE</TD>
<TD width="81%">
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">单面8"软盘(单密度)、单面8"软盘(双密度)</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">单面5.25"软盘(8扇区/磁道)</P></TD></TR>
<TR>
<TD width="19%">FF</TD>
<TD width="81%">双面5.25"软盘(8扇区/磁道)</TD></TR></TBODY></TABLE>
<P><BR>(3)隐含扇区数(HS-Hidden
Sectors)<BR>隐含扇区一般用于硬盘分区,所以在软盘中该值为0。在硬盘分区中,它表示从磁盘起始扇区至当前分区之前的总扇区数。如图6-2所示。<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=1>
<TBODY>
<TR>
<TD align=middle width="20%">
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">分区表前</P>
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">已用扇区</P></TD>
<TD align=middle width="20%">第1分区</TD>
<TD align=middle width="20%">第2分区</TD>
<TD align=middle width="20%">第3分区</TD>
<TD align=middle width="20%">第4分区</TD></TR></TBODY></TABLE>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">第1分区的隐含扇区
|
|
|</P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">--------第2分区的隐含扇区------------|
|
|</P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">-------------------第3分区的隐含扇区--------------------|
|</P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px">---------------------------第4分区的隐含扇区-------------------------------| </P>
<P>
图6-2
硬盘的隐含扇区数示意<BR>硬盘的每一个分区都是独立的“逻辑驱动器”,DOS将每个分区都视为一个从0开始的连续扇区块。每个分区的隐含扇区数取决于该分区以前的总扇区数。一般来说,分区1的隐含扇区数为17。<BR><B>2.DBR的主要功能及工作流程</B><BR>DOS/Windows系统在引导的时候,DBR是第一个(除硬盘的MBR)之外)须装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要任务是装载DOS的系统隐藏文件IO.SYS(或IBMIO.COM)。<BR>DBR程序段所要完成的主要任务如下:<BR>(1)重新设置引导驱动器。<BR>(2)将根目录的第一个扇区(即根目录FDT中的前16个文件项)装载到内存。<BR>(3)检查FDT中的前两个文件是否是DOS的两个系统隐藏文件。<BR>(4)将其中一个系统隐藏文件(IO.SYS或IBMIO.COM)装载到内存。<BR>(5)将控制权交给该系统隐藏文件IO.SYS或IBMIO.COM。<BR>DBR引导程序段执行流程如图6-3所示。<BR><IMG
height=291 src="引导记录.files/dbr.gif" width=515
border=0><BR>图6-3DBR引导程序段执行流程<BR><BR></P>
<P align=center><A href="http://cracker2003.nease.net/htm/disk004.htm">上一页</A>
<A href="http://cracker2003.nease.net/htm/disk001.htm">返回</A> <A
href="http://cracker2003.nease.net/htm/disk006.htm">下一页</A></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -