这篇文章只保留快速对比。完整的启动链、GRUB、ELF、内核和 initramfs 说明,请阅读Linux 启动流程:从固件、分区与 GRUB 到内核。
现代 Linux 新安装通常优先使用 UEFI + GPT ,但其他组合并非绝对不能工作。
四种常见组合#
| 启动模式 | 分区方案 | 启动时发生什么 | 关键分区或位置 |
|---|---|---|---|
| Legacy BIOS | MBR | BIOS 读取磁盘第一个扇区并执行其中的启动代码 | MBR、可能存在的 post-MBR gap |
| UEFI | GPT | UEFI 根据启动项读取并执行 ESP 中的 .efi 程序 | ESP,通常为 FAT32 |
| Legacy BIOS | GPT | GRUB 仍可通过 BIOS 启动,但需要额外空间保存 core.img | BIOS Boot Partition,无文件系统 |
| UEFI | MBR | 某些平台可以使用,但兼容性和安装工具行为取决于固件 | 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 安装。- 需要完整理解启动接力时,请回到整体开机流程文章。


