如何判断已运行的Ubuntu 22.04云服务器是BIOS还是UEFI启动?

可以通过以下几种方法判断正在运行的 Ubuntu 22.04 云服务器的启动方式:

方法一:检查 /sys/firmware/efi 目录(最直接)

ls /sys/firmware/efi
  • 如果有输出(目录存在且包含文件)→ UEFI 启动
  • 如果提示 "No such file or directory"BIOS(Legacy)启动

方法二:使用 efibootmgr 命令

sudo efibootmgr
  • 如果显示 UEFI 启动项信息UEFI 启动
  • 如果提示 "EFI variables are not supported" 或命令不存在 → BIOS 启动

方法三:检查 /proc/version 中的 EFI 支持

dmesg | grep -i "efi"

grep -q "EFI v" /proc/version && echo "UEFI" || echo "BIOS"

方法四:查看启动设备信息

sudo fdisk -l

查看磁盘分区表类型:

  • GPT 分区表 → 通常是 UEFI 启动(但不是绝对)
  • MBR 分区表 → 通常是 BIOS 启动

方法五:使用 bootctl 命令

bootctl status
  • 如果显示系统固件信息,包括 "Firmware: UEFI" → UEFI 启动

方法六:检查 /etc/fstab 中的 EFI 分区

grep -i efi /etc/fstab
  • 如果找到 EFI 系统分区(ESP)的挂载点(通常是 /boot/efi)→ UEFI 启动

云服务器特殊情况说明

对于云服务器(AWS、Azure、GCP等):

  1. 大多数现代云服务器默认使用 UEFI,特别是较新的实例类型
  2. 某些云平台可能同时支持两种模式,取决于镜像配置
  3. 虚拟化环境有时会模拟 UEFI,即使物理硬件是 BIOS

快速判断脚本

#!/bin/bash
if [ -d /sys/firmware/efi ]; then
    echo "启动方式: UEFI"
else
    echo "启动方式: BIOS (Legacy)"
fi

推荐使用方法一,这是最可靠和直接的方法。对于 Ubuntu 22.04 云服务器,大多数情况下会是 UEFI 启动,除非特别配置为传统 BIOS 模式。

云服务器