UEFI引导项管理核心是清理NVRAM中冗余BootXXXX条目,而非删文件;需用efibootmgr或bcdedit精准删除无效项,避免误删当前BootCurrent对应条目。

服务器 BIOS/UEFI 的引导项管理,核心在于区分两种模式:传统 BIOS(Legacy)依赖 MBR + 启动扇区,而现代服务器普遍使用 UEFI 模式,靠 NVRAM 中的 BootXXXX 条目 + ESP 分区里的 .efi 文件协同工作。无效引导项不会影响系统运行,但会拖慢开机自检(POST)、干扰启动顺序、甚至导致误选失败项而卡住。清理关键不是“删文件”,而是精准定位并移除固件层登记的冗余条目。
看懂 efibootmgr 输出结构(Linux 服务器适用)
在支持 UEFI 的 Linux 服务器上,执行 efibootmgr -v 可查看完整引导配置:
- BootCurrent: 0003 —— 当前实际用于启动的条目编号,必须优先核对它是否指向你正在运行的系统
- BootOrder: 0003,0002,0001 —— 开机时按此顺序尝试引导,排第一的失败才会试下一个
- Boot0003* Windows Boot Manager —— 星号(*)表示该条目当前有效;无星号可能已损坏或路径失效
- HD(1,GPT,927ac4f7,...)/File(\EFI\Microsoft\Boot\bootmgfw.efi) —— 真实设备路径:GPT 分区 UUID 和 EFI 可执行文件位置,需与当前 ESP 分区匹配
识别哪些条目该删(三类典型冗余)
不用猜,直接比对即可判断:
- 指向已移除设备的条目:比如 HD() 中的 PARTUUID 在 blkid | grep efi 输出里完全找不到对应分区
- 重复 OS 名称但不同路径:如出现两个 “Ubuntu” 条目,其中一个 File() 路径指向 /EFI/ubuntu/grubx64.efi,另一个指向 /EFI/ubuntu/shimx64.efi —— 若后者不再使用,可删
- 描述含 USB/CD/Shell/PE 的条目:例如 “Boot000A* UEFI: USB Flash Drive” 或 “Boot000B* EFI Shell”,这类多为临时调试或安装介质遗留,服务器环境通常无需保留
安全删除操作(分步不跳过)
删除前务必先备份:efibootmgr -v > /root/efi-backup-$(date +%F).txt
- 确认目标编号(如 Boot000A),执行:efibootmgr -b 000A -B(-b 指定编号,-B 表示删除)
- 删除后立即执行 efibootmgr 查看 BootOrder 是否更新,确保 BootCurrent 仍有效
- 若删错导致无法启动,可用 Live USB 进入救援模式,用 efibootmgr -o 重设 BootOrder,或用 efibootmgr -c 重建新条目
Windows 服务器:用 bcdedit 清理固件级条目
适用于 Windows Server 2016 及以上(UEFI 模式):
- 以管理员身份打开 PowerShell 或 CMD,运行:bcdedit /enum firmware
- 查找 description 字段为 “Ubuntu”、“CentOS”、“Windows PE”、“Unknown” 或已卸载系统的条目,记下其 identifier(形如 {a1b2...})
- 执行:bcdedit /delete {a1b2...} /f(/f 是强制参数,缺了不生效)
- 再运行一次 bcdedit /enum firmware,确认输出中已无该 identifier
不复杂但容易忽略:UEFI 引导项是写在主板 NVRAM 里的,和硬盘无关;删完后无需重启才能生效,但下次开机才会体现新顺序。真正要小心的,是别把当前 BootCurrent 对应的条目误删。


















