可以通过以下几种方法判断正在运行的 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等):
- 大多数现代云服务器默认使用 UEFI,特别是较新的实例类型
- 某些云平台可能同时支持两种模式,取决于镜像配置
- 虚拟化环境有时会模拟 UEFI,即使物理硬件是 BIOS
快速判断脚本
#!/bin/bash
if [ -d /sys/firmware/efi ]; then
echo "启动方式: UEFI"
else
echo "启动方式: BIOS (Legacy)"
fi
推荐使用方法一,这是最可靠和直接的方法。对于 Ubuntu 22.04 云服务器,大多数情况下会是 UEFI 启动,除非特别配置为传统 BIOS 模式。
CLOUD技术笔记