私は探していましたが、GRUBがシステムブートでUEFIを使用しているか、BIOS互換モードであるか、完全なBIOSであるかを確認する明確な方法が見つかりませんでした。 Windowsメソッド 。GRUBまたはカーネルブートログに、UEFI、EFIまたはBIOSを使用しているかどうかを示す何かがありますか?
BIOSファームウェアを使用するのではなく、UEFIファームウェアを使用して起動した場合、システムはEFI NVRAM変数を次の場所で使用できるようにする必要があります。
/sys/firmware/efi/vars/
または
/sys/firmware/efi/efivars/
BIOS(またはUEFIファームウェアのBIOSエミュレーションモード)を使用して起動する場合、これらの変数は使用できません。
実際、@ Santropedroが指摘したように、パス
/sys/firmware/efi
bIOSを使用して起動すると、が欠落しているため、確認が容易です。
最初の方法:
OK、チェックするためにUEFIボックスを起動しました。最初の手がかり、dmesg
の上部付近。 BIOS経由で起動した場合、これは表示されません。
[ 0.000000] efi: EFI v2.31 by American Megatrends
[ 0.000000] efi: ACPI=0xd8769000 ACPI 2.0=0xd8769000 SMBIOS=0xd96d4a98
[ 0.000000] efi: mem00: type=6, attr=0x800000000000000f, range=[0x0000000000000000-0x0000000000001000) (0MB)
⋮
2番目の方法:
$ Sudo efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* debian
そうでない場合は、次のように表示されます。
$ Sudo efibootmgr
EFI variables are not supported on this system.
Efibootmgrパッケージをインストールする必要があることに注意してください。 EFI変数をリストすることもできます:
$ efivar -l
... over 100 lines of output ...
番目の方法:
/boot/efi
:
$ df -h --local | grep /boot
/dev/sda2 229M 31M 187M 14% /boot
/dev/sda1 120M 250K 119M 1% /boot/efi
そのパーティション内には、UEFIが起動するために実行するファイルがあります。
これらの方法のいずれかを使用すると、関連するエントリが表示されない場合は、UEFIを使用していない可能性が高いです。