跳转至

UEFI引导启动项管理

efibootmgr(EFI Boot Manager)是一个用于管理操作系统启动项的命令行工具。它允许用户在 UEFI 引导启动的系统上创建、删除、编辑和重新排序启动项。efibootmgr 使用户能够在 用户态环境 下轻松管理多个操作系统的启动顺序、添加新的启动项或修改现有启动项的配置,而无需进入 BIOS 进行设置。

1. 确保系统以 UEFI 模式启动

在开始使用 efibootmgr 之前,请确保系统是由 UEFI 模式引导启动。通过以下命令检查系统是否以 UEFI 模式启动:

ls /sys/firmware/efi

如果命令返回 EFI 相关的文件和目录,则表示系统已经以 UEFI 模式启动。

2. 安装 efibootmgr

在开始使用 efibootmgr 之前,确保已经在系统上安装了它。如果尚未安装,请通过以下命令进行安装:

sudo dnf install efibootmgr

接下来,就可以使用 efibootmgr 命令对 UEFI 启动项进行管理。以下将对常见操作进行详细说明。

3. efibootmgr 常见命令说明

3.1 显示当前启动项

要查看当前系统的启动项列表,可以使用以下命令:

sudo efibootmgr

这将显示类似以下内容的输出:

BootCurrent: 0005
Timeout: 3 seconds
BootOrder: 0005,0002,0000,0001,0003,0004
Boot0000* UiApp
Boot0001* UEFI Misc Device
Boot0002* UEFI Misc Device 2
Boot0003* UEFI Non-Block Boot Device
Boot0004* EFI Internal Shell
Boot0005* OpenCloudOS

3.2 创建新的启动项

要创建新的启动项,请使用以下命令格式:

sudo efibootmgr -c -d /dev/sdX -p Y -L "Label" -l "\EFI\path\to\bootloader.efi"
  • -c:创建新的启动项
  • -d:指定磁盘设备(例如:/dev/sda
  • -p:指定分区号(例如:1
  • -L:为新启动项指定标签
  • -l:指定启动加载程序的路径

例如,要在 /dev/sda1 分区上创建一个名为 "OpenCloudOS" 的新启动项,使用以下命令:

sudo efibootmgr -c -d /dev/sda -p 1 -L "OpenCloudOS" -l "\EFI\opencloudos\grubx64.efi"

3.3 修改启动项

要修改现有启动项,可以使用以下命令格式:

sudo efibootmgr -b XXXX -u -d /dev/sdX -p Y -L "New Label" -l "\EFI\new\path\to\bootloader.efi"
  • -b:指定要修改的启动项的编号(例如:0001
  • -u:更新现有启动项
  • 其他选项与创建新启动项时相同

例如,要修改启动项 0001 的标签和加载程序路径,请使用以下命令:

sudo efibootmgr -b 0001 -u -L "Updated Label" -l "\EFI\updated\path\to\bootloader.efi"

3.4 删除启动项

要删除现有启动项,请使用以下命令格式:

sudo efibootmgr -b XXXX -B
  • -b:指定要删除的启动项的编号(例如:0001
  • -B:删除指定的启动项

例如,要删除启动项 0001,请使用以下命令:

sudo efibootmgr -b 0001 -B

3.5 更改启动顺序

要更改启动顺序,请使用以下命令格式:

sudo efibootmgr -o XXXX,YYYY,ZZZZ
  • -o:指定新的启动顺序,使用逗号分