# Master boot record
Master boot record (opens new window),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。
MBR 由三个部分组成:引导代码区、硬盘分区表和硬盘有效标志。
# 一、引导代码区
Bootstrap code area 占 446 字节,它负责从活动分区中装载,并运行系统引导程序。
引导代码区是一小段代码,用于加载其他分区上更大的启动加载器。
如果你安装了 Windows,Windows 启动加载器的初始信息就放在这个区域里,如果 MBR 的信息被覆盖导致 Windows 不能启动,你就需要使用 Windows 的 MBR 修复功能来使其恢复正常。
如果你安装了 Linux,则位于 MBR 里的通常会是 GRUB 加载器。
# 二、分区表
Partition table (opens new window) 占 64 字节,由 4 个 Partition entry 组成,偏移 01BE 至 01FD。
以 Partition entry 为例:
80 20 21 00
07 F5 A9 8C
00 08 00 00
00 08 A0 00
80 是一个分区的激活标志,表示系统可引导;
20 表示分区起始磁头号,即 32;
21 00 为 0010 0001 0000 0000
- 分区起始扇区号,占据第一个字节的 0 - 5 位,即
10 0001,即 33; - 分区起始磁柱号,占据第一个字节的 6 - 7 位和第二个字节的全部 8 位,即
00 0000 0000。
07 表示分区的系统类型是 NTFS。
F5 表示分区结束磁头号,即 245。
A9 8C 为 1010 1001 1000 1100
- 分区结束扇区号,占据第一个字节的 0 - 5 位,即
10 1001,即 41。 - 分区结束磁柱号,占据第一个字节的 6 - 7 位和第二个字节的全部 8 位,即
10 1000 1100,即 652。
00 08 00 00 为 little-endian,表示分区起始相对扇区号,即 00 00 08 00,即 2048。
00 08 A0 00 为 little-endian,表示分区总的扇区数,即 00 A0 08 00,即 10 487 808。
# 三、硬盘有效标志
Magic number,占 2 字节,为 55 AA,是检验主引导记录是否有效的标志。