如何判断已安装的Ubuntu 22.04是运行在UEFI还是Legacy模式下?

你可以通过以下几种方法来判断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

注意事项

  1. 大多数方法需要管理员权限(使用sudo
  2. 最可靠的方法是检查/sys/firmware/efi目录是否存在
  3. 某些系统可能同时支持两种模式,实际启动模式取决于安装时的选择

推荐使用第一种方法,因为它最简单直接且最可靠。

云服务器