我正在尝试设置 UEFI 启动系统,并且已经完成了各种奇妙的事情,只是我不知道如何启动 UEFI shell。efibootmgr 对我来说不起作用,所以我需要运行 bcfg,为此我需要启动 UEFI shell。我在 efi 分区中有该文件,但我不知道如何运行它。这里有人知道吗?
答案1
一些 EFI 的用户界面提供了启动 EFI shell 的选项,该 shell 要么内置于固件中,要么存储在 ESP 上,通常位于根目录中shellx64.efi
。不过,这远非通用,并且该选项的具体名称因 EFI 而异。
最普遍有效的方法是准备一个 USB 闪存驱动器,并将 shell 二进制文件存储为EFI/BOOT/bootx64.efi
。闪存驱动器必须使用 FAT,您可能需要将分区类型代码设置为 ESP(设置为 EF00gdisk
或在基于 libparted 的程序中设置“启动标志”)。当您使用 EFI 的内置启动管理器从 USB 闪存驱动器启动时,shell 将启动。
大多数启动管理器也提供了一些方法来完成这项工作。在 GRUB 中,您可以为 shell 创建一个条目,就像为其他启动加载程序创建一个条目一样。(如果 shell 二进制文件位于某些位置,GRUB 配置脚本应该会自动检测它;或者您可以创建一个条目/etc/grub.d/40_custom
来完成这项工作。)如果 shell 存储在某些位置,rEFIt、rEFInd 和 gummiboot 都会自动检测 shell 并为其创建一个条目。如果我没记错的话,shellx64.efi
ESP 的根目录适用于这三个启动管理器。
答案2
通常,bios 会在某处有一个选项来运行它,但您也应该能够使用 grub 命令行(在 grub 菜单上按 c )和命令chainloader
来运行它。