MBR(主引导记录)并没有一个由国际标准组织发布的、独立的、名为“MBR规范”的官方协议文档

它的格式是一个事实上的工业标准(De Facto Standard),其定义来源于早期IBM PC硬件和微软DOS操作系统的历史实现,并通过对现有系统的逆向工程和广泛兼容性实践而得以巩固。

以下是追溯MBR格式的权威来源和核心文档:


一、核心历史来源

1. IBM PC Technical Reference (1983)

  • 文档:IBM Personal Computer AT Technical Reference手册。
  • 内容:这是最原始的来源,定义了BIOS INT 13h中断调用(用于磁盘访问)和磁盘的CHS(柱面-磁头-扇区)寻址模式。MBR的结构,特别是分区表中CHS字段的格式,是为了兼容这些BIOS调用而设计的。
  • 地位这是MBR概念的硬件基础

2. Microsoft MS-DOS / PC-DOS

  • 实现:微软的DOS操作系统是MBR格式的主要推动者和实现者。它的FDISK工具是创建MBR分区表的事实标准工具。
  • 定义方式:MBR的格式通过微软的操作系统和工具的行为而被定义下来。其他操作系统(如DR-DOS)和后来的软件都必须与之兼容。

二、现代权威参考

虽然缺乏单一官方规范,但以下资源被公认为最权威的参考:

1. UEFI Forum - ESP Specification

  • 文档https://uefi.org/specifications (其中包含对传统MBR的明确描述)
  • 相关部分:UEFI规范为了保持向后兼容,明确描述了MBR的结构,包括分区表格式和0x55AA结束标志。这是目前能找到的最“官方”的书面定义之一。

2. Microsoft Documentation

3. Linux Kernel Source & Documentation

  • 来源:Linux内核的fs/partitions/msdos.c等文件。
  • 内容:Linux系统为了读写MBR磁盘,实现了对MBR的解析。其源代码和内核文档是理解MBR格式的极佳实践参考。

4. 维基百科 - Master Boot Record


三、MBR结构总结(基于以上来源)

根据这些权威来源,MBR的标准结构如下表所示:

偏移(十六进制) 长度(字节) 名称与描述 示例/备注
0x000 - 0x1BD 446 主引导代码(Bootstrap Code) 可执行的机器指令,用于加载活动分区的VBR。
0x1BE - 0x1FD 64 分区表(Disk Partition Table, DPT) 包含4个条目,每个16字节。
0x1FE - 0x1FF 2 引导签名(Boot Signature)
我喜欢把它叫做:结束标志
必须为0x55 0xAA,否则BIOS认为磁盘无效。

四、总结

  • 没有单一官方协议:MBR格式没有像RFC或ISO标准那样的独立官方文档。
  • 事实标准:其规范由历史实践(IBM BIOS + MS-DOS)现代权威来源(UEFI规范、微软/Linux文档) 共同定义。
  • 最佳实践
    1. 如需开发,请参考 Microsoft DocsLinux内核实现
    2. 如需快速查询,维基百科 提供了极佳的总结。
    3. 如需最正式的背景,UEFI规范 是值得引用的文件。