跳过正文
  1. 笔记/
  2. 系统底层/

简单总结 MBR 和 GPT 分区

·1192 字·3 分钟· loading · loading · · ·
ICE345
作者
ICE345
CS Student | System | Linux | OCaml

这篇文章只保留快速对比。完整的启动链、GRUB、ELF、内核和 initramfs 说明,请阅读Linux 启动流程:从固件、分区与 GRUB 到内核

分区方案和启动模式是两个不同概念。MBR/GPT 说明磁盘如何保存分区布局;Legacy BIOS/UEFI 说明固件如何寻找并运行启动程序。

现代 Linux 新安装通常优先使用 UEFI + GPT ,但其他组合并非绝对不能工作。

四种常见组合
#

启动模式分区方案启动时发生什么关键分区或位置
Legacy BIOSMBRBIOS 读取磁盘第一个扇区并执行其中的启动代码MBR、可能存在的 post-MBR gap
UEFIGPTUEFI 根据启动项读取并执行 ESP 中的 .efi 程序ESP,通常为 FAT32
Legacy BIOSGPTGRUB 仍可通过 BIOS 启动,但需要额外空间保存 core.imgBIOS Boot Partition,无文件系统
UEFIMBR某些平台可以使用,但兼容性和安装工具行为取决于固件ESP,仍然需要 FAT32

BIOS + MBR:传统启动路径
#

MBR 的第一个扇区通常包含以下结构:

446 字节:启动代码
 64 字节:四个传统分区表项
  2 字节:启动签名 0x55AA

这 446 字节很难容纳完整的 GRUB。因此,GRUB 可能还需要使用 MBR 后的可用空间,或者从文件系统中继续加载 core.img 和模块。教程中常说的 “Stage 1 / Stage 1.5 / Stage 2” 是一种便于理解的历史称呼,并不是所有 GRUB 2 安装都存在三个固定文件。

MBR 方案的主要限制是传统分区表的数量和地址范围有限。实际可用上限还会受到扇区大小、操作系统和工具实现的影响,因此不应把某一个常见数字当成所有磁盘的绝对上限。

UEFI + GPT:现代常见路径
#

UEFI 不需要把完整启动程序塞进 MBR,而是读取 ESP 中的 EFI 应用程序,例如:

EFI/
├── BOOT/BOOTX64.EFI
├── ubuntu/grubx64.efi
└── Microsoft/Boot/bootmgfw.efi

这里的 .efi 文件通常是 PE/COFF 格式,不是 ELF。ESP 通常使用 FAT32;它可以被多个操作系统共同使用。

常见命令的作用不同:

# 把 ESP 的实际挂载点替换为你的系统路径;不一定总是 /boot
sudo grub-install --target=x86_64-efi --efi-directory=/boot

# 生成 GRUB 配置文件;这不是安装 EFI 启动程序
sudo grub-mkconfig -o /boot/grub/grub.cfg

具体命令会因发行版而变化。执行前应确认 ESP 的挂载点,并阅读对应发行版的安装文档。

BIOS + GPT:需要 BIOS Boot Partition
#

GPT 磁盘通常仍然带有一个 Protective MBR,用来防止旧工具误覆盖 GPT;它不是完整的传统 BIOS 启动空间。

如果要让 GRUB 通过 Legacy BIOS 从 GPT 磁盘启动,通常需要一个很小的 BIOS Boot Partition。它一般不创建文件系统,专门提供 GRUB 嵌入 core.img 所需的空间。

GPT 磁盘
├── Protective MBR
├── BIOS Boot Partition(BIOS + GPT 时常见)
├── ESP(UEFI 启动时使用)
└── Linux 根分区、交换分区或其他数据分区

BIOS Boot Partition 和 ESP 不是同一个东西:前者服务于 BIOS 模式下的 GRUB,后者服务于 UEFI 固件读取 EFI 文件。

如何判断当前机器
#

# 能看到 efi 目录,通常说明当前系统是以 UEFI 模式启动
test -d /sys/firmware/efi && echo UEFI || echo "Legacy BIOS"

# 查看磁盘和分区
lsblk -o NAME,SIZE,FSTYPE,FSVER,PARTTYPENAME,MOUNTPOINTS

# 查看分区表类型和分区 GUID
sudo fdisk -l
sudo gdisk -l /dev/nvme0n1

记住这几句话
#

  • MBR/GPT 是分区方案,不是启动模式。
  • UEFI 常与 GPT 搭配,但不是逻辑上的绝对绑定。
  • GPT 仍可能包含 Protective MBR。
  • ESP 是 UEFI 使用的 FAT 分区;BIOS Boot Partition 是 GRUB 在 BIOS + GPT 场景中的特殊空间。
  • grub-mkconfig 负责生成配置,不能代替所有形式的 bootloader 安装。
  • 需要完整理解启动接力时,请回到整体开机流程文章

相关文章


评论