存储管理之MBR与DBR

来源:互联网 发布:手机音乐合并软件 编辑:程序博客网 时间:2024/06/15 11:04

MBR:主引导纪录

这是x86硬件使用标准BIOS规定windows分区格式必须符合:主磁盘的第一个扇区(或者叫第0扇区,搞不清,反正就是排在最前的那个)必须包含MBR(这个磁盘指的是物理磁盘

CPU引导时,BIOS在完成自身基本配置后会读入MBR中得可执行代码来启动OS。

MBR包含一个分区表(至多只能定义4个主分区,其他靠扩展分区解决),里面有记录分区类型,如FAT32、NTFS等。

一种特殊的分区类型叫扩展分区,他自己的分区表中也包含另一个MBR。

在一个扩展分区中,与主分区等价的分区称为逻辑驱动器(扩展分区允许递归层次无限继续,克服4个主分区的限制)

但是引导过程中必须是主磁盘的某个主分区标记为活动的才能启动,MBR中的windows代码将”活动分区的第一扇区的代码“加载到内存中,并授予其控制权来启动。

由于主分区中第一个扇区如此重要,windows将任何分区的第一个扇区指定为引导扇区。每一个被格式化成一个文件系统的分区都有一个引导扇区,其中保存其文件系统的结构信息。

MBR引导代码要完成对分区表合法性的检查,并找到活动分区表项,将活动分区的DBR(操作系统引导扇区)装入内存,然后将引导控制权移交给DBR引导代码,至此计算机引导进入第三阶段,DBR引导代码主要根据DBR中的BPB表定义的文件系统格式参数,来访问和搜索操作系统的启动文件,对于windows XP系统,就是查找到NTLDR,并将NTLDR装入内存,再把引导控制权移交给NTLDR,第四阶段的引导就开始了,这时才是真正的操作系统引导过程的开始。

主引导扇区是硬盘0号柱面,0号磁头的第一个扇区,大小为512字节。(硬盘可以用柱面、磁头和扇区定位)
MBR,占用主引导扇区的前446字节,紧随其后的64字节是分区表DPT,最后还剩两个字节则恒为55AA,表示结束符号。

分区表DPT,共64字节,记录了硬盘有多少分区以及分区的各种属性。由于一个分区的信息要占用16字节,所以分区表只能定义4个分区,这就是为什么我们说硬盘一般最多只能分为4个主分区(这里说“一般”是对基本磁盘而言,而对于动态磁盘则无此限制,但大部分都在使用基本磁盘,可以暂不考虑)。

DBR(DOS BOOT RECORD)

OBR(DBR)是高级格式化程序产生的,包含机器CMOS等信息(0000--0059), 核对该信息并引导指定的系统文件, 如NTLDR等。

DBR应该改称为 OBR(OS Boot Record)即操作系统引导扇区,如WINXP的OBR(FAT32或NTFS)就是在DOS的DBR基础逐步演变而来的。

DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR是由硬盘的MBR装载的程序段,DBR装入内存后,即开始执行引导程序,其主要功能是完成操作系统的加载并将控制权交给操作系统。

每个分区都有引导扇区,但只有被设为活动分区的DBR才会被MBR装入内存运行。

本来位于柱面0、磁头0、扇区1上的分区表的每一项记录和主分区的DBR之间有一对应的关系,但是,如果在扩展分区中建立了多个逻辑盘,例如D:、E:、F:,该分区表中的分区项可指向第一个逻辑盘,但对于其它的逻辑盘,则就没有这种对应关系了。为能够查找扩展分区中的多个逻辑盘,除了在柱面0、磁头0、扇区1上建立一个MBR之外,还在扩展分区的每个逻辑盘的起始扇区上都建立一个虚拟MBR。扩展分区的第一个扇区不是用于一个逻辑盘的DBR,而是指向一个“扩展的”分区表,即第一个虚拟的MBR。这些虚拟MBR中的各个分区表链接成一个分区表链。DOS就是用这种方法来使一个扩展分区看起来象是有多个硬盘。