使用 efibootmgr 管理 UEFI 启动项:修复丢失的启动项
适用场景:Linux/Windows 双系统环境中 Linux 启动项从 BIOS 启动菜单消失(重装 Windows、清空 NVRAM、主板更换后)。你会学到用 efibootmgr 查看 NVRAM 启动项、定位 EFI 分区、创建/删除启动项与调整启动顺序的完整流程。
概述
UEFI(统一可扩展固件接口)已取代传统 BIOS 成为现代计算机的标准引导方式。掌握 UEFI 启动项管理技术对多系统用户至关重要。本文将详细介绍如何使用 efibootmgr 工具修复丢失的启动项,特别是在 Linux/Windows 双系统环境中。
UEFI 基础概念
- UEFI:统一可扩展固件接口,现代计算机标准固件
- CSM:兼容性支持模块,用于启动传统 MBR 设备
- 安全启动:仅支持 UEFI 启动的操作系统,Windows 7 等系统需关闭此功能
- 纯 UEFI 模式:关闭 CSM 后仅支持 UEFI 启动设备
准备工作
当 Linux 启动项丢失时,推荐使用 Linux LiveCD 环境进行修复:
- 制作 Ubuntu LiveCD 启动 U 盘(比光盘启动更快)
- 从 U 盘启动进入 LiveCD 环境
- 打开终端准备操作
查看现有启动项
$ efibootmgr
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0012,0010,0011,000F,000B,000A,0006,0007,0008,0009,000C,000D,000E
Boot0000 Setup
Boot0001 Boot Menu
# ... 更多启动项 ...
Boot000F* Windows Boot Manager
Boot0010* ubuntu
Boot0011* ubuntushim
Boot0012* opensuse-secureboot
输出说明:
BootCurrent:当前启动项Timeout:启动菜单等待时间BootOrder:启动顺序优先级- 各启动项按编号列出,星号表示有效项
定位 EFI 系统分区
$ sudo fdisk -l
设备 Start 末尾 扇区 Size 类型
/dev/sdb1 2048 206847 204800 100M EFI System # EFI系统分区
/dev/sdb2 206848 468991 262144 128M Microsoft reserved
# ... 其他分区 ...
挂载并探索 EFI 分区
$ sudo mount /dev/sdb1 /mnt/ # 挂载EFI分区
$ sudo -i # 切换root用户
$ cd /mnt/EFI # 进入EFI目录
$ ls # 查看内容
Boot Microsoft opensuse ubuntu
各目录内容概览:
- Boot/:通用启动加载程序(bootx64.efi)
- Microsoft/:Windows 启动文件
- opensuse/:openSUSE 启动文件(grub.efi, shim.efi 等)
- ubuntu/:Ubuntu 启动文件(shimx64.efi, grubx64.efi 等)
添加启动项
基本命令格式:
efibootmgr -c -w -L "描述标签" -d /dev/sdX -p Y -l \\EFI\\路径\\文件.efi
参数说明:
-c:创建新启动项-w:立即写入 NVRAM-L:启动项显示名称-d:磁盘设备(如 /dev/sdb)-p:EFI 分区号(通常是 1)-l:EFI 文件路径(使用双反斜杠)
实际操作示例:
efibootmgr -c -w -L "Linux Rescue" -d /dev/sdb -p 1 -l \\EFI\\opensuse\\grubx64.efi
重要注意事项
- 避免使用通用启动文件:不要添加
/EFI/Boot/bootx64.efi,此文件可能被 Windows 覆盖 - 选择正确的 EFI 文件:应使用发行版特定目录下的文件(如 /EFI/ubuntu/shimx64.efi)
- 多系统引导顺序:最后安装的系统 GRUB 通常会管理所有系统启动项
- 测试添加的启动项:重启系统验证启动项是否正常工作
管理启动项
删除启动项
efibootmgr -b 0013 -B # 删除编号0013的启动项
调整启动顺序
efibootmgr -o 0012,0010,0011,000F # 设置启动顺序
设置超时时间
efibootmgr -t 5 # 设置5秒超时
验证与自查
efibootmgr输出中包含新添加的启动项编号,且带*星号(有效项)BootOrder第一项就是你想默认启动的系统编号- 重启后 BIOS 启动菜单/GRUB 界面出现对应系统,可正常进入
- 操作前先
efibootmgr -v记录原有启动项,便于出错时恢复
总结
efibootmgr 是管理 UEFI 启动项的强大命令行工具,特别适合解决双系统启动项丢失问题。通过本文介绍的方法,您可以有效修复启动问题,维护多系统引导环境的稳定性。
提示:操作前请确保备份重要数据,修改启动项有一定风险,建议在了解各参数含义后再进行生产环境操作。