标题: How It Works --- Master Boot Record (主启动记录) [打印本页] 作者: ko20010214 时间: 2003-6-1 00:00 标题: How It Works --- Master Boot Record (主启动记录)
How It Works --- Master Boot Record (主启动记录)
1a版
作者:Hale Landis (landis@sugs.tware.com)
译者:qnp(华南木棉)
"How It Works"系列
这是"How It Works"系列中的一篇文档。目前这个系列包括了以下文档:
* How It Works -- CHS Translation
* How It Works -- Master Boot Record
* How It Works -- DOS Floppy Boot Sector
* How It Works -- OS2 Boot Sector
* How It Works -- Partition Tables
本文是介绍MBR的反编译程序的。MBR是放在硬盘的0柱面,0磁头(head),1扇区的
那一段区。MBR是由FDISK程序创建的。所有操作系统的FDISK程序都会创建类似的MBR
记录。MBR是多个分区的前提,每个MBR中包括了四个分区表记录。在您的计算机加电
之后,INT19被调用了。一般来说,INT19先从第一个软盘驱动器中读启动扇区记录。
如果在软盘中找到了启动的扇区,那么这个扇区的数据就被读入到内存的0000:7c00
地址上,INT19也跳到了这个地址上。但是,如果没有在软盘中找到这个扇区的话,INT
19就从第一个硬盘中去读。同样,如果成功的话,也会把MBR导入到相同的内存地址
0000:7c00,INT19也会跳这个地址。MBR中包括的一段小程序是定出在分区表中的活动分
区。这样的活动分区找到之,那个分区的启动扇区也被读入到0000:7c00地址,MBR程序
也转移到了这个地址。每一个操作系统都有固定的启动扇区的格式。在启动扇区里的程
序要能定出操作系统启动程序的位置(或是核心本身,或者是一个启动管理器),然后
将它读入内存。
另:在Ctrl-Alt-Del键被按下时,INT19也会被调用。在大多数系统中,Ctrl-Alt-Del三?
键同时按下表示热启动您的计算机,回到INT19调用前的状态。
=====
数据存放的位置:
MBR程序放在偏移为0000的位置。
MBR消息放在偏移为008b的位置。
分区表放在偏移为00be的位置。
签名放在偏移为00fe的位置。
关于谁干什么事的总结:
如果一个活动分区找到了,这个分区的启动数据被读入到0000:7c00的位置,MBR程
序也跳到0000:7c00的位置。这段程序找到指向分区表的入口,入口描述的是这段分区是
怎样被启动的。启动程序用这些数据来决定用来启动的驱动器和这个驱动器分区在硬盘上
的位置。
如果没有找到这样的活动分区入口,ROM BASIC会转入INT 18的调用。所有其他的错
误导致系统的挂起,可以看HANG的标记。