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設定を調整します。「間違った」ブートモードを完全に排除することでエラーを防ぐのは簡単です。