解惑、比较
MBR
与
DBR
前言:本文是在网上看到的一篇文章,写的很不错,珍藏了。我想,对这方面知识感兴趣的童鞋都可以看看,也可以作为我前一段文章的一个小结吧。原始出处丢了,向作者说声:抱歉,谢谢。
一、磁盘空间的划分
经过格式化后的磁盘包括:主引导记录区、引导记录区、文件分配表(
FAT
)、目录区和数据区。主引导记录区和引导记录区中存有
OS
系统启动时所用的信息。文件分配表是反映当前磁盘扇区使用状况的表。目录区存放磁盘上现有的文件目录、大小及其存放时间等信息。数据区存储和文件名相对应的文件内容数据。
对于不同类型、不同介质的磁盘,磁盘操作系统
DOS
(
Diskette Operation System)
划分磁盘的格式是不同的。对于硬盘来说,由于其存储空间比较大,为了允许多个操作系统分享硬盘空间,
DOS
在格式化硬盘时,通常把硬盘划分为主引导记录区和多个系统分区。
硬盘空间第一部分就是整个硬盘的第一扇区。这一扇区称为硬盘的主引导记录扇区,它有两部分内容组成,一是主引导记录,二是分区信息表(包括主引导扇区结束标志)。主引导记录是硬盘启动时首先执行的程序,由它装入活动分区引导程序,从而进一步引导系统。分区表登记各个分区引导指示符、操作系统指示符,以及该分区占用硬盘空间的位置及长度。
硬盘空间第二部分是各个系统分区。各个系统分区是提供给各操作系统使用的区域,各个系统分区具有自己的引导记录、文件分配表、文件目录区和数据区。
二、
MBR
是什么?
2.1
定义
MBR
是主引导记录
(Master Boot Record)
的缩写,中文意为主引导记录,另一种解释说它是(
Main Boot Record
)的缩写。我认为是
Master
,它是所有硬盘的所有分区引导记录的属主,而不仅仅和分区引导记录相比是主要的。
2.2
组成
MBR
存储在活动硬盘的
0
磁头
0
磁道的第一个扇区,就是整个硬盘的第一扇区。该记录的大小是
512
字节,由三个部分组成:
第一部分为
pre-boot
区(预启动区),即主引导程序,占
446
字节;
第二部分是
Partition table
区(分区表),占
64
个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码;
第三部分是主引导扇区结束标志
AA55H
,占
2
个字节。
基于
MBR
的大小正好是一个扇区的大小,所以也常称
MBR
为主引导扇区
。
(注:
如果计算机中有多个硬盘,
MBR
所在的硬盘被称为活动硬盘)
2.3
生成
MBR
的内容是在硬盘分区时由分区软件写入该扇区的(如
FDISK
,
XP
与
Vista
也可以重建和修复它)。
MBR
不属于任何一个操作系统,不随操作系统的不同而不同,具有公共引导的特性,但安装某些多重引导功能的软件或
LINUX
的
LILO
(
Linux
加载程序)时有可能改写它。它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统。
MBR
可以用
ROM-BIOS
中提供的
INT13H
的
2
号功能来读出该扇区的内容,也可用借助磁盘工具如
Norton8.0
中的
DISKEDIT.EXE
来读取。
MBR
不属于任何一个操作系统,不可以直接用命令访问。在日常维护工作中,我们常用
FDISK /MBR
命令来重建
MBR
。这个命令的功能是在硬盘上无条件地重新写入主引导程序和分区表,并且不对
OS
引导扇区、文件分配表和目录区进行初始化。也就是说,执行
FDISK/MBR
后,可在不破坏硬盘上原有数据信息的情况下,重建主引导程序和分区表。
2.4
作用
当我们用加电方式启动计算机时,计算机首先运行
Power On Self Test(POST)
,即加电自检。自检通过后,计算机的基础输入/输出系统(
BIOS
)按用户指定的启动顺序定位计算机的引导设备,然后
BIOS
将
MBR
记录读入内存运行,将控制权交给主引导程序。随后,
MBR
检查分区表的状态,寻找活动的分区。如果检测分区表链正确,由主引导程序将控制权交给活动分区的引导记录,由分区引导记录加载操作系统。
三、
DBR
是什么?
3.1
定义
DBR
是
(DOS Boot Recode)
的缩写,即操作系统引导记录区的意思,通常占用每个分区的第一个扇区即第
0
号扇区,共
512
个字节
(
特殊情况也要占用其它保留扇区,我们先说
0
号扇区,在计算机中编号是从
0
开始
)
。
DBR
有时也被叫做
PBR
(
Partition Boot Recode
)
。
活动分区的
DBR
通常位于活动硬盘的
0
磁道
1
柱面
1
扇区,是操作系统可以直接访问的第一个扇区。
3.2
组成
DBR
是由跳转指令、厂商标志和操作系统版本号、
BPB(BIOS Parameter Block)
和扩展
BPB
、
OS
引导程序,结束标志(
AA55H
)五部分组成。以上
5
个部分共占用
512
个字节,也正好是一个扇区大小,
因此也称
DBR
为
OS
引导扇区或
BOOT
区
。
3.3
生成
DBR
是由对分区格式化时由操作系统写入的。每个分区都有
DBR
,但活动分区的
DBR
首先会进行操作系统的引导。
Dos
和
Win9X
都由
Format
命令完成格式化,
Windows 2K/XP/2K3/Vista
由其磁盘管理组件负责对分区完成格式化。
不同的操作系统,由于它的版本号和
OS
引导程序不同,因此写入
DBR
的内容也不同。
Win2000
使用
NT5.0
内核,而
XP
是使用
NT5.1
内核,
Server 2003
则是
NT5.2
内核。
Vista
对
NT
内核的底层代码进行了安全性更新,使用了
NT6.0
内核。这些安全性更新体现在新的
UAC
(用户帐户控制),
MIC
(强制完整性检测)和
UIPI
(用户界面特权隔离)三大底层安全特性上。
由于
DBR
是可以被
OS
访问的,所以可由
OS
来更新或修复。修改
DBR
的方法很多,
Windows
下可以用
bootsect
程序来修改,
Dos
下也有类似软件,但是不如在
Windows
下方便,例如
bootpart
程序。例如想具有
NT5.2
的
DBR
,用命令
bootsect /nt52
目标盘符
;想具有
Vista
的
NT6.0
的
DBR
,用命令
bootsect /nt60
目标盘符
来实现。
另外在
Windows XP
中用自带磁盘探测工具
Dskprobe
可以轻松访问、维护
DBR
,可以使用恢复控制台中的
Fixdbr
工具来修复它。还有很多第三方软件可以完成上述工作。
3.4
作用
DBR
的主要功能是完成
OS
的自举操作。
DBR
装入内存后,即开始执行该引导程序段,其主要任务是装载并运行
OS
的系统文件。对
Dos
和
Win9X
而言,分区引导记录将负责读取并执行
IO.SYS
;如果
DBR
是
NT52
版本,就会查找执行
NTLDR
,如果是
NT60
版本,就会从
Bootmgr
启动。
需要注意的是多重引导时
DBR
也遵循上述引导原则。
Windows
系统一直保持
OS
版本向下兼容的惯例,所以高版本系统能提供对以前版本
OS
的引导支持。比如
Win98
通过修改
Msdos.sys
文件提供对
Dos
系统的支持;
XP
修改
Boot.ini
和
Vista
通过修改
BCD
都能提供对以前版本的支持,从而实现系统的多重引导。
当然,系统启动文件通常会有几部分组成。
Dos
和
Win9X
是
IO.SYS
、
Msdos.sys
、
Command.com
三个文件组成。
Win2k/XP/2k3
是
NTLD
、
Ntdetect.com
、
Boot.ini
;而
Vista
则是启动组件
Boot Manage
与之相配的数据储存库
BCD
,还有
Winload.exe
命令的组合。
Bootmgr
会读取
BCD
并显示
OS
引导菜单,而
Winload.exe
会处理操作系统加载。
四、
MBR
与
DBR
比较综述
MBR
在磁盘分区时生成,不属于任何一个操作系统,具有公共引导的特性,主要控制从哪个分区启动系统;
DBR
隶属于磁盘分区,在操作系统格式化分区时生成,主要负责操作系统启动工作。
OS
系统不可以访问
MBR
,
MBR
只有特定的操作才可以更改。
MBR
中包含了读取分区表的代码,通过默认的磁盘定位方法来进行读取,不需要文件系统干预。
DBR
可以在格式化时发生变化,不同系统格式化后的
DBR
不同,不同的
DBR
调用的启动文件不同,
Win98
、
Vista
格式化产生的
DBR
,绝不会去调用
NTLDR