「MBR」- 主引导记录(Master Boot Record)

  CREATED BY JENKINSBOT

什么是“主引导记录”?

主引导记录(MBR),(1)是壹段信息,(2)保存在磁盘的第壹个扇区中,(3)大小为512字节。

作用:(1)保存引导代码,用于启动操作系统;(2)保存磁盘分区信息

注意:磁盘也可以没有主引导记录。此时(1)磁盘是“整个分区”,不存在分区(因为分区信息保存在主引导记录中)。(2)只能用于保存无据,无法安装操作系统(因为引导程序保存在主引导记录中)

主引导记录的数据结构

大小:512 BYTE

组成:(1)0-445,引导程序;(2)4×16=64,分区表;(3)510-511,AA55(幻数);

分区表数据结构

Status,1 bytes,分区状态,是否可用于启动;
Start,3 bytes,在分区中起初的绝对扇区的CHS地址;
Partition Type,1 byte,分区类型;
End,3 bytes,在分区中最终的绝对扇区的CHS地址;
LBA,4 bytes,在分区中起初的绝对扇区的LBA;
Partition Length,4 bytes,在分区中的扇区数;

在MBR中,分区表的组织限制了一个磁盘最大可寻址空间为「2TiB」。「MBR」不在分区中,它在第一个分区之前。

在MBR中,通常最多只能有四个主分区。某些操作系统和工具可以扩展到五个、八个、十六个,但是我们不讨论这些情况。

经典通用MBR结构

下面是经典通用MBR结构:

DEC Description Size (bytes)
0 – 445 Bootstrap code area 446
446 – 461 Partition entry No.1 16
462 – 477 Partition entry No.2 16
478 – 493 Partition entry No.3 16
494 – 509 Partition entry No.4 16
510 – 511 Boot signature 2

而「现代标准MBR结构」与「经典通用MBR结构」整体结构是类似的,因此这里不对「现代标准MBR结构」进行描述。

由「Bootstrap code area」与「Boot signature」都不是我现在想关心的地方,所以都跳过。我们来看看「Partition entry」部分。

# Partition entry

TODO 分区表导致的最大大小

常见问题记录

主分区与扩展分区的间隙

ext4 – When do logical partitions happen to need 1MB gap at each side in gparted?

原因分析:为了性能,现代分区工具采用 1MB(2048 Sector)数据对齐。鉴于扩展分区需要 512Byte(即一个扇区,扇区是最小单元)来保存数据,所以在 sda1 与 sda2 之间为 2047 个扇区,两者相加为 1M(2048 Sector)大小。

相关链接

三分钟告诉你MBR和GPT的区别,选择适合自己的
Wikipedia/Master boot record

参考文献

Wikipedia/Master boot record
三分钟告诉你MBR和GPT的区别,选择适合自己的
百度百科/主引导记录