web-dev-qa-db-ja.com

UEFIを使用して起動しているかどうかを知る方法は?

私は探していましたが、GRUBがシステムブートでUEFIを使用しているか、BIOS互換モードであるか、完全なBIOSであるかを確認する明確な方法が見つかりませんでした。 Windowsメソッド 。GRUBまたはカーネルブートログに、UEFI、EFIまたはBIOSを使用しているかどうかを示す何かがありますか?

56
Braiam

BIOSファームウェアを使用するのではなく、UEFIファームウェアを使用して起動した場合、システムはEFI NVRAM変数を次の場所で使用できるようにする必要があります。

/sys/firmware/efi/vars/

または

/sys/firmware/efi/efivars/

BIOS(またはUEFIファームウェアのBIOSエミュレーションモード)を使用して起動する場合、これらの変数は使用できません。

実際、@ Santropedroが指摘したように、パス

/sys/firmware/efi

bIOSを使用して起動すると、が欠落しているため、確認が容易です。

36
garethTheRed

最初の方法:

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を使用していない可能性が高いです。

43
derobert