更新:

更新:

当我运行efibootmgr命令时:

efibootmgr --create --disk /dev/sdb --part 1 --loader /EFI/syslinux/syslinux.efi --label "Syslinux" --unicode

我收到此错误:

EFI variables are not supported on this system.

当我尝试加载模块时efivarfs,出现以下错误:

modprobe efivarfs
modprobe: ERROR: could not insert 'efivarfs': No such device

我正在使用自编译内核,并且我确实有efivarfs支持:

CONFIG_EFIVAR_FS=m

那么为什么我无法加载模块呢?

我在 Debian 12 上使用内核 6.1.45

更新:

我刚刚在 Debian Live-CD 启动系统上进行了测试,得到了同样的错误:

modprobe efivarfs 
modprobe: ERROR: could not insert 'efivarfs': No such device

答案1

如果您在传统 BIOS 兼容模式下启动,则固件无法使 UEFI 运行时服务可供运行的操作系统使用,因此无法操作 UEFI 变量。在这种情况下,Linux 内核根本不会显示/sys/firmware/efi/目录,因此efivarfs无法安装,因为内核模块无法与固件的 UEFI 运行时服务进行通信。

大多数现代安装和 Live-CD 都可以在传统模式和 UEFI 模式下启动,因此您必须非常小心地从外部媒体启动在 UEFI 模式下如果您的系统启用了 BIOS 兼容性支持模块 (CSM) 模块。

系统固件的编写者可以决定系统是喜欢传统引导还是 UEFI 式引导,或者在 BIOS 设置中选择它。不幸的是,这些设置的用户界面并未标准化——每个供应商的做法可能有所不同。

一般来说,当开始在新计算机上安装第一个操作系统时,您应该决定是使用 UEFI 还是旧版 BIOS,如果可能的话,调整 BIOS 设置以仅允许该启动模式。完全排除“错误”的启动模式,更容易避免错误。

相关内容