如何在我的主板上注册 debian uefi 文件?

Cra*_*Man 3 debian uefi

我将带有 debian 安装的磁盘移到另一台计算机上,但它无法启动。使用 systemrescuecd 我挂载了我的 uefi 分区(512 MB,vfat 文件系统,有 EFI 目录)并且做了cd /mnt/sda1 && mkdir BOOT && cp debian/grubx64.efi BOOT/bootx64.efi,并且它启动得很好。(在Askubuntu得到了建议)现在我如何在我的系统中注册debian/grubx64.efi文件,以便我可以摆脱BOOT/bootx64.efi

cas*_*cas 6

您可以efibootmgr在 Linux 上列出和操作 EFI 引导条目。

手动成功启动系统后,请确保efibootmgr已安装:

apt-get install efibootmgr
Run Code Online (Sandbox Code Playgroud)

然后确保efivars伪文件系统挂载为 RW:

mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars
Run Code Online (Sandbox Code Playgroud)

如果该命令失败,或者如果运行efibootmgr导致出现类似消息,EFI variables are not supported on this system.则说明您没有在 EFI 模式下启动。重新启动并重试。

最后,添加debian/grubx64.efi到 EFI 引导列表并使其成为默认值:

efibootmgr -c -p 1 -d /dev/sda -L "GRUB" -l '\efi\debian\grubx64.efi'
Run Code Online (Sandbox Code Playgroud)

-p 1-d /dev/sda选项指定包含在其中创建BOOT子目录EFI系统分区的分区和块设备。 -L是正在创建的条目的标签,并且-l是引导加载程序的路径。

您可以使用 删除不需要的条目efibootmgr -b <boot-entry> -B

您可以获得当前 EFI 引导条目的详细列表efibootmgr -v

详情请参阅man efibootmgr。我建议运行上述任何命令之前仔细阅读并使用谷歌搜索或在此处要求澄清。