我正在搜索,但没有找到明显的方法来了解 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启动时丢失,更容易检查。