主引导记录MBR
主引导记录(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,主引导扇区是否有效的标志。
主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。主引导扇区内的信息可以通过任何一种基于某种操作系统的分区工具软件写入,但和某种操作系统没有特定的关系,即只要创建了有效的主引导记录就可以引导任意一种操作系统(操作系统是创建在高级格式化的硬盘分区之上,是和一定的文件系统相联系的)。--维基百科
标准引导扇区结构
地址 | 描述 | 长度 (字节) | |||
---|---|---|---|---|---|
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 |
我们在安装操作系统的时候,操作系统会在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。
参考:
http://vbird.dic.ksu.edu.tw/linux_basic/0130designlinux.php
http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95