vSphere环境ubuntu24.04虚拟机从BIOS切换为EFI模式启动

文章目录

一、操作背景

公司虚拟化平台vsphere上新建一台大模型服务器,操作系统是ubuntu24.04版本,BIOS启动方式。ESXI上正在配置直通显卡,需要EFI,这与现有的BIOS冲突,因此需要将BIOS改为EFI。

二、操作步骤

注意事项:

撰写本文时,笔者已将BIOS改为EFI,因此图片的各项配置是最终结果。如果想模仿本文操作,您主机的部分配置显示信息与笔者不同,是正常的,只需要确认最后正常修改为EFI即可。

1.配置本地镜像仓库(可选)

笔者的工作场景,无法直接从外网的镜像源地址下载对应的软件包,因此需要把ISO镜像挂载到当前主机,如果apt下载没有问题的,可以忽略此步。

首先打开vsphere找到对应的主机,添加CD设备,勾好各选项后,找到上传好的ISO镜像文件。

一般来讲,新加的镜像文件是 /dev/sr0

这里 笔者的镜像文件是 /dev/sr1

我只是临时使用镜像源,因此不配置开机自动挂载。

bash 复制代码
mount /dev/sr1 /mnt

最终的挂载情况如上图显示,接着修改apt配置文件。

进入到 /etc/apt/sources.list.d/ 目录,备份ubuntu.sources 为 ubuntu.sources.bak ,然后对源配置文件进行修改,结果如下。

如果挂载目录和笔者一样都是 /mnt 那么ubuntu.sources文件直接复制就好,不需要任何修改;如果不一样,只需要改URIs这个参数就好。

最后更新软件包列表

bash 复制代码
apt update

到此为止,本地镜像仓库配置完成。

2.确认当前分区是gpt分区

使用命令查看当前系统根分区/ 是否是gpt分区,如果是mbr分区,需要转化为gpt

bash 复制代码
fdisk -l /dev/sda

如果是mbr分区,需要首先安装gdisk工具

bash 复制代码
apt install gdisk

接着转换格式硬盘

bash 复制代码
gdisk /dev/sda

接着按照提示,选择 r 恢复和变换菜单;选择g进行转换。

此处具体操作不作赘述,如果不清楚,可以查找其他线上资料。

3.创建EFI分区

同样的,先创建一个512M硬盘,精简置备。

根据2.2的第二张图片,笔者的新块存储设备名称是 sdc ,文件的绝对路径是/dev/sdc 因此对其创建分区。

bash 复制代码
fdisk /dev/sdc

磁盘分区的具体操作,此处笔者不作具体赘述,若不清楚,可参考笔者的另一篇文章。

Linux磁盘分区和管理

将512M全部空间分配给 /dev/sdc1

格式化操作

bash 复制代码
mkfs.fat -F32 /dev/sdc1

新建目录 /boot/efi

bash 复制代码
mkdir /boot/efi

设置为永久挂载模式

在 /etc/fstab 文件添加一行内容如下

bash 复制代码
/dev/sdc1 /boot/efi vfat defaults 0 1

最后使挂载生效。

bash 复制代码
mount -a

4.安装和修改GRUB

安装GRUB引导程序,指向EFI分区

bash 复制代码
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu

执行这个命令后,有可能会报错。

报错大概如下:

bash 复制代码
grub-install:error   /usr/lib/grub/x86_64-rfi/modinfo.sh doesn't exist. 

看报错是缺少什么文件,实际上就是 GRUB EFI 的相关软件包未安装

所以直接装上就好。

bash 复制代码
apt install grub-efi-amd64

然后重新跑一下第一个命令。

最后重新生成gurb配置文件。

bash 复制代码
update-grub

5.重启配置生效

首先虚拟机关机。

然后打开vsphere控制台,找到主机,将BIOS改为EFI,保存退出。

重启开机后,需要等待一段时间,能够正常开机并且经过下面的验证,表示已从BIOS切换为EFI模式。

三、验证EFI模式

方法 1:检查 /sys/firmware/efi 目录

bash 复制代码
ls /sys/firmware/efi

判断结果:

目录存在(显示文件列表)→ EFI/UEFI 模式

目录不存在(报错 No such file or directory)→ Legacy BIOS 模式

方法 2:检查 dmesg 启动日志

bash 复制代码
dmesg | grep -i "efi\|bios"

判断结果:

出现 EFI v 或 UEFI → UEFI 模式

出现 BIOS 或无 EFI 字样 → Legacy BIOS 模式

方法 3:使用 efibootmgr(仅 UEFI 有效)

bash 复制代码
efibootmgr

判断结果:

显示 UEFI 启动项列表 → UEFI 模式

报错 EFI variables are not supported → BIOS 模式

方法 4:检查磁盘分区表

bash 复制代码
parted -l | grep "Partition Table"

判断结果:

Partition Table: gpt → 通常是 UEFI 模式(GPT 分区表)

Partition Table: msdos → 通常是 BIOS 模式(MBR 分区表)

⚠️ 注意:磁盘分区表(GPT/MBR)和启动模式(UEFI/BIOS)并非严格绑定,但 UEFI 通常搭配 GPT,BIOS 通常搭配 MBR。

相关推荐
蓝冰印16 小时前
HarmonyOS Next 快速参考手册
linux·ubuntu·harmonyos
DechinPhy17 小时前
Ubuntu挂载新硬盘
linux·运维·服务器·ubuntu
lht63193561217 小时前
Ubuntu Server 系统安装图形界面远程工具(RDP)
linux·运维·ubuntu
Reboot18 小时前
mini主机Windows系统更换为Ubuntu系统教程(不含图形化页面)
ubuntu
lht63193561220 小时前
Ubuntu Server系统安装谷歌浏览器
linux·运维·ubuntu
知南x20 小时前
【QT界面设计学习篇】qt Kits工具设置/qt多版本设置(ubuntu)
qt·学习·ubuntu
BB_CC_DD20 小时前
在NVIDIA Jetson Orin NX (Ubuntu 22.04, JetPack 5.1, CUDA 11 cuDnn8) 上安装PyTorch 2
pytorch·深度学习·ubuntu
hkNaruto20 小时前
【DevOps】基于Nexus部署内网ubuntu 2204系统APT代理镜像仓库操作手册
运维·ubuntu·devops
残影飞雪20 小时前
jetson orin nano 部署FastDeploy
ubuntu
Better Bench1 天前
ubuntu20.04安全的安装可穿墙的远程软件parsec
安全·ubuntu·远程·parsec