启动项(Boot Options)可以认为是Boot Loaders,每个平台默认的启动文件如下所示:在ESP目录下一般有
路径 | 说明 |
---|---|
EFI/BOOT/bootx64.efi |
x86_64 平台默认启动文件 |
EFI/BOOT/bootia32.efi |
IA32(32位 x86)平台默认启动文件 |
EFI/BOOT/bootaa64.efi |
ARM64(AArch64)平台默认启动文件 |
EFI/BOOT/bootriscv64.efi |
RISC-V 平台的默认启动文件 |
这是当没有 BootOrder 配置或找不到指定项时,UEFI 固件会尝试查找的默认文件路径。
注:ESP(EFI System Partition,EFI系统分区)是一种特殊的分区,用于存储启动时必要的系统文件和引导加载器,以支持系统的启动和运行。
顺位如下:
[UEFI 固件]
│
├─ 初始化硬件、运行 SEC/PEI/DXE/BDS
│
└─> 加载启动项
├─ BOOTX64.efi
├─ Windows: bootmgfw.efi → winload.efi → ntoskrnl.exe
└─ Linux: GRUB → vmlinuz + initrd → Linux内核
在 UEFI 启动流程中,BOOTX64.EFI
是操作系统加载的"第一步入口"。
BOOTX64.efi由操作系统厂商制作
它的主要作用是:
- 从 UEFI 固件中被加载并执行;
- 初始化必要的环境(内存映像、设备映射、配置参数);
- 然后加载真正的操作系统内核 (如 Windows 的
ntoskrnl.exe
,Linux 的vmlinuz
等)。
比如说,在Ubuntu官网下载一个Ubuntu2204的iso文件:
右键装载之后可以看到里面的文件目录:
进入这个EFI目录下
再进入boot文件夹中,就可以看到存在的bootx64.efi
文件了
项目 | 说明 |
---|---|
是否为 OS 一部分? | 是,BOOTX64.EFI 是 OS 厂商(如微软、Linux 发行版)提供的程序。 |
由谁加载? | 由 UEFI 固件(BIOS)通过 BootOrder 或硬编码路径加载。 |
是否加载内核? | 不直接加载内核,但通常会加载下一个 loader(如 winload.efi 或 GRUB)。 |
是否为内核? | ❌ 不是内核,是"内核的启动引导者"。 |
这个文件通常是操作系统提供的
- Windows:Windows Boot Manager (
bootmgfw.efi
) 会重命名/复制为bootx64.efi
。 - Linux:GRUB、systemd-boot 等引导器也可以放成
bootx64.efi
。 - 是 操作系统厂商提供的 UEFI 可执行文件。
不同操作系统的boot loader
实际上,Ubuntu/CentOS 默认不使用 bootx64.efi
,而是默认使用自己路径下的 shimx64.efi
或 grubx64.efi
,bootx64.efi
常用于安装镜像、U盘或 BIOS fallback。
启动项名称 | 文件路径示例 | 说明 |
---|---|---|
Windows Boot Manager | \EFI\Microsoft\Boot\bootmgfw.efi |
Windows 的标准启动项 |
Ubuntu | \EFI\ubuntu\grubx64.efi |
Ubuntu GRUB 启动器 |
CentOS | \EFI\centos\shimx64.efi → grubx64.efi |
含 shim 安全引导的 GRUB |
Fedora | \EFI\fedora\shimx64.efi |
Fedora 启动项 |
Arch Linux | \EFI\Boot\bootx64.efi 或自定义 |
Arch 用户自定义常见 |
以上都是硬编码路径,实际上使用的更多的是利用UEFI来管理启动项。也就是通过NVRAM 注册的启动项。
-
开机时按 BIOS 热键 (常见的是
DEL
、F2
、F10
、ESC
) -
进入 BIOS/UEFI Setup 界面后,找到:
Boot
标签页Boot Options
/Boot Priority
/Boot Manager
-
你可以看到类似这样的启动项列表:
Boot Option #1: Windows Boot Manager Boot Option #2: Ubuntu Boot Option #3: UEFI: USB Disk, Partition 1`
-
有的 BIOS 支持 "Add New Boot Option",你可以手动指定:
- 名字(如 "My Linux")
- 路径(例如:
\EFI\centos\shimx64.efi
)
也就是bootx164.efi可以作为系统启动的兜底选项,平时各个操作系统都有自己的引导程序。
Tips:
Linux下使用命令:efibootmgr -v,可以查看自己的启动项