补充说明
efibootmgr 读写主板 NVRAM 中的 UEFI 启动变量,用于查看、创建、删除启动项以及调整 BootOrder。它只在以 UEFI 模式启动的系统上有效,传统 BIOS 环境无法使用。
属于 efibootmgr 包(Debian/RHEL 同名),依赖内核 efivarfs 文件系统(通常挂载在 /sys/firmware/efi/efivars)。典型场景:安装多系统后调整默认启动项、删除失效条目、设置下次启动进入固件界面。
注意:错误的操作可能使系统无法启动,修改前记录当前配置(efibootmgr -v)。某些主板固件会重置 NVRAM 或限制写入,容器和沙箱内不可用。删除启动项用 -b 编号 -B,设置顺序用 -o。
编号是十六进制四位数字,顺序列表用逗号分隔。创建启动项时,EFI 程序路径使用反斜杠,并确保对应分区是 ESP(通常 FAT32)。
语法
efibootmgr [选项]
选项
-v:显示详细信息,含设备路径;-b 编号:指定启动项编号(如0001);-B:删除指定启动项(配合-b);-c:创建新启动项(配合-d、-p、-L、-l);-d 磁盘:指定磁盘(如/dev/sda);-p 分区号:指定分区;-l 加载器:EFI 程序路径(如\EFI\debian\grubx64.efi);-L 标签:启动项显示名称;-o 顺序:设置启动顺序,如0003,0001;-n 编号:设置下次启动项;-t 秒:设置固件启动菜单超时。
实例
# 查看所有启动项
sudo efibootmgr -v
# 把 Boot0003 设为默认(启动顺序首位)
sudo efibootmgr -o 0003,0001,0002
# 删除失效的启动项 0005
sudo efibootmgr -b 0005 -B
# 创建指向 Debian GRUB 的启动项
sudo efibootmgr -c -d /dev/sda -p 1 -L "Debian" -l '\EFI\debian\grubx64.efi'
# 下次启动进入固件设置
sudo efibootmgr -n 0000