如何判断第一引导扇区 mbr的内容是MBR还是OBR

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(441)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_081',
blogTitle:'硬盘扇区数据结构分析',
blogAbstract:'http://space.fyqt.net/index.php/uid-125144-action-viewspace-itemid-14774初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加。主引导扇区主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您所在的位置: &
MBR、EBR、DBR和OBR各是什么
MBR、EBR、DBR和OBR各是什么
人民邮电出版社
《操作系统真象还原》本书共分16章,讲解了开发一个操作系统需要的技术和知识,主要内容有:操作系统基础、部署工作环境、编写MBR主引导记录、完善MBR错误、保护模式入门、保护模式进阶和向内核迈进、中断、内存管理系统、线程、输入输出系统、用户进程、完善内核、编写硬盘驱动程序、文件系统、系统交互等核心技术。本节为大家介绍MBR、EBR、DBR和OBR各是什么。
0.28& MBR、EBR、DBR和OBR各是什么
这几个概念主要是围绕计算机系统的控制权交接展开的,整个交接过程就是个接力赛,咱们从头梳理。
计算机在接电之后运行的是基本输入输出系统BIOS,大伙儿知道,BIOS是位于主板上的一个小程序,其所在的空间有限,代码量较少,功能受限,因此它不可能一人扛下所有的任务需求,也就是肯定不能充当操作系统的角色(比如说让BIOS运行QQ是不可能的),必须采取控制权接力的方式,一步步地让处理器执行更为复杂强大的指令,最终把处理器的使用权交给操作系统,这才让计算机走上了正轨,从而可以完成各种复杂的功能,方便人们的工作和生活。采用接力式控制权交接,BIOS只完成一些简单的检测或初始化工作,然后找机会把处理器使用权交出去。交给谁呢?下一个接力棒的选手是MBR,为了方便BIOS找到MBR,MBR必须在固定的位置等待,因此MBR位于整个硬盘最开始的扇区。
MBR是主引导记录,Master或Main Boot Record,它存在于整个硬盘最开始的那个扇区,即0盘0道1扇区,这个扇区便称为MBR引导扇区。注意这里用CHS方式表示MBR引导扇区的地址,因此扇区地址以1开始,顺便说一句,LBA方式是以0为起始为扇区编址的,有关CHS和LBA的内容会在后面章节介绍。一般情况下扇区大小是512字节,但大伙儿不要把这个当真理,有的硬盘扇区并不是512字节。在MBR引导扇区中的内容是:
(1)446字节的引导程序及参数;
(2)64字节的分区表;
(3)2字节结束标记0x55和0xaa。
在MBR引导扇区中存储引导程序,为的是从BIOS手中接过系统的控制权,也就是处理器的使用权。任何一棒的接力都是由上一棒跳到下一棒,也就是上一棒得知道下一棒在哪里才能跳过去,否则权利还是交不出去。BIOS知道MBR在0盘0道1扇区,这是约定好的,因此它会将0盘0道1扇区中的MBR引导程序加载到物理地址0x7c00,然后跳过去执行,这样BIOS就把处理器使用权移交给MBR了。
既然MBR称为"主"引导程序,有"主"就得有"次", MBR的作用相当于下一棒的引导程序总入口,BIOS把控制权交给MBR就行了,由MBR从众多可能的接力选手中挑出合适的人选并交出系统控制权,这个过程就是由"主引导程序"去找"次引导程序",这么说的意思是"次引导程序"不止一个。也许您会问,为什么BIOS不直接把控制权交给"次引导程序"?原因是BIOS受限于其主板上的存储空间,代码量有限,本身的工作还做不过来呢,因此心有余而力不足。好啦,下面开始下一轮的系统控制权接力。不要忘了,MBR引导扇区中除了引导程序外,还有64字节大小的分区表,里面是分区信息。分区表中每个分区表项占16字节,因此MBR分区表中可容纳4个分区,这4个分区就是"次引导程序"的候选人群,MBR引导程序开始遍历这4个分区,想找到合适的人选并把系统控制权交给他。
通常情况下这个"次引导程序"就是操作系统提供的加载器,因此MBR引导程序的任务就是把控制权交给操作系统加载器,由该加载器完成操作系统的自举,最终使控制权交付给操作系统内核。但是各分区都有可能存在操作系统,MBR也不知道操作系统在哪里,它甚至不知道分区上的二进制01串是指令,还是普通数据,好吧,它根本分不清楚上面的是什么,谈何权利交接呢。
为了让MBR知道哪里有操作系统,我们在分区时,如果想在某个分区中安装操作系统,就用分区工具将该分区设置为活动分区,设置活动分区的本质就是把分区表中该分区对应的分区表项中的活动标记为0x80。MBR知道"活动分区"意味着该分区中存在操作系统,这也是约定好的。活动分区标记位于分区表项中最开始的1字节(有关分区内容,后面介绍分区的章节中会细说),其值要么为0x80,要么为0,其他值都是非法的。0x80表示此分区上有引导程序,0表示没引导程序,该分区不可引导。MBR在分析分区表时通过辨识"活动分区"的标记0x80开始找活动分区,如果找到了,就将CPU使用权交给此分区上的引导程序,此引导程序通常是内核加载器,下面就直接以它为例。
"控制权交接"是处理器从"上一棒选手"跳到"下一棒选手"来完成的,内核加载器的入口地址是这里所说的"下一棒选手",但是内核加载器在哪里呢?虽然分区那么大,但MBR最想去看的是内核加载器,不想盲目地看看。因此您想到了,为了MBR方便找到活动分区上的内核加载器,内核加载器的入口地址也必须在固定的位置,这个位置就是各分区最开始的扇区,这也是约定好的。这个"各分区起始的扇区"中存放的是操作系统引导程序--内核加载器,因此该扇区称为操作系统引导扇区,其中的引导程序(内核加载器)称为操作系统引导记录OBR,即OS Boot Record,此扇区也称为OBR引导扇区。在OBR扇区的前3个字节存放了跳转指令,这同样是约定,因此MBR找到活动分区后,就大胆主动跳到活动分区OBR引导扇区的起始处,该起始处的跳转指令马上将处理器带入操作系统引导程序,从此MBR完成了交接工作,以后便是内核的天下了。
不过OBR中开头的跳转指令跳往的目标地址并不固定,这是由所创建的文件系统决定的,对于FAT32文件系统来说,此跳转指令会跳转到本扇区偏移0x5A字节的操作系统引导程序处。不管跳转目标地址是多少,总之那里通常是操作系统的内核加载器。
计算机历史中向来把兼容性放在首位,这才是计算机蒸蒸日上的原因。OBR是从DBR遗留下来的,要想了解OBR,还是先从了解DBR开始。DBR是DOS Boot Record,也就是DOS操作系统的引导记录(程序),DBR中的内容大概是:
(1)跳转指令,使MBR跳转到引导代码;
(2)厂商信息、DOS版本信息;
(3)BIOS参数块BPB,即BIOS Parameter Block;
(4)操作系统引导程序;
(5)结束标记0x55和0xaa。
在DOS时代只有4个分区,不存在扩展分区,这4个分区都相当于主分区,所以各主分区最开始的扇区称为DBR引导扇区。后来有了扩展分区之后,无论分区是主分区,还是逻辑分区,为了兼容,分区最开始的扇区都作为DOS引导扇区。但是其他操作系统如UNIX,Linux等为了兼容MBR也传承了这个习俗,都将各分区最开始的扇区作为自己的引导扇区,在里面存放自己操作系统的引导程序。由于现在这个"分区最开始的扇区"引导的操作系统类型太多了,而且DOS还退出历史舞台了,所以DBR也称为OBR。
这里提到了扩展分区就不得不提到EBR。当初为了解决分区数量限制的问题才有了扩展分区,EBR是扩展分区中为了兼容MBR才提出的概念,主要是兼容MBR中的分区表。分区是用分区表来描述的,MBR中有分区表,扩展分区中的是一个个的逻辑分区,因此扩展分区中也要有分区表,为扩展分区存储分区表的扇区称为EBR,即Expand Boot Record,从名字上看就知道它是为了"兼容"而"扩展"出来的结构,兼容的内容是分区表,因此它与MBR结构相同,只是位置不同,EBR位于各子扩展分区中最开始的扇区(注意,各主分区和各逻辑分区中最开始的扇区是操作系统引导扇区),理论上MBR只有1个,EBR有无数个。有关扩展分区的内容还是要参见后面有关分区的章节,那里介绍得更细致。
现在总结一下。
EBR与MBR结构相同,但位置和数量都不同,整个硬盘只有1个MBR,其位于整个硬盘最开始的扇区--0道0道1扇区。而EBR可有无数个,具体位置取决于扩展分区的分配情况,总之是位于各子扩展分区最开始的扇区,如果此处不明白子扩展分区是什么,到了以后跟踪分区的章节中大伙儿就会明白。OBR其实就是DBR,指的都是操作系统引导程序,位于各分区(主分区或逻辑分区)最开始的扇区,访扇区称为操作系统引导扇区,即OBR引导扇区。OBR的数量与分区数有关,等于主分区数加逻辑分区数之和,友情提示:一个子扩展分区中只包含1 个逻辑分区。
MBR和EBR是分区工具创建维护的,不属于操作系统管理的范围,因此操作系统不可以往里面写东西,注意这里所说的是"不可以",其实操作系统是有能力读写任何地址的,只是如果这样做的话会破坏"系统控制权接力赛"所使用的数据,下次开机后就无法启动了。OBR是各分区(主分区或逻辑分区)最开始的扇区,因此属于操作系统管理。
DBR、OBR、MBR、EBR都包含引导程序,因此它们都称为引导扇区,只要该扇区中存在可执行的程序,该扇区就是可引导扇区。若该扇区位于整个硬盘最开始的扇区,并且以0x55和0xaa结束,BIOS就认为该扇区中存在MBR,该扇区就是MBR引导扇区。若该扇区位于各分区最开始的扇区,并且以0x55和0xaa结束,MBR就认为该扇区中有操作系统引导程序OBR,该扇区就是OBR引导扇区。
DBR、OBR、MBR、EBR结构中都有引导代码和结束标记0x55和0xaa,因此很多同学都容易把它们搞混。不过它们最大的区别是分区表只在MBR和EBR中存在,DBR或OBR中绝对没有分区表。MBR、EBR、OBR的位置关系如图0-21所示。
您看,MBR位于整个硬盘最开始的块,EBR位于每个子扩展分区,各子扩展分区中只有一个逻辑分区。MBR和EBR位于分区之外的扇区,而OBR则属于主分区和逻辑分区最开始的扇区,每个主分区和逻辑分区中都有OBR引导扇区。有关分区更详细的内容请参阅后面跟踪分区表的章节。
喜欢的朋友可以添加我们的微信账号:
51CTO读书频道二维码
51CTO读书频道活动讨论群:
【责任编辑: TEL:(010)】 &&&&&&
关于&&的更多文章
近日,中国工程院院士倪光南老师在接受国内媒体采访时再次提出国
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
讲师: 4人学习过讲师: 8人学习过讲师: 44人学习过
《大嘴巴漫谈数据挖掘》系统而全面地描述了数据挖掘的
《PHP+MariaDB Web开发从入门到精通》是一本关于PHP+M
在当今Java EE 开发中,Spring 框架是当之无愧的王者
本书分为8章,首先介绍ASP.NET的开发技巧和重点技术,尤其针对初学者如何快速入门并掌握ASP.NET编程做了深入浅出的介绍;然后重
51CTO旗下网站硬盘数据格式知识你了解多少
  由于各种原因导致硬盘或软盘上的数据损坏或丢失,使部分(或全部)数据无法读出和使用。数据恢复就是使用各种软件和硬件的技术方法把数据重新找回,使宝贵的信息得以重新使用。说到数据恢复,我们就不得不提到硬盘的数据结构、文件的存储原理,甚至操作系统的启动流程,这些是你在恢复硬盘数据时必须使用的基本知识。即使你不需要恢复数据,了解这些知识(即使只是稍微多知道一些),对于你平时的电脑操作和应用也是很有帮助的。1、硬盘的文件系统结构初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。就拿我们一直沿用到现在的Win9x/Me系列来说,我们一般要将硬盘分成主引导扇区、操作系统引导扇区、FAT表、DIR目录区和Data数据区等五部分。我们通常所说的主引导扇区MBR在一个硬盘中是是唯一的,MBR区的内容只有在硬盘启动时才读取其内容,然后驻留内存。其它几项内容随你的硬盘分区数的多少而异。2、主引导扇区(MBR)主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及判别哪个分区为可引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。3、分区表(DPT)在主引导区中,从地址BE开始,到FD结束为止的64个字节中的内容就是通常所说的分区表。分区表以80H或00H为开始标志,以55AAH为结束标志,每个分区占用16个字节,一个硬盘最多只能分成四个主分区,其中扩展分区也是一个主分区。随着硬盘容量的迅速扩大,引入的扩展分区可以不受四个主分区的限制,把硬盘分区数扩展到“Z”。值得一提的是,MBR是由分区程序(例如DOS的Fdisk.exe)产生的,不同的操作系统可能这个扇区的内容代码是不相同,但是实现的功能只有一个,使其中的一个活动分区获得控制区,正常启动系统。(在D盘,E盘前面都有一个粉红色的扇区,就是所谓的扩展分区表所在的位置,其后的62个扇区空闲,共同占有一个隐含磁道。)主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。也可以通过分区软件,在分区的最后建立主分区,或在磁盘的中部建立主分区。扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。这就是当硬盘被CIH病毒破坏后,我们可以通过KV3000的F10功能来找到丢失的D,E及以后的逻辑分区的原因。4、操作系统引导扇区(OBR)OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务在当根目录中寻找系统文件IO.SYS,MSDOS.SYS和WINBOOT.SYS三个文件,如果存在,就把IO.SYS文件读入内存,并移交控制权予该文件。在WIN98的系统中,没有MSDOS.sys文件,系统能够正常启动,但是无法进入桌面;如果没有文件,能够正常启动到桌面,但是无法进入DOS字符方式。BPB参数块:记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS 的)。5、文件分配表(FAT)FAT(File Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统。为了防止意外损坏,FAT一般做两个(也可以设置为一个),第二FAT为第一FAT的备份, FAT区紧接在OBR之后(对于FAT32格式,位置是从引导扇区开始的第32个扇区就是第一个FAT表的位置),其大小由这个分区的空间大小及文件分配单元的大小决定。随着硬盘容量的迅速发展,Microsoft 的DOS及Windows也先后采用我们所熟悉的FAT12、FAT16和FAT32格式。不过Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式,不同于FAT文件格式。FAT12是使用12BIT来表示簇的位置,最大容量32M,FAT16是使用两个字节16BIT位来表示簇的位置,分区最大容量2G,而FAT32采用4个字节来表示簇的位置,分区最大容量65G。、目录区(DIR)DIR是Directory即根目录区的简写,在FAT12和FAT16格式中,DIR紧接在第二FAT表之后,而在FAT32格式中,根目录区的位置可以在分区中的任意位置,其起始位置是由引导扇区给出的。单有FAT表还不能确定文件在磁盘中的具体位置,只有FAT表和DIR区配合使用,才能准确定位文件的确切位置。DIR记录着每个文件(目录)的文件名,扩展名,是否支持长文件各,起始单元(这是最重要的)、文件的属性,大小,创建日期,修改日期等住处内容。操作系统在读写文件时,根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置,然后顺序读取每个簇的内容就可以了。7、数据区(DATA)在DIR区之后,才是真正意义上的数据存储区,即DATA区。DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。注意:我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,除非你使用了“Format   X: /U”命令,强制对每一扇区写“F6”。至于硬盘分区,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,MBR,OBR,FAT,DIR之一被破坏的话,我们的数据也无法正常读取。
下一篇:没有了
与本文的相关文章推荐
好用实用的磨皮滤镜Portraiture

我要回帖

更多关于 引导扇区 mbr 的文章

 

随机推荐