2023年11月25日发(作者:)

576~77产业科技创新 20202Industrial Technology Innovation

76产业科技创新 Industrial Technology InnovationVol.2 No.5

浅谈MBR的引导过程

刘宏斌

(苏州高等职业技术学校,江苏 苏州 215000)

摘要 MBR损坏后需要重建数据结构后才能重新调用原来的的数据文件主引导扇区内的数据可以通过基于操

作系统的相关分区软件进行写入但是又和操作系统本身一定的关系也就是说只要创建了有效的主引导记录就可

以引导任意一种操作系统

关键词MBRBOOT引导汇编

中图分类号TP393.08 文献标识码A 文章编号2096-6164202005-0076-02

1 MBR简介

MBR最早在DOS操作时就已经开始使用了主引导

记录的代码中包含了磁盘的相关参数和启动引导代

码。其中的磁盘启动引导代码的功能有检查这个分区

表是不是有错误,还在计算机系统硬件完成POST自检

程序后启动引导磁盘在引导记扇区1BEH位置有激活标

志(代码为80H)的分区上的操作系统,并将控制管

理权交给启动引导程序。MBR是由特定分区程序(DOS

操作系统使用的Fdisk程序和LINUX使用分区程序也

Fdisk,名称相同功能和使用有区别)所划分的,

但是又和操作系统没有任何依赖关系,而且磁盘引导

程序可以进行修改的,利用复发引导程序,可以在开

机时有多个系统可以进行选择进入,从而实现多系统

共存。

目前由于操作系统的更新和分区的数量限制常用GPT

分区,但是MBR的分区方式还是以一定的方式存在。向

window7,windows10linux操作系统也一直在使用。

MBR(masterbootrecord)可以解释为主引导记

录,MBR的信息就通过分区软件写入到这个扇区,常

用的软件有微软磁盘操作系统DOS中自带的FDISK

DM版、PartitionMagic、

DiskGenius等。MBR系,

不同操作系统的不会改变MBR的结构,它是具有公

共引导的特性。但是它的代码中会有操作的相关信

息。当然也有特例,安装一些带多重引导功能的软

件有可能改写它的启动代码,常见的软件EasyBCD、

SystemCommanderLINUXgrub引导系统。优点在

于在所有的操作系统被引导时提前被调入内存中并且

发挥作用,之后才把控制权交给带有启动属性(80H)

主分区内的操作系统的控制。

1.1 MBR的位置

磁盘的存储是以扇区为基本单位的,我们的资料,

操作系统代码,包括系统启动引导代码(MBR)都是存

储在这些扇区中,其中硬盘的第一个扇区叫做主引导

扇区,又名主引导记录MBR这个记录使用512个字节,

它用于硬盘启动时将系统控制权(BIOS)启动后将控

制权给MBRMBR负责加载操作系统并且转给用户指定

的在分区表中登记了某个操作系统分区。

1.2 MBR的功能

Ascan分区表搜寻(带有80标识)活动分区B

