博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
主引导记录MBR
阅读量:5837 次
发布时间:2019-06-18

本文共 1388 字,大约阅读时间需要 4 分钟。

主引导记录(Master Boot Record, MBR),用来引导系统的启动。

计算机在启动时首先会加载BIOS(basic input/output system, 基本输入输出系统),进行机器的自检,读取CMOS中的各项硬件参数,然后会依据用户配置的顺序去找寻能够启动的设备,例如启动光盘,启动U盘,硬盘等。这些设备能否启动,就是看其第一个扇区是否存在MBR。

以硬盘为例,在硬盘的0柱面,0磁道,1扇区的位置,512字节的扇区有三部分内容:

1.MBR,446字节。

2.DPT(Disk Partition Table),硬盘分区表,64字节。

3.结束标志,2字节,内容为55AA,主引导扇区是否有效的标志。

主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。主引导扇区内的信息可以通过任何一种基于某种操作系统的分区工具软件写入,但和某种操作系统没有特定的关系,即只要创建了有效的主引导记录就可以引导任意一种操作系统(操作系统是创建在高级格式化的硬盘分区之上,是和一定的文件系统相联系的)。--

标准引导扇区结构

地址 描述 长度
()
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

我们在安装操作系统的时候,操作系统会在MBR上安装启动管理程序Boot loader。Boot loader有以下功能:

1.提供菜单项,是用户可以选择不同的启动项目,譬如可以显示多个操作系统供用户选择启动。

2.加载内核文件,用来直接启动操作系统

3.转交启动管理功能给其他loader。

我们的启动管理程序除了可以安装到MBR,还可以安装到每一个分区的启动扇区里。譬如我们的硬盘分成了多个分区,我们在第一,第二分区分别安装了Windows和Linux操作系统,那么第一,第二分区的第一个扇区分别存有Windows和Linux的启动管理程序。操作系统也会往MBR中写入自己的启动管理程序。

其中Windows操作系统的启动管理程序是没有上述第3点的功能的。安装双系统如果先安Linux,再安Windows,那么Windows会在MBR中覆盖Linux的启动管理程序,写上自己的启动管理程序,而Windows默认不具有转交启动管理功能给其他loader,这就造成了无法启动Linux。而Linux在安装的时候,可以选择将启动管理程序安装到MBR还是分区的启动扇区,而且可以手动配置启动菜单,这样可以在Linux的boot loader中加入Windows的启动选项。因此安装双系统最好先安装Windows再安装Linux。

参考:

转载于:https://www.cnblogs.com/daemon369/p/3236667.html

你可能感兴趣的文章
《Unix环境高级编程》读书笔记 第8章-进程控制
查看>>
腾讯前端二面题目详解
查看>>
mascara-1
查看>>
Jquery Form表单取值
查看>>
Python version 2.7 required, which was not found in the registry
查看>>
Android API level 与version对应关系
查看>>
Team Name
查看>>
String类
查看>>
西门子_TDC_数据耦合小经验
查看>>
接口测试与postman
查看>>
mac zsh选择到行首的快捷键
查看>>
LINQ To XML的一些方法
查看>>
[LeetCode] Copy List with Random Pointer
查看>>
openstack部署之nova
查看>>
JS组件系列——表格组件神器:bootstrap table
查看>>
存储过程Oracle(一)
查看>>
log4j日志归档
查看>>
Java笔记01——IO流
查看>>
mysql遇见error,1049
查看>>
NYOJ311 完全背包
查看>>