如何检查运行 Linux 的 EC2 实例使用的是 UEFI 还是 旧版 BIOS 来启动?
上次更新日期:2020 年 10 月 8 日
如何检查运行 Linux 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例使用的是 UEFI 还是旧版 BIOS 来启动?
简短描述
统一可扩展固件接口 (UEFI) 是一种为取代旧版 BIOS 固件而开发的固件规范。UEFI 固件可运行特殊的 EFI 二进制文件,其扩展名为 .efi,用以加载 Boot Loader 或操作系统。EC2 实例传统上使用的是旧版 BIOS 模式来启动。但是,基于 ARM 的 EC2 实例 (a1、c6g、m6g 和 r6g) 则使用的是较新的 UEFI 固件来启动。
有关 UEFI 的更多信息,请参阅 uefi.org 网站上的Unified Extensible Firmware Interface Forum 。
解决方案
2. 运行以下命令来验证/sys/firmware/efi目录是否存在。仅当实例使用 UEFI 启动时,此目录才会存在。如果此目录不存在,该命令将返回Legacy BIOS Boot Detected。
# [ -d /sys/firmware/efi ] && echo "UEFI Boot Detected" || echo "Legacy BIOS Boot Detected"
来自 m6g 实例的示例输出:
# [ -d /sys/firmware/efi ] && echo "UEFI Boot Detected" || echo "Legacy BIOS Boot Detected"
UEFI Boot Detected
来自非 ARM 实例的示例输出,例如 t2/t3/m4/m5 实例:
# [ -d /sys/firmware/efi ] && echo "UEFI Boot Detected" || echo "Legacy BIOS Boot Detected"
Legacy BIOS Boot Detected
3. 运行以下命令以验证 EFI 是否出现在dmesg输出中:
# dmesg | grep -i "EFI"
示例输出:
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: EFI v2.70 by EDK II