Winhex查看MBR以及MBR内容结构的介绍_第1页
Winhex查看MBR以及MBR内容结构的介绍_第2页
Winhex查看MBR以及MBR内容结构的介绍_第3页
Winhex查看MBR以及MBR内容结构的介绍_第4页
Winhex查看MBR以及MBR内容结构的介绍_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、硬盘(U盘、移动硬盘)MBR、DBR简介http://819671119./blog/static/128457552200982433422268/一、几个概念

BIOS(BasicInput/OutputSystem)

基本输入输出系统,全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序。

CMOS(ComplementaryMetalOxideSemiconductor)

本意是指互补金属氧化物半导体,一种大规模应用于集成电路芯片制造的原料,在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。

CMOS的功耗很低,计算机主板上一个纽扣电池就可以给它长时间地提供电力,即使系统掉电,信息也不会丢失。而当主板电池供电不足时CMOS的信息会丢失,此时启动机器会有一些特殊的现象,如启动时提示CMOS参数丢失需重新设置,甚至机器黑屏,不能启动,更换主板上的纽扣电池即恢复正常。

有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的RAM芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。而对CMOS中各项参数的设定要通过专门的程序,现在多数厂家将CMOS设置程序做到了BIOS芯片中,在开机时通过按下某个特定键就可进入CMOS设置程序而非常方便地对系统进行设置,因此这种CMOS设置又通常被叫做BIOS设置。

ESCD(ExtendedSystemConfigurationData)

扩展系统配置数据,ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中,通常ESCD数据只在系统硬件配置发生改变后才会更新

扇区(Sector)

硬盘划分的最小单位,一个扇区固定为512个字节(Byte)

MBR(masterbootrecord)

即主引导记录,有时也称主引导扇区。位于整个硬盘的0扇区(硬盘的0~62即前63个扇区为保留扇区,目前只有MBR占用其中的第一个或前几个扇区),可以看作是硬盘的第一个扇区,通常只占用这一个扇区,如XP的MBR,grub4dos占用0~17共18个扇区

DBR(DOSbootrecord)

即操作系统引导记录区,也称分区的主启动代码,位于分区的第0扇区,通常只占用这一个扇区,特殊情况也要占用其它保留扇区,而grub4dos如果是写入硬盘MBR方式则不修改也不使用DBR

以H结尾或以0x开头的数字表示该数字为十六进制数

二、主机启动过程

1.内部电源打开,初始化,等待一小段时间用来产生稳定的电流。如果主板芯片和CPU收到了不符合规定的电流,将自动产生一个RESET信号。在主板没有收到电源的PowerGood信号之前,重复步骤1

2.执行BIOS中0FFF0h处的代码。这里只有一条JMP指令,将跳转到真正的BIOS启动程序处

3.BIOS开始加电自检(Power-OnSelfTest,POST),如果出现错误,启动停止

4.BIOS开始寻找显卡,找到的话将执行显卡的BIOS,接着显卡初始化,将显示一段显卡信息,我们开机看到的第一屏就是它

5.BIOS开始执行所有其他设备的BIOS,包括软驱,硬盘、光驱等

6.BIOS显示启动信息

7.BIOS开始额外的检测。一般有内存检测,如果内存有问题,将显示错误消息

8.BIOS探测所有的硬件,将显示如硬盘、光驱信息等

9.BIOS给出一个已知硬件的列表

10.BIOS更新ESCD

10.BIOS按照设置的驱动器顺序找驱动器,如果驱动器存在的话继续找MBR,如果找不到驱动器,系统显示错误信息并停止

11.MBR从分区表中找到第一个活动分区(分区描述中第一个字节为80H),然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责引导系统(如XP)

步骤11中若为grub4dosMBR则依次查找各个分区的根目录是否有grub4dos的启动文件(通常为grldr,写入MBR时可以指定此文件名),也就是说若是grub4dosMBR可以不设置活动分区

上面是打开电源开关(或按Reset键)进行冷启动时的过程,在DOS下按Ctrl+Alt+Del组合键(或从Windows中选择重新启动计算机)来进行热启动时将从步骤8开始

三、硬盘(U盘、移动硬盘)MBR简介

这里用到一个强大的磁盘查看编辑工具WinHex,可以手动保存和恢复MBR、DBR

运行WinHex,选择工具->打开磁盘,如图

其中HD0为本机硬盘,RM1为U盘,选择HD0,确定

上方为硬盘的分区情况,下方为硬盘的内容,打开是默认位置在0扇区,即上方的“起始扇区”,点击上方的分区即可切换到各分区的起始扇区

完整的0扇区(XP的MBR)如下

其中0x0000~0x01FF即为硬盘的0扇区,这个扇区的内容分为3部分

第1部分(0x0000~0x01BD)446个字节为完整的XPMBR,选中这部分内容保存到文件即可作为MBR的备份,将此备份内容写入硬盘的0x0000~0x01BD位置即可恢复XPMBR,其中左边可读的部分即为MBR找不到活动分区时的错误信息,使用ParagonPartitionManager、PTDD磁盘分区表医生等工具均可将硬盘的MBR恢复为(写入)XPMBR

