如何解决“此系统不支持 EFI 变量”的问题?

如何解决“此系统不支持 EFI 变量”的问题?

如何解决“此系统不支持 EFI 变量”问题?

sudo efibootmgr -v
EFI variables are not supported on this system.

Debian11以UEFI模式安装,但启动阶段出现问题,系统总是启动到Legacy BIOS模式。(尽管在启动菜单中设置了UEFI模式)

编辑:blkid 输出

sudo blkid
/dev/sda1: LABEL_FATBOOT="BOOT" LABEL="BOOT" UUID="2F1D-01E6" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="c906677e-c2c2-42b5-b818-f0b19c046e95"
/dev/sda2: LABEL="swap" UUID="1274a782-676a-41b0-8509-92f73bd675c3" TYPE="swap" PARTUUID="4a555697-e713-400d-ae9e-613d028c7893"
/dev/sda3: LABEL="root" UUID="13503165-9c5f-498d-ab5f-0c13f11cbaa6" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5484dedd-6adf-45af-b7b0-ba105d14528b"
/dev/sda4: LABEL="home" UUID="93c98828-5fb8-4c0e-b6bf-de8d13a9d22e" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ae15bbdb-4e29-4dfa-aa99-b39e5377a098"

答案1

看来您的系统更喜欢旧版引导加载程序(如果可以找到的话)。

如果是这样,并且无法在 BIOS 设置中更改此首选项,那么答案可能是主动销毁已放入系统磁盘的块 #0 中的旧引导代码。

假设您的系统磁盘是/dev/sda,这应该可以做到:

dd if=/dev/zero of=/dev/sda bs=446 count=1

这应该会导致/dev/sda在传统 BIOS 意义上无法启动,只留下 UEFI 启动加载程序(如果磁盘上存在的话)。

如果系统完全启动失败,您可能需要从外部介质启动,例如在救援模式下从 Debian 11 安装介质启动。当你这样做时,确保您也选择以 UEFI 模式启动外部媒体。如果外部介质在传统模式下启动,则 UEFI 固件设置的运行时界面将被禁用,并且 UEFI 引导加载程序安装过程将失败。

如果您需要重新安装 UEFI 版本的 GRUB 引导加载程序,您可能需要在 chroot 进入已安装的系统时使用如下命令行:

grub-install --force-extra-removable --target=x86_64-efi /dev/sda

如果您的系统应该使用安全启动,请添加该--uefi-secure-boot选项。

--force-extra-removable选项设置引导加载程序的额外副本,该副本/boot/efi/EFI/BOOT/BOOTX64.EFI通常在 UEFI 可引导可移动磁盘上使用,如果您的系统存在错误的 UEFI 实现,该选项可能会有所帮助。

可移动媒体引导加载程序位置也可以在不访问 UEFI 固件设置的情况下进行设置,因此理论上,即使救援引导实际上已在传统模式下启动,它也应该成功。如果这允许您使系统在 UEFI 模式下从其自己的磁盘引导,efibootmgr那么一旦系统在 UEFI 模式下运行,您应该能够尝试并完成 UEFI 引导加载程序注册过程。

相关内容