MBR
MBR
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,位于磁盘的0号扇区(一扇区等于512字节),是一个重要的扇区(简称MBR扇区)。三维地址为(柱面,磁头,扇区)=(0,0,1)。
MBR特点
MBR支持32bit和64bit系统,理论支持安装windows所有版本的系统。
MBR只支持不超过2T的硬盘超过2T的硬盘将只能使用2T空间(有第三方解决办法)(传统的MBR分区表只能识别磁盘前面的2.2TB左右的空间,对于后面的多余空间只能浪费掉了)
MBR分区表只能支持4个主分区或者 数量小于3的主分区+1扩展分区(包含随意数目的逻辑分区)
扩展分区 一个扩展分区会占用一个主分区位置(扩展分区不能直接使用,必须在扩展分区上建立逻辑分区)
逻辑分区 linux最多支持63个IDE分区和15个SCSI分区
主引导记录由以下三部分组成:
》bootloader引导程序,446bytes
bootloader 引导程序 一般在操作系统安装时写入,但它并不属于操作系统。
MBR就是一段引导程序,用于检测磁盘的分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB),它的重要作用就是识别活动分区,并引导操作系统。
引导代码:引导代码占MBR分区的前440字节。
Windows磁盘签名:占引导代码后面的4字节,是Windows初始化磁盘写入的磁盘标签,如果此标签被破坏,则系统会提示“初始化磁盘”。
还有2字节的 00 00
》MBR分区表:占Windows磁盘标签后面的64个字节,是整个硬盘的分区表。其中每16个字节为一个分区表项。也就是在MBR扇区中只能记录4个分区信息
》MBR结束标志:占MBR扇区最后2个字节,一直为“55AA”。
在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。因此,在使用“主引导记录”(MBR)这个术语的时候,需要根据具体情况判断其到底是指整个主引导扇区,还是主引导扇区的前446字节。
分区表DPT
主分区、扩展分区、逻辑分区
MBR分区表 记录了硬盘有多少分区以及分区的各种属性。由于一个分区的信息要占用16字节,所以分区表只能定义4个分区,这就是为什么我们说硬盘一般最多只能分为4个主分区(这里说“一般”是对基本磁盘而言,而对于动态磁盘则无此限制,但大部分都在使用基本磁盘,可以暂不考虑 )。
正如前面所讲,主分区是由主引导扇区中64字节的分区表所定义的,最多只能有4个。但为了满足更多分区的需求,便产生了扩展分区。形式上,如果拥有扩展分区,就必须牺牲一个主分区,而且最多有一个扩展分区,也就是说:主分区+扩展分区<=4 并且 扩展分区<=1。因此扩展分区也可以看成一种特殊的主分区。
但扩展分区并不可以直接使用,扩展分区又必须以逻辑分区的形式出现,可以这样认为:扩展分区包含着若干逻辑分区,而且至少包含一个。
扩展分区中的逻辑分区是以链式存在的。即每一个逻辑分区都记录着下一个逻辑分区的位置信息,依次串联。事实上每一个逻辑分区都有一个和主引导扇区类似的引导扇区,引导扇区里有类似的分区表。该分区表记录了该分区的信息和一个指针,指向下一个逻辑分区的引导扇区。
因此,逻辑分区是借鉴了主分区的方法,相当于在一个主分区下面建立了若干级“主分区”。
从上面的描述 推测,逻辑分区是建立在操作系统级别,由操作系统识别的。另一个可以预测的现象是:一旦某一个逻辑分区损害,跟在它后面的所有逻辑分区都将丢失,而前面的逻辑分区去可以保留。这也是链式结果的特点。
扩展分区的分区表(和主引导扇区类似的引导扇区 引导程序为0)
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
3980400000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3980400190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804001B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
39804001C0 21 00 07 FE FF FF 00 08 00 00 00 08 40 0B 00 FE ! ? @ ?
39804001D0 FF FF 05 FE FF FF 00 10 40 0B 00 10 40 0B 00 00 ? @ @
39804001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39804001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA U?
Windows系统 所需的分区
活动分区、系统分区、启动分区、引导分区
这四个术语和前面三个不同,前面三个是讲述分区的“物理”形成。而这四个术语描述了分区的功能,并且更易混淆。
首先,根据Windows XP随机帮助文档看,引导分区就是启动分区,两者是同一概念,所以下面就只讨论活动分区、系统分区和启动分区。
系统分区和启动分区比较。
这是两个极易混淆的概念,因为两者的含义似乎和它们的名字正好颠倒了。
真正包含操作系统内核文件的分区是启动分区,包含操作系统引导文件的却是系统分区
系统分区和启动分区可以 合在一起 变成一个 分区,你的C盘既是系统分区也是启动分区,只安装一个操作系统的计算机大都属于这种情况 。
其实系统分区是针对引导来说的,而启动分区是针对操作系统来说的。
最后要搞明白的是活动分区,这一点,比较麻烦。
只有标记为活动分区,这个系统分区的Windows启动支持文件才会被加载,然后通过这些引导存储在启动分区的Windows内核文件,完成Windows的启动。
活动分区是基于系统分区的。(即引导文件所在的分区)
当活动分区为启动分区时,会出现以下错误,系统启动不了
活动分区 的特点
- 只能将主分区设置成活动分区,不能将逻辑驱动器标记为活动。
- 系统必须从活动分区中启动。 即 系统分区 必须是 活动分区
- 每个磁盘只能有一个活动分区。
而从主引导扇区处看,活动分区仅仅是在分区表中,16个字节的最前面含有80标志的分区信息所定义的分区。
活动分区 只存在于 MBR 中,GPT中不存在这个概念。主分区 扩展分区 逻辑分区 GPT中不区分这些,所有分区都是主分区。
系统启动流程
MBR中 BIOS读取 0扇区 的引导程序,完成硬盘检查和分区表检查之后,执行 系统分区中的 引导文件(调用启动项选择界面选择需要启动的启动项),然后加载系统内核。