如何检查运行 Linux 的 EC2 实例是使用 UEFI 还是旧版 BIOS 启动的?

1 分钟阅读
0

我想检查 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 网站上的统一可扩展固件接口论坛

解决方法

  1. 使用 SSH 连接到您的 EC2 Linux 实例

  2. 要验证 /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
  3. 验证 EFI 是否出现在 dmesg 输出中:

    # dmesg | grep -i "EFI"

    以下是输出示例:

    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: EFI v2.70 by EDK II
AWS 官方
AWS 官方已更新 7 个月前