MBR全称为主引导记录,是存储在磁盘第一个扇区(通常是512字节大小)的特殊数据区域,在linux系统的启动流程和磁盘管理中都发挥着不可替代的作用。它是最传统的磁盘引导方案,即便在如今GPT分区表普及的环境下,很多linux服务器和旧设备依然依赖MBR完成系统的初始化工作。

MBR的基本结构组成
MBR的512字节空间被划分为三个部分,每个部分都有明确的功能定位:
- 引导代码区:占前446字节,存放的是引导加载程序的可执行代码,比如linux常用的GRUB引导程序的部分代码就会存放在这里。
- 分区表:占接下来的64字节,用来记录磁盘的分区信息,最多支持4个主分区,每个分区条目占16字节。
- 结束标志:最后2字节固定为0x55AA,用来标识该扇区是有效的MBR,防止系统误识别其他扇区为引导记录。
linux下MBR的核心作用
1. 引导系统启动
当linux设备通电后,BIOS会读取磁盘的第一个扇区也就是MBR,执行其中的引导代码。引导代码会进一步加载完整的引导加载程序(比如GRUB的核心镜像),再由引导加载程序加载linux内核和初始化内存盘,最终完成系统启动。如果MBR的引导代码损坏,linux系统就无法正常启动,会出现找不到引导设备的错误提示。
2. 记录磁盘分区信息
MBR中的分区表记录了linux系统所能识别的磁盘分区的基本信息,包括分区的起始扇区、结束扇区、分区类型、是否为活动分区等。linux内核在初始化存储子系统时,会读取MBR的分区表来识别磁盘上的分区结构,进而挂载对应的文件系统。如果使用fdisk等分区工具修改了MBR的分区表,需要重启系统或者让内核重新读取分区表才能生效。
我们可以通过以下命令查看磁盘的MBR分区表信息:
# 查看/dev/sda磁盘的分区表,包含MBR相关信息 fdisk -l /dev/sda
3. 兼容传统硬件和启动模式
很多旧的硬件设备只支持BIOS启动模式,不支持UEFI,这类设备只能使用MBR作为引导方案。同时部分嵌入式linux设备和老旧服务器依然采用BIOS+MBR的启动组合,MBR的存在保证了这些设备可以正常运行linux系统,不需要进行硬件升级或者更换启动方案。
MBR和GPT的对比
现在很多新的linux设备开始使用GPT分区表,以下是MBR和GPT的核心差异:
| 对比项 | MBR | GPT |
|---|---|---|
| 最大支持磁盘容量 | 2TB | 18EB |
| 主分区数量 | 最多4个 | 最多128个 |
| 引导模式支持 | 仅BIOS | UEFI为主,部分支持BIOS |
| 数据安全性 | 分区表无备份,损坏后难恢复 | 分区表有头尾两份备份,可靠性更高 |
MBR的常见操作注意事项
在linux系统中操作MBR时需要格外小心,错误的操作可能导致数据丢失:
- 不要随意使用dd命令向磁盘的第一个扇区写入数据,除非你明确知道自己在做什么,错误的写入会直接破坏MBR导致系统无法启动。
- 如果需要备份MBR,可以使用以下命令将MBR的512字节数据备份到文件:
# 备份/dev/sda的MBR到mbr_backup.img文件 dd if=/dev/sda of=./mbr_backup.img bs=512 count=1
- 如果MBR损坏需要恢复,可以使用linux安装盘进入救援模式,重新安装引导加载程序来修复MBR的引导代码部分。
注意:MBR的分区表只支持最多4个主分区,如果需要更多分区,可以将其中一个主分区设置为扩展分区,在扩展分区内划分多个逻辑分区,逻辑分区数量不受4个的限制。