“磁盘前的 EFI 系统”通常是指 EFI 系统分区(ESP, EFI System Partition),它是现代计算机(使用 UEFI 固件而非传统 BIOS)启动操作系统所必需的一个特殊分区。
🔍 什么是 EFI 系统分区(ESP)?
- 全称:EFI System Partition(ESP)
- 作用:存储 UEFI 固件在启动时所需的引导加载程序(bootloader)、驱动、配置文件等。
- 位置:通常位于磁盘最前面(但不是物理“最前”,而是逻辑上靠前),是一个独立的小型分区。
- 文件系统:必须格式化为 FAT32(有时也支持 FAT16),因为 UEFI 规范只强制要求固件能读取 FAT 文件系统。
- 大小:一般为 100 MB 到 500 MB(Windows 建议至少 100 MB,Linux 发行版可能更小)。
- 是否可见:
🖥️ 举个例子
当你在一台支持 UEFI 的电脑上安装 Windows 或 Linux 时,安装程序会自动创建以下分区(以 GPT 分区表为例):
| 分区类型 | 大小 | 用途 |
|---|---|---|
| EFI 系统分区 | 100–500 MB | 存放 bootmgfw.efi(Windows)或 grubx64.efi(Linux)等引导文件 |
| Microsoft 保留分区(MSR) | 16 MB | Windows 专用(可选) |
| 主系统分区 | 剩余空间 | 安装操作系统 |
在 ESP 分区中,你会看到类似这样的目录结构:
/EFI
├── /Microsoft
│ └── /Boot
│ └── bootmgfw.efi ← Windows 启动文件
├── /ubuntu
│ └── grubx64.efi ← Ubuntu 的 GRUB 引导器
└── /BOOT
└── BOOTX64.EFI ← 通用 fallback 启动文件
UEFI 固件启动时,会从 ESP 中读取这些 .efi 文件来加载操作系统。
❓为什么叫“磁盘前的 EFI 系统”?
- 因为在磁盘分区布局中,ESP 通常被创建在第一个可用位置(紧随 GPT 头之后),所以用户常感觉它“在磁盘最前面”。
- 它不属于任何一个操作系统,而是被所有支持 UEFI 的系统共享的启动基础设施。
⚠️ 注意事项
- 不要随意删除 ESP!否则系统将无法启动。
- 如果你用
fdisk -l或 Windows 磁盘管理看到一个 100–500 MB、FAT32 格式、无盘符的小分区,那很可能就是 ESP。 - 在双系统(如 Windows + Linux)中,两个系统的引导文件都放在同一个 ESP 里,互不冲突。
✅ 如何查看 EFI 系统分区?
在 Windows:
diskpart
list volume
找“FAT32”格式、无盘符、大小约 100–500 MB 的卷,标记为 “System”。
在 Linux:
lsblk -f
# 或
sudo fdisk -l
找类型为 EFI System 的分区(通常是 /dev/sda1 或类似)。
挂载后查看内容:
sudo mount /dev/sda1 /mnt
ls /mnt/EFI
总结
“磁盘前的 EFI 系统” = EFI 系统分区(ESP)它是 UEFI 启动架构的核心组成部分,存放引导程序,格式为 FAT32,通常位于磁盘开头,对系统启动至关重要,切勿误删。
如有需要,我也可以教你如何修复损坏的 ESP 或手动重建引导。
UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)在启动操作系统时,依赖 EFI 系统分区(ESP)中的引导文件,其完整流程如下。这个过程取代了传统 BIOS + MBR 的启动方式,更加灵活、安全、高效。
🔁 UEFI 启动流程(以安装了操作系统的电脑为例)
第 1 步:上电 → 固件初始化
- 按下电源键后,CPU 从预定义地址开始执行 UEFI 固件代码(存储在主板 ROM/Flash 中)。
- UEFI 初始化硬件(CPU、内存、显卡、USB、磁盘控制器等)。
- 加载 UEFI 驱动程序(如 NVMe、SATA、网络驱动),使系统能访问存储设备。
✅ 与 BIOS 不同:UEFI 是一个微型操作系统,支持图形界面、网络、文件系统等。
第 2 步:查找 EFI 系统分区(ESP)
- UEFI 固件扫描所有连接的存储设备(硬盘、U盘、NVMe 等)。
- 寻找符合以下条件的分区:
💡 ESP 通常位于磁盘开头,大小 100–500 MB。
第 3 步:读取启动项(Boot Entries)
UEFI 固件会从两个地方读取“该运行哪个 .efi 文件”:
A. NVRAM 中的启动项(首选)
- 安装操作系统时,安装程序会向 UEFI 固件的 NVRAM(非易失性 RAM) 写入启动配置。
- 例如:
- 用户可在 UEFI 设置界面(开机按 F2/Del 等) 中选择默认启动项或调整顺序。
B. Fallback 路径(备用)
如果 NVRAM 中没有有效启动项(如新硬盘、引导损坏),UEFI 会尝试标准 fallback 路径:
\EFI\BOOT\BOOTX64.EFI (64 位 x86 系统)
\EFI\BOOT\BOOTAA64.EFI (ARM64 系统)
这就是为什么可启动 U 盘必须包含 \EFI\BOOT\BOOTX64.EFI。
第 4 步:加载并执行 .efi 引导程序
- UEFI 将选中的
.efi文件(如bootmgfw.efi或grubx64.efi)加载到内存。 - 由于
.efi是 PE 格式(与 Windows .exe 同源),UEFI 可直接执行它。 - 此时控制权交给引导程序(Bootloader)。
第 5 步:引导程序加载操作系统内核
- Windows:
bootmgfw.efi→ 加载winload.efi→ 启动 Windows 内核。 - Linux:
grubx64.efi→ 显示 GRUB 菜单 → 加载vmlinuz(内核)和initramfs→ 启动 Linux。
🔄 注意:GRUB 本身也可以直接放在 ESP 中,无需单独 /boot 分区(但多数发行版仍保留)。
第 6 步:操作系统接管
- 内核初始化完成,启动用户空间(如 systemd、Windows Session Manager)。
- UEFI 固件任务结束,退出。
📂 EFI 系统分区(ESP)典型结构
/EFI
├── /Microsoft
│ └── /Boot
│ ├── bootmgfw.efi ← Windows 主引导器
│ └── ...
├── /ubuntu
│ ├── grubx64.efi ← Ubuntu 的 GRUB
│ └── shimx64.efi ← 用于 Secure Boot 签名验证
├── /fedora
│ └── grubx64.efi
└── /BOOT
└── BOOTX64.EFI ← 通用 fallback 引导器(U 盘必备)
🔐 安全启动(Secure Boot)的影响(可选但重要)
- 如果启用 Secure Boot,UEFI 会验证
.efi文件是否由受信任的密钥签名。 - Windows 使用 Microsoft 密钥;Linux 发行版使用 shim + MOK(Machine Owner Key) 机制。
- 未签名的引导程序将被拒绝执行(防止恶意 rootkit)。
🆚 与传统 BIOS/MBR 启动对比
| 特性 | BIOS + MBR | UEFI + GPT + ESP |
|---|---|---|
| 启动代码位置 | MBR 前 446 字节(无文件系统) | ESP 中的 .efi 文件(FAT32) |
| 最大支持硬盘 | 2 TB | 超过 2 TB |
| 分区表 | MBR(最多 4 主分区) | GPT(理论上无限分区) |
| 安全性 | 无验证 | 支持 Secure Boot |
| 启动速度 | 较慢 | 更快(模块化、驱动预加载) |
✅ 总结:UEFI 使用 EFI 的核心流程
UEFI 固件 → 扫描 ESP → 读取 NVRAM 启动项 → 加载 .efi 引导程序 → 启动操作系统
整个过程基于文件系统(而非扇区偏移),因此更可靠、可维护、可扩展。
如果你正在调试启动问题、制作启动盘,或想手动修复引导,可以进一步了解:
- 如何用
efibootmgr(Linux)管理启动项; - 如何用
bcdboot(Windows)重建 ESP; - 如何禁用 Secure Boot 来运行自定义引导器。