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