DOS分区体系的主引导记录扇区-MBR

本文详细介绍了DOS分区体系中MBR(主引导记录)的作用及其数据结构,包括引导代码、分区表和有效标志等关键部分。
使用 DOS 分区体系时,磁盘的第一个扇区――也就是 0 号扇区被称为主引导记录扇区,也称为 MBR( 主引导记录, Master Boot Recorder -- MBR) 。当计算机启动并完成自检后,首先会寻找磁盘的 MBR 扇区并读取其中的引导记录,然后将系统控制权交给它。由此可见,如果 MBR 损坏,则后续的所有工作都无法继续进行。
1. MBR 数据结构
MBR 446 个字节的引导代码、 64 个字节的主分区表及 2 个字节的签名值“ 55AA ”组成。我们首先使用 Winhex 来看一下 MBR 扇区的内容,如图 2.11 所示(因为该磁盘尚未进行分区操作,所以分区表全部为空)。
2.11  主引导记录扇区
 
可以看到, MBR 扇区由三大部分组成:
1 )引导代码。 MBR 接管系统的控制权后,引导代码负责对其他代码信息进行检查(比如查看是否有“ 55AA ”有效标记)并进一步引导系统。
2 )分区表。分区表负责描述磁盘内的分区情况。
3 )“ 55AA ”有效标志。“ 55AA ”标志做为有效标志以通知系统该 MBR 扇区是否有效,如果该标志丢失或损坏,磁盘将会显示为“未初始化”。
MBR 扇区的数据结构如表 2.1 所示。
2.1   MBR 扇区数据结构
字节偏移 ( 十六进制 )
字节数
描述
00 1BD
446
引导代码
1BE 1CD
16
分区表项 1
1CE 1DD
16
分区表项 2
1DE 1ED
16
分区表项 3
1EE 1FD
16
分区表项 4
1FE 1FF
2
签名值 (55AA)
 
具体含义解释如下:
1)    0x00 0x1BD 446 个字节,引导代码区域,包含一段指令,用以通知计算机如何访问分区表并定位操作系统的位置。
u  主引导代码是一段非常重要的代码,因为它是磁盘上最先装入内存并执行的代码。也正因为如此,很多引导型病毒把自己嵌入到主引导代码中,从而实现首先运行的目的。标准的Microsoft引导代码会在计算机启动完成自检并将控制权交给它后,读取分区表并根据分区表项的可引导标志判定哪个主分区是引导分区,找到这个分区后就查看并读取位于该分区第一个扇区的引导代码并进而启动操作系统,这部分代码会因操作系统的不同而不同。
u  利用引导代码可以实现多系统引导。很多用户需要在同一台计算机上安装超过一个的操作系统,这就需要使用多系统引导,以便能够在计算机启动时选择要进入的操作系统。多系统引导可以由两种方法实现。
Ø  一种方法是,大多数用户会将Windows操作系统做为要安装的系统之一,Windows可以在引导分区中设置一段代码,以允许用户选择要进入的操作系统。也就是说,MBR中的主引导程序先加载Windows引导代码,然后由Windows引导代码再呈现给用户一个操作系统选择界面。
Ø  另一种方法是改变MBR中的引导代码,修改后的引导代码会直接呈现给用户一个选项列表,由用户选择从哪个分区进行引导。这种方法一般会占用位于第一个分区之前的一部分未使用扇区存放程序代码。
2)    0x1BE 0x1FD 64 个字节, 4 个分区表项,每个表项占用 16 个字节。每个表项描述一个 DOS 分区,最多可以描述 4 个主分区。
u  分区表项并没有顺序要求,也就是说,并不严格要求第一个分区表项对应物理位置的第一个分区,第二个表项对应第二个分区。
u  分区表也并不要求必须先使用第一个分区表项,然后依次使用后面的表项。操作系统在检索主分区表时,会完整地对四个分区表项进行完全检索,然后根据每个分区表项描述的物理位置定位分区,而不会以分区表项的先后顺序定位分区所处的先后位置关系。
2.12 描述了一个被划分成三个主分区的磁盘,前三个分区表项分别用来描述一个分区,最后一个分区表项未被使用。
 
 
2.12   划分为三个主分区的磁盘
 
3)    0x1FE0x1FF2个字节,有效结束标志“55AA”。如果没有这个签名值,操作系统会认为该磁盘没有被初始化,也就无法正常加载磁盘上的分区和解释数据。不过,只要分区和文件系统正常,某些数据恢复软件在没有这个签名值的情况下也可以正确的检测到分区表并正确地解释出所有正常的数据。















本文转自老骥伏枥51CTO博客,原文链接: http://blog.51cto.com/sjhfml/129090  ,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值