如何知道我是否使用 UEFI 启动?

如何知道我是否使用 UEFI 启动?

我正在搜索,但没有找到明显的方法来了解 GRUB 在系统引导中是否使用 UEFI、BIOS 兼容模式或完整的 BIOS。我只找到了Windows 方法。 GRUB 或内核启动日志中是否有某些内容显示我使用的是 UEFI、EFI 还是 BIOS?

答案1

第一种方法:

好的,我启动了 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)


第二种方法:

$ 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。

答案2

如果您使用 UEFI 固件而不是 BIOS 固件启动,那么您的系统应该使 EFI NVRAM 变量在以下位置可用:

/sys/firmware/efi/vars/

或者

/sys/firmware/efi/efivars/

当使用 BIOS(或 UEFI 固件的 BIOS 模拟模式)启动时,这些变量不可用。

事实上,正如@Santropedro 指出的那样,路径

/sys/firmware/efi

使用BIOS启动时丢失,更容易检查。

相关内容