注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

lbw2007

黑夜赐给我一双黑色的眼睛,我却给它滴眼药水!

 
 
 

日志

 
 

主引导记录  

2013-12-06 20:24:51|  分类: 软件编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


目录

1简介

2详解

MBR的读取

MBR的组成

MBR中的分区信息结构

MBR的主要功能及工作流程

1简介

主引导记录(MBRMain Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。

 

主引导扇区由三个部分组成(共占用512个字节)

1.主引导程序即主引导记录(MBR)(占446个字节)

可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。

2.磁盘分区表项(DPTDisk Partition Table)

由四个分区表项构成(每个16个字节)。

负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。(具体内容略)

3.结束标志(占2个字节)

其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。

2详解

MBR的读取

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

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

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

AL=要读取的扇区数

DL=磁盘号(01-软盘8081-硬盘)

DH=磁头号

CL2+CH=柱面号

CL6=扇区

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

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

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

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

A>DEBUG

-A 100

XXXX:XXXX MOV AX,0201 (用功能号21扇区

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

XXXX:XXXX MOV CX,0001 (读0柱面,1扇区

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

XXXX:XXXX INT 13

XXXX:XXXX INT 3

XXXX:XXXX (按回车键

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

-D 1000 11FF (显示512字节的MBR内容)

MBR的组成

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

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

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

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

·结束标志字,偏移地址01FE--01FF2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

0000-0088

Master Boot Record

主引导程序

主引导

程序

0089-01BD

出错信息数据区

数据区

01BE-01CD

分区项116字节)

分区表

01CE-01DD

分区项216字节)

 

01DE-01ED

分区项316字节)

 

01EE-01FD

分区项416字节)

 

01FE

55

结束标志

01FF

AA

 

6-15 MBR的组成结构图

MBR中的分区信息结构

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

6-19 分区项表(16字节)内容及含义

存贮字节位

内容及含义

1字节

引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。

234字节

本分区的起始磁头号、扇区号、柱面号。其中:

磁头号——2字节;

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

柱面号——为第3字节高2+4字节8位。

5字节

分区类型符。

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

06H——FAT16基本分区;

0BH——FAT32基本分区;

05H——扩展分区;

07H——NTFS分区;

0FH——LBA模式)扩展分区(83HLinux分区等)。

678字节

本分区的结束磁头号、扇区号、柱面号。其中:

磁头号——6字节;

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

柱面号——7字节的高2+8字节。

9101112字节

本分区之前已用了的扇区数。

13141516字节

本分区的总扇区数。

MBR的主要功能及工作流程

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

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

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

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

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

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

硬盘逻辑驱动器的分区表链结构

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

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

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

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

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

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

在一个划分有多个主分区的硬盘上,则可安装多个不同的操作系统。如WindowsLinuxSolaris等。每个操作系统自己去管理分配给自己的分区。但是,每个操作系统对分区的操作方式是不同的。对于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:

描述剩余空间

描述剩余空间

描述剩余空间

描述剩余空间

 

 

 

未用

未用

未用

未用

 

 

 

未用

未用

未用

未用

 

 

 

55AA

55AA

55AA

55AA

 

 

 

6-17 具有4个逻辑盘的分区链表示意图

举例来说,本来位于柱面0、磁头0扇区1上的分区表的每一项记录和主分区DBR之间有一对应的关系,但是,如果在扩展分区中建立了多个逻辑盘,例如D:E:F:,该分区表中的分区项可指向第一个逻辑盘:,但对于其它的逻辑盘,则就没有这种对应关系了。为能够查找扩展分区中的多个逻辑盘,DOS系统可做如下安排:

·如果硬盘只有一个主分区,即是将整个硬盘作为一个逻辑盘C:,则分区命令FDISK只在硬盘的柱面0、磁头0扇区1上建立一个MBR

·如果硬盘被划分成2--4个分区,则FDISK除了在柱面0、磁头0扇区1上建立一个MBR之外,还在扩展分区的每个逻辑盘的起始扇区上都建立一个虚拟MBR,每一个虚拟MBR用于扩展分区上的一个逻辑盘。

·扩展分区的第一个扇区不是用于一个逻辑盘的DBR,而是指向一个扩展的分区表,即第一个虚拟的MBR。该逻辑盘DBR扇区的起点应为虚拟MBR的下一个磁道1扇区。

这些MBR中的各个分区表链接成一个如图6-17所示的分区表链。这是一个硬盘具有4个表项所描述的内容。

DOS就是用这种方法来使一个扩展分区看起来象是有多个硬盘。

从图6-17中可以看到,位于磁盘柱面0、磁头0扇区1MBR分区表指向基本分区及扩展分区中的第一个逻辑盘。

 

转自百度百科
  评论这张
 
阅读(57)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017