查找活动分区的起始扇区(分区开始,即DBRC

活动分区的引导扇区读到内存D执行引导扇区内的

代码用来启动操作系统(将控制权转交)

1.3 MBR组成

BootCode([0440]

DiskSignature([440444]:主

4Unused[444445]

PartitionTables(4个硬盘分区表DPT)[445509]

64字节,每个分区表占16字节Signature(主引

导扇区结束标志55AAH)[509511]

2 MBR怎么工作

计算机主机箱通电后,经过触发开机电路,将

ATX电源向主板输出各项供电,CPU、南桥等主要芯片

供电正常后,南桥向主板的每个设备发出复位信号,

CPU被复位后了出寻址指令,经过南桥选中BIOS并读

取中的POST自检程序,同POST程序对各个设备进行

测试,测试通过后。BIOS把硬盘的主引导记录(在0

扇区位于0柱面、0磁道和第1个扇区上)的数据读

入到的7C00H位置,并将控制和执行权交给了主引导

作者简介:刘宏斌(1975- ),男,江苏苏州人,本科,讲师,主要从事计算机硬件维护、网络方面研究。

2卷 第577

刘宏斌:浅谈MBR的引导过程

代码。主引导代码的工作包括对分区表进行扫描来找。Linux式,sda1、

到一个活动的(可引导的)分区(标志为80H的二进sda2、sda3、da4或者是hda1、hda2、hda3、hda4

制代码)查找活动分区的开始位置既初始扇区a号,

7C00H位置时把活动分区的引导扇区数据加载到内存bc等。

当中将控制交给引导扇区代码如果主引导代码没扩展分区的信息在硬盘分区表(DPT)中,DPT

有办完成上面所描述的操作,它就会显示以下错误消MBR最后的位置DPT64个字节(它记录了4

Noactivepartition.Invalidpartitiontable主分区的信息),它的结束标志2字节(0x55aa(分

Errorloadingoperatingsystem区表0扇区最后两个字节),而逻辑驱动器的相关信

Missingoperatingsystem. 息就在扩展分区的起始扇区(又称为EBR扇区,EBR

计算机通电(硬启动)或按机箱上的复位键(reset(ExtendedBootRecord)即扩展分区引导记录),也

键,软启动)计算机系统进行系统复位,复位过后把就是DPT中所指向位置起始地址(面/扇区/磁道)

CPU寄存器的CS基地址设为FFFFH,IP偏移地址设为所对应的扇区即EBREBR扇区中的信息与主引导扇

0000H,格式为基地址偏移地址那么指令就是从区的最区别是不包含其他分区的信息,它的16字节

FFFF0000H这个位置执行开始指令,在这个位置通的分区信息只表示的是当前扩展分区所划分的逻辑

JMP指令跳转到系统自检程序的位置,POST系统自驱动器的起始和结束地址等,如果有多个逻辑驱动

检结束以后把磁盘的第一个扇区(早期286、386时代器,在每一个逻辑驱动前都会有一个EBR

使用软盘来启动系统),也就是叫做MBR扇区读入到寄MBR主引导记录由两部分组成,0-445446字节

存器的00007C00H位置然后再把控制权交出来,并的内容是启动代码、数据、错误信息代码,446(0x1BE)

且从寄存器07C00H位置处继续执行代码。开始到512(01FF)则是分区表,分区表有四个分区项,

这里所说的引导扇区是指硬盘对应分区的第一个每个分区项都有个16字节表示,记录启动时相关参数。

扇区也称为DBR,DBR就和操作系统有一定关系了。内容如表1

DBR的引导代码就不在此做介绍了,操作系统的引导

是由DBR内的引导代码来来完成的,而MBR和这些是

没有关系的,MBR也跟操作系统是没有关联的。MBR

的引导扇区的任务是把系统控制权转交给操作系统的

引导程序的功能。

先将程序代码由寄存00007C00H地址处移动到

位置00000600H(注意,BIOS在系统POST自检完成

后把MBR存放在寄存器00007C00H的位置处)第二

步查找引导的分区(也就是有80H标志的分区,如果

有就成功跳转下一步,如果失败,就跳转到ROMBASIC

位置,显示无效分区表,第三步读取引导扇区,如果

失败跳转到上一步,如果成功跳转到下一步,第四步

验证引导扇区最后两个字节是否为”55AAH”如果成

跳转,如果失败显示错误进入无穷循环,最后跳到

00007C00H位置处进行下一步启动程序。

3 扩展分区的结构

硬盘的最小容量叫位(bit),8个位组成一个字

节(byte),一个扇区(Sector)通常是512字节的

组成,一个分区就由若干个扇区组成。早期硬盘的

分区规则规定,DOS操作系统划分方式一个完整

的分区的所包含扇区必须是连续的,规则规定硬盘

最多划分四个物理上的分区,四个物理分区最多可

以划分为四个主分区或者划分为三个主分区和一个

扩展分区。在扩展分区里继续划分多个逻辑分区(逻

字节位移占用字节描述

0x01BE(446)1BYTE

引导指示符,指明该分区是否是活动分

活动分区指示符是0x80

0x01BF(447)1BYTE开始磁头

0x01C0(448)6BIT开始扇区,占用6

0x01C1(449)10BIT开始柱面,占用10位,最大值1023

0x01C2(450)1BYTE分区类型,NTFS一般是0x07

0x01C3(451)1BYTE结束磁头

0x01C4(452)6BIT结束扇区,占用6

0x01C5(453)10BIT结束柱面,占用10位,最大值1023

0x01C6(454)4BYTE

相对扇区数,从该磁盘的开始到该分区的

开始的扇区偏移量,以扇区为单位

0x01CA(458)4BYTE该分区的总扇区数

1

以上就是每个表项中的每个字节所代表的含义。

参考文献

[1] 汪中夏,刘伟.数据恢复方法及案例分析[M]. 北京:电

子工业出版社,2008.

[2] 刘伟.数据恢复技术深度揭秘[M]. 北京:电子工业出版

社,2010.

[3] [IT/计算机]硬盘结构原理-豆丁网http://

[4] 硬盘主引导记录(MBR)及其结构详解-hbrqlpf的专

栏-CSDN博客http://

[5] Windows启动过程(MBR引导过程分析)https://www.

/LittleHann/p/