第2部分(0x01BE~0x01FD)64个字节为硬盘的分区表(DiskPartitionTable,DPT),每16个字节描述一个主分区,所以一个硬盘最多可以有4个主分区

分区表的每一分区的第1个字节是活动标志,其值为80H时,表示该分区是当前活动分区,可引导,其值为00H时,表示该分区不可引导

第3部分(0x01FE~0x01FF)2个字节“55AA”是分区有效结束标志

下图为grub4dosMBR的第一个扇区

其他扇区内容请参考附件

其中0x0003处一个字节为启动时等待按键的延时,图中为0x06就是6秒

四、硬盘(U盘、移动硬盘)DBR简介

没有深入研究DBR到底占用几个扇区,对于ntldr的DBR,用WinHex查看时可以看到ntfs分区的前7个扇区有内容,fat32前3个扇区有内容,不同的分区软件可能会有不同,有兴趣者可以试试先将有内容的前几个扇区保存为文件,然后清除第1个扇区(分区的0扇区)之外的其他扇区的内容(用0填充,可以用U盘或者光盘启动PE再用WinHex恢复),若能正常启动表示只用第1个扇区即可,否则后面的内容也是有效内容

NTBOOT.EXE(#1附件中有)可以修复ntldr的DBR

Bootsect.exe(好像vista安装盘中有,没有使用过)可以修复bootmgr和ntldr的DBR,微软官方说法:Bootsect.exe更新硬盘分区的主启动代码以在BOOTMGR和NTLDR之间切换。可以使用此工具还原计算机上的启动扇区。此工具会替换FixFAT和FixNTFS

这两个工具都是只能修改DBR,而不能修改MBR

下面是ntfs分区中ntldrDBR的第一个扇区(用XP做的分区)

其中左边可读的部分即为DBR在分区根目录找不到ntldr文件时的错误信息,最后两个字节“55AA”是分区有效结束标志

下面是fat32分区中ntldrDBR的第一个扇区(用ParagonPartitionManager做的分区)

五、使用WinHex保存或写入磁盘

写入操作具有一定危险性,请慎用

保存磁盘的前63(0~62)个扇区的内容到文件

1.计算62扇区的结束位置为63*512-1=32555=0x7DFF

2.在十六进制代码区右键选择编辑->定义选区,输入开始0,结束7DFF,确定

如果只保存当前扇区,右键选择编辑->复制扇区->至新文件即可

3.右键选择编辑->复制选块->至新文件,若复制到剪贴板则右键选择编辑->复制选块->正常

将硬盘中的XPMBR复制到U盘

1.选中硬盘0扇区的0x0000~0x01BD,右键选择编辑->复制选块->正常

注意不可以选中整个扇区,否则会覆盖U盘(目标盘)的分区表

2.将光标移至U盘的0x0000处,如下图

3.右键选择编辑->剪贴板数据->写入,此时会提示写入的偏移地址,注意检查偏移地址是否正确

4.还有可能会提示选择剪贴板格式,选择ASCIIHex,如果用这种格式写入不正确,试试选择别的格式

5.如果写入正确,选择保存,否则选择撤销(Ctrl+Z)二、硬盘主引导记录(MBR)及其结构/blog/static/73261092007614102218135/硬盘的0柱面、0磁头、1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用语硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。

1.MBR的读取

硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。

用INT13H的读磁盘扇区功能的调用参数如下:

入口参数:AH=2(指定功能号)

AL=要读取的扇区数

DL=磁盘号(0、1-软盘;80、81-硬盘)

DH=磁头号

CL高2位+CH=柱面号

CL低6位=扇区号

CS:BX=存放读取数据的内存缓冲地址

出口参数:CS:BX=读取数据存放地址

错误信息:如果出错CF=1AH=错误代码

用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下:

A>DEBUG

-A100

XXXX:XXXXMOVAX,0201(用功能号2读1个扇区)

XXXX:XXXXMOVBX,1000(把读出的数据放入缓冲区的地址为CS:1000)

XXXX:XXXXMOVCX,0001(读0柱面,1扇区)

XXXX:XXXXMOVDX,0080(指定第一物理盘的0磁头)

XXXX:XXXXINT13

XXXX:XXXXINT3

XXXX:XXXX(按回车键)

-G=100(执行以上程序段)

-D100011FF(显示512字节的MBR内容)

2.MBR的组成

一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。

·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

·分区表(DPT,DiskPartitionTable)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。MasterBootRecord主引导程序出错信息数据区分区表结束标志0000-0088主引导程序0089-01BD数据区01BE-01CD分区项1(16字节)01CE-01DD分区项2(16字节)01DE-01ED分区项3(16字节)01EE-01FD分区项4(16字节)01FE5501FFAA图6-15MBR的组成结构图3.MBR中的分区信息结构

占用512个字节的MBR中,偏移地址01BEH--01FDH的64个字节,为4个分区项内容(分区信息表)。它是由磁盘介质类型及用户在使用FDISK定义分区说确定的。在实际应用中,FDISK对一个磁盘划分的主分区可少于4个,但最多不超过4个。每个分区表的项目是16个字节,其内容含义如表6-19所示。

表6-19分区项表(16字节)内容及含义存贮字节位内容及含义第1字节引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。第2、3、4字节本分区的起始磁头号、扇区号、柱面号。其中:

磁头号——第2字节;

扇区号——第3字节的低6位;

柱面号——为第3字节高2位+第4字节8位。第5字节分区类型符。

00H——表示该分区未用(即没有指定);

06H——FAT16基本分区;

0BH——FAT32基本分区;

05H——扩展分区;

07H——NTFS分区;

0FH——(LBA模式)扩展分区(83H为Linux分区等)。第6、7、8字节本分区的结束磁头号、扇区号、柱面号。其中:

磁头号——第6字节;

扇区号——第7字节的低6位;

柱面号——第7字节的高2位+第8字节。第9、10、11、12字节本分区之前已用了的扇区数。第13、14、15、16字节本分区的总扇区数。4.MBR的主要功能及工作流程

启动PC机时,系统首先对硬件设备进行测试,测试成功后进入自举程序INT19H,然后读系统磁盘0柱面、0磁头、1扇区的主引导记录(MBR)内容到内存指定单元0:7C00地址开始的区域,并执行MBR程序段。

硬盘的主引导记录(MBR)是不属于任何一个操作系统的,它先于所有的操作系统而被调入内存,并发挥作用,然后才将控制权交给主分区(活动分区)内的操作系统,并用主分区信息表来管理硬盘。

MBR程序段的主要功能如下:

·检查硬盘分区表是否完好。

·在分区表中寻找可引导的“活动”分区。

·将活动分区的第一逻辑扇区内容装入内存。在DOS分区中,此扇区内容称为DOS引导记录(DBR)。

MBR引导程序段的执行流程如图6-16所示。图6-16MBR引导程序段执行流程硬盘逻辑驱动器的分区表链结构

硬盘是由很多个512字节的扇区组成,而这些扇区会被组织成一个个的“分区”。

硬盘的分区规则是:一个分区的所有扇区必须连续,硬盘可以有最多4个物理上的分区,这4个物理分区可以时个主分区或者3个主分区加一个扩展分区。在DOS/Windows管理下的扩展分区里,可以而且必须再继续划分逻辑分区(逻辑盘)。

从MS-DOS3.2问世以后,用户就可以在一个物理硬盘驱动器上划分一个主分区和一个扩展分区,并在扩展分区上创建多个逻辑驱动器,也即我们常说的一个物理盘上多个逻辑盘。

举一个例子,一个10G的硬盘,安装Windows,有C:、D:、E:三个逻辑盘,那么它的分区情况可以是如下的方式:

分区一:主分区2GB,格式化为C:盘。

分区二:扩展分区8GB。它被再划分为两个各4GB的逻辑盘,格式化为以D:和E:盘。

在一个划分有多个主分区的硬盘上,则可安装多个不同的操作系统。如Windows、Linux、Solaris等。每个操作系统自己去管理分配给自己的分区。但是,每个操作系统对分区的操作方式是不同的。对于DOS/Windows来说,它能够把它所能管辖的一个主分区和一个扩展分区格式化,然后按照C:、D:、E:逻辑盘的方式来管理。而Linux则不同,它是把“分区”看作一个设备,既没有“扩展分区”的概念,也没有“逻辑盘”的概念。

1.逻辑盘的链接关系

在FAT文件系统中,硬盘的逻辑盘字符用字符C:、D:、E:、...、Z:来表示。主分区一般被格式化成C:盘,从D:盘开始的逻辑盘是建立在扩展分区之上的。在系统进行读写操作时,DOS首先查看主引导记录(MBR)中的分区信息表,分区项将指向活动主分区的DOS引导记录(DBR)。

MBR中的分区表位于0柱面、0磁头、1扇区内,以位移1BEH开始的第一分区表作为链首,有表内的链接表项指示下一分区表的物理位置(xx柱面、0磁头、1扇区),在该位置的扇区内同样位移1BEH处,保存着第2张分区表,依次类推,直至指向最后一张分区表的物理位置(yy柱面、0磁头、1扇区)。因该分区表内不存在链接表项,即作为分区表链的链尾。如图6-17所示。硬盘第一个虚拟第二个虚拟第三个虚拟MBR分区表MBR分区表MBR分区表MBR分区表定义C:盘―>定义D:盘->定义E:盘->定义F:盘描述剩余空间描述剩余空间描述剩余空间描述剩余空间未用未用未用未用未用未用未用未用55AA55AA55AA55AA图6-17具有4个逻辑盘的分区链表示意图

举例来说,本来位于柱面0、磁头0、扇区1上的分区表的每一项记录和主分区的DBR之间有一对应的关系,但是,如果在扩展分区中建立了多个逻辑盘,例如D:、E:、F:,该分区表中的分区项可指向第一个逻辑盘:,但对于其它的逻辑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论