你可以通过以下几种方法来判断Ubuntu 22.04是运行在UEFI还是Legacy(BIOS)模式下:
方法1:检查 /sys/firmware/efi 目录(最可靠)
ls /sys/firmware/efi
- 如果目录存在 → UEFI模式
- 如果提示"No such file or directory" → Legacy BIOS模式
方法2:使用 efibootmgr 命令
sudo efibootmgr
- 如果显示EFI变量信息 → UEFI模式
- 如果显示"EFI variables are not supported" → Legacy BIOS模式
方法3:检查 /proc/mounts 中的ESP分区
grep -i efi /proc/mounts
- 如果显示EFI系统分区(ESP)的挂载点 → UEFI模式
方法4:使用 bootctl 命令(systemd工具)
bootctl status
查看输出中的"Firmware"部分:
- "UEFI" → UEFI模式
- "BIOS" → Legacy模式
方法5:检查磁盘分区表
sudo parted -l | grep "Partition Table"
- GPT分区表 → 通常是UEFI模式(但Legacy也可以使用GPT)
- MBR分区表 → 通常是Legacy模式(但UEFI也可以使用MBR,不推荐)
方法6:查看dmesg日志
dmesg | grep -i "efi|uefi"
- 如果有EFI/UEFI相关日志 → UEFI模式
快速判断脚本
创建一个简单的判断脚本:
#!/bin/bash
if [ -d /sys/firmware/efi ]; then
echo "系统运行在 UEFI 模式下"
else
echo "系统运行在 Legacy BIOS 模式下"
fi
注意事项
- 大多数方法需要管理员权限(使用
sudo) - 最可靠的方法是检查
/sys/firmware/efi目录是否存在 - 某些系统可能同时支持两种模式,实际启动模式取决于安装时的选择
推荐使用第一种方法,因为它最简单直接且最可靠。
CLOUD技术笔记