我想检查 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例是从 UEFI 还是旧版 BIOS 启动的。
简短描述
统一可扩展固件接口(UEFI)是一种固件规范。它是旧版 BIOS 固件的较新替代品。UEFI 固件运行扩展名为 .efi 的特殊 EFI 二进制文件,用于加载启动加载程序或操作系统。传统上,EC2 实例使用旧版 BIOS 模式启动。但是,基于 ARM 的 EC2 实例(a1、c6g、m6g 和 r6g)使用较新的 UEFI 固件启动。
有关 UEFI 的详细信息,请参阅 UEFI 网站上的统一可扩展固件接口论坛。
解决方法
-
使用 SSH 连接到您的 EC2 Linux 实例。
-
要验证 /sys/firmware/efi 目录是否存在,请运行下列命令。只有当实例使用 UEFI 启动时,此目录才存在。如果此目录不存在,则命令将返回检测到旧版 BIOS 启动:
# [ -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
-
验证 EFI 是否出现在 dmesg 输出中:
# dmesg | grep -i "EFI"
以下是输出示例:
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: EFI v2.70 by EDK II