主引导记录 - 维基百科,自由的百科全书
请您关注于2月23日(周六)举行的2013大连寒假聚会,以及第20期上海维基人定期聚会
|
[关闭] |
[编辑]
主引导记录
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。因此,在使用“主引导记录”(MBR)这个术语的时候,需要根据具体情况判断其到底是指整个主引导扇区,还是主引导扇区的前446字节。
地址 | 描述 |
长度 (字节) |
|||
---|---|---|---|---|---|
Hex | Oct | Dec | |||
0000
|
0000
|
0 | 代码区 |
440 (最大 446) |
|
01B8
|
0670
|
440 | 选用软盘标志 | 4 | |
01BC
|
0674
|
444 | 一般为空值; 0x0000 | 2 | |
01BE
|
0676
|
446 |
标准 MBR 分区表规划 (四个16 byte的主分区表入口) |
64 | |
01FE
|
0776
|
510 | 55h |
MBR 有效标志: 0x55AA |
2 |
01FF
|
0777
|
511 | AAh | ||
MBR, 总大小: 446 + 64 + 2 = | 512 |
主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。主引导扇区内的信息是通过FDISK写入的,它是低级格式化的产物,和操作系统没有任何关系(操作系统是创建在高级格式化的硬盘分区之上,是和一定的文件系统相联系的)。
对于硬盘而言,一个扇区可能的字节数为128×2n (n=0,1,2,3)。大多情况下,取n=2,即一个扇区(sector)的大小为512字节。
目录[隐藏]
|
[编辑]主引导记录的组成
[编辑]启动代码
主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。MBR是由分区程序(如Fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。
[编辑]硬盘分区表
偏移 | 长度(字节) | 意义 |
---|---|---|
00H | 1 |
分区状态:00-->非活动分区;80--> 活动分区; 其它数值没有意义 |
01H | 1 | 分区起始磁头号(HEAD),用到全部8位 |
02H | 2 |
分区起始扇区号(SECTOR),占据02H的位0-5; 该分区的起始磁柱号(CYLINDER),占据 02H的位6-7和03H的全部8位 |
04H | 1 | 文件系统标志位 |
05H | 1 | 分区结束磁头号(HEAD),用到全部8位 |
06H | 2 |
分区结束扇区号(SECTOR),占据06H的位0-5; 该分区的结束磁柱号(CYLINDER),占据 06H的位6-7和07H的全部8位 |
08H | 4 | 分区起始相对扇区号 |
0CH | 4 | 分区总的扇区数 |
硬盘分区表占据主引导扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。具体每个字节的定义可以参见硬盘分区结构信息。下面是一个例子:
如果某一分区在硬盘分区表的信息如下
- 80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
则我们可以看到,最前面的"80"是一个分区的激活标志,表示系统可引导[1];"01 01 00"表示分区开始的磁头号为1,开始的扇区号为1,开始的柱面号为0;"0B"表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);"FE BF FC"表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F 00 00 00"表示首扇区的相对扇区号为63;"7E 86 BB 00"表示总扇区数为12289662。
对于现代大于8.4G的硬盘,CHS已经无法表示, BIOS使用LBA模式,对于超出的部分,CHS值通常设为 FEFFFF, 并加以忽略,直接使用08-0f的4字节相对值,再进行内部转换.
[编辑]结束标志字
结束标志字55,AA(偏移1FEH-偏移1FFH)是主引导扇区的最后两个字节,是检验主引导记录是否有效的标志。
[编辑]主引导扇区的读取流程
- 系统开机或者重启。
- BIOS 加电自检 ( Power On Self Test -- POST )。BIOS执行内存地址为 FFFF:0000H 处的跳转指令,跳转到固化在ROM中的自检程序处,对系统硬件(包括内存)进行检查。
- 读取主引导记录(MBR)。当BIOS检查到硬件正常并与 CMOS 中的设置相符后,按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H 处。
- 检查0000:7DFEH-0000:7DFFH(MBR的结束标志位)是否等于55AAH,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示"NO ROM BASIC"然后死机。
- 当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备。启动设备的MBR将自己复制到0000:0600H处, 然后继续执行。
- 根据MBR中的引导代码启动引导程序。
[编辑]主引导记录与硬盘分区
从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘,最多只能识别4个主要分区(Primary partition)。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是主要分区的一种,但它与主分区的不同在于理论上可以划分为无数个逻辑分区。[2]
扩展分区中逻辑驱动器的引导记录是链式的。每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR),其分区表的第一项指向该逻辑分区本身的引导扇区,第二项指向下一个逻辑驱动器的EBR,分区表第三、第四项没有用到。
Windows系统默认情况下,一般都是只划分一个主分区给系统,剩余的部分全部划入扩展分区。这里有下面几点需要注意:
- 在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
- 在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
- 在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。[3]如果硬盘太大则必须改用GPT。
[编辑]MBR分区表与GPT分区表的关系
与支持最大卷为2 TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比,GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限,只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区,这也是EFI标准规定的分区表的最小尺寸)。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。
[编辑]注释
- ^ 对于一个操作系统而言,系统分区设为活动分区并不是必须的,这主要视引导程序而定,如果使用的引导程序是Grub4Dos,MBR中的引导代码仅仅按照分区的顺序依次探测第二阶段引导器grldr的位置,并运行第一个探测到的grldr文件。
- ^ 一个硬盘的分区个数还要受到分区大小的限制,因为硬盘是按照柱面分区的:一个分区至少要占一个柱面。但有一点需要注意,由于现在的硬盘结构已经和老式硬盘有了很大区别,其寻址结构也不再是CHS寻址,所以这里的柱面大小不同于相关软件显示的柱面大小。对于物理结构上有n个面的硬盘,其分区空间的最小值为:n × 扇区/磁道 × 512字节。
- ^ 根据16字节分区表的结构:当前分区的扇区数用4个字节表示,前面各分区扇区数的总和也是4个字节,而232 × 512 = 2 199 023 255 552 Byte
[编辑]外部链接
- (英文)硬盘结构
- (英文)主分区、扩展分区和逻辑分区
- (英文)使用GPT分区表
- (简体中文)MBR的修复
- (正体中文)FDISK /MBR 重新写入主开机记录
- (简体中文)Linux 引导过程内幕
- (简体中文)FAT文件系统原理
- (简体中文)文件系统
- 电脑存储技术
- BIOS
主引导记录 - 维基百科,自由的百科全书相关推荐
- 维基百科,全世界的百科全书—Jimmy Wales
1999年10月20日价值1250美元的32卷本<大英百科全书>全部上网,供人们免费查询与下载.这在当年是轰动一时的新闻.于是,Jimmy Wales(吉米?威尔士)诞生了建立一个真正&q ...
- 维基百科客户端android,维基百科 | F-Droid - Free and Open Source Android App Repository
维基百科 自由在线百科全书的功能丰富的官方查看器 Android 版维基百科官方应用程序可用于查找,发现和浏览维基百科上的信息与知识.通过该应用,您可以快速搜索各种条目,阅读专题文章和图片,还有推荐和 ...
- android 印度语_为什么发展印度语维基百科至关重要
android 印度语 1月15日,免费的在线百科全书Wikipedia庆祝成立15周年,用290多种语言撰写了3600万篇文章,达到了这个里程碑(仅英语Wikipedia便突破了500万篇文章标记 ...
- 【历史上的今天】10 月 24 日:1024 程序员节;中文维基百科上线;苹果发布 iPad mini
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 10 月 24 日,大概在 2014 - 2015 年间,中国互联网兴起了一个全新的概念:10 月 ...
- 维基百科怎么做创建词条?如何创建维基百科?海外营销_一秒推媒体平台
做品牌出海推广的朋友都会知道维基百科,它在世界互联网领域的地位,就像百度百科在中国的 地位一样.因此,除了海外新闻稿.谷歌雅虎和其他SEO外,非常重要的网络推广是维基百科了. Wiki这个词来源于夏威 ...
- PyQt - 维基百科,自由的百科全书
PyQt - 维基百科,自由的百科全书 PyQt 维基百科,自由的百科全书 跳转至: 导航. 搜索 PyQt 開發者 Riverbank Computing 穩定版本 4.9.5/ 2012年9月29 ...
- ROT13 - 维基百科,自由的百科全书
ROT13 - 维基百科,自由的百科全书 ROT13 - 维基百科,自由的百科全书 ROT13 维基百科,自由的百科全书 跳转至: 导航. 搜索 ROT13通过与其成对的13个字母一对一置换,如HEL ...
- 向量空间模型 - 维基百科,自由的百科全书
向量空间模型 - 维基百科,自由的百科全书 向量空间模型 - 维基百科,自由的百科全书 向量空间模型 维基百科,自由的百科全书 跳转到: 导航, 搜索 向量空间模型 (或者 词组向量模型) 作为向量的 ...
- typedef - 维基百科,自由的百科全书
typedef - 维基百科,自由的百科全书 typedef - 维基百科,自由的百科全书 typedef 维基百科,自由的百科全书 跳转到: 导航, 搜索 在C和C++程式語言中,typedef是一 ...
- 探戈 - 维基百科,自由的百科全书
探戈 - 维基百科,自由的百科全书 探戈 - 维基百科,自由的百科全书 探戈[编辑] 维基百科,自由的百科全书 跳转至: 导航. 搜索 探戈 1919年绘有探戈舞蹈姿势的明信片 探戈(Tango)西班 ...
最新文章
- 在 Java Web 项目中,Service 层和 Dao 层真的有必要每个类都加上接口吗
- Debian Security Advisory(Debian安全报告) DSA-4410-1 openjdk-8 security update
- Jmeter(七)-参数化
- JVM调优系列:(三)类加载和执行机制
- 机器学习-算法背后的理论与优化(part4)--结构风险最小(上)
- 几种C#程序读取MAC地址的方法
- ajax传输文件大小有没有限制_巧改文件扩展名,1秒解除微信传输文件大小限制!...
- 路由器下接路由器设置方法(路由器级联)
- Rhinoceros技巧:有关曲线和曲面的分析
- 锐起无盘XP2.0(2050)语音视频教程
- win7创建桌面计算机,win7系统添加或删除虚拟桌面的方法介绍
- smart3d加载到谷歌_到底什么是Google Smart Lock?
- 从零开始学java第一章 认识java
- 我国超级计算机的CPU,超级计算机处理器变化
- 阿里巴巴java规范
- 淘宝四大经典骗局及防骗技巧
- 【Android】虚拟环绕声
- 车牌识别分割定位_解析车牌识别系统有什么优势?
- 电子信息工程要考研吗?
- HTML常见的处理文本的标签,比如说加粗啦、斜体啦等等等。。。
热门文章
- MATLAB的bertool绘制误码率理论值与仿真值对比曲线
- 什么样的会员管理才叫有效果的会员运营方案?
- 利用python构建马科维茨_如何用python实现Markowitz投资组合优化
- 远程唤醒电脑WOL(Wake On LAN - 局域网唤醒)
- 计算机无法访问dota服务器,dota2无法与任何服务器建立连接如何解决
- SEO优化与网站浏览量提升
- 谷歌翻译函数C#代码实现
- Android图像压缩库Tiny更新优化 解决X509TrustManager问题,重新编译libjpeg-turbo支持cpu全架构
- 一步一步教你写股票走势图——分时图一(概述)
- 运兴ETF:期权多空双向,策略多样优势大