当前位置: 首页 > news >正文

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

文章目录

  • 一、操作背景
  • 二、操作步骤
    • 1.配置本地镜像仓库(可选)
    • 2.确认当前分区是gpt分区
    • 3.创建EFI分区
    • 4.安装和修改GRUB
    • 5.重启配置生效
  • 三、验证EFI模式
    • 方法 1:检查 /sys/firmware/efi 目录
    • 方法 2:检查 dmesg 启动日志
    • 方法 3:使用 efibootmgr(仅 UEFI 有效)
    • 方法 4:检查磁盘分区表

一、操作背景

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

二、操作步骤

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

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

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

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

在这里插入图片描述

一般来讲,新加的镜像文件是 /dev/sr0
这里 笔者的镜像文件是 /dev/sr1

在这里插入图片描述

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

mount /dev/sr1 /mnt

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

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

在这里插入图片描述

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

最后更新软件包列表

apt update

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

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

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

fdisk -l /dev/sda

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

apt install gdisk

接着转换格式硬盘

gdisk /dev/sda

接着按照提示,选择 r 恢复和变换菜单;选择g进行转换。
此处具体操作不作赘述,如果不清楚,可以查找其他线上资料。

在这里插入图片描述

3.创建EFI分区

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

在这里插入图片描述

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

fdisk /dev/sdc

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

Linux磁盘分区和管理

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

格式化操作

mkfs.fat -F32 /dev/sdc1

新建目录 /boot/efi

mkdir /boot/efi

设置为永久挂载模式

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

/dev/sdc1 /boot/efi vfat defaults 0 1

最后使挂载生效。

mount -a

4.安装和修改GRUB

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

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu

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

报错大概如下:

grub-install:error   /usr/lib/grub/x86_64-rfi/modinfo.sh doesn't exist. 

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

所以直接装上就好。

apt install grub-efi-amd64

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

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

update-grub

5.重启配置生效

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

在这里插入图片描述

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

三、验证EFI模式

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

ls /sys/firmware/efi

判断结果:
目录存在(显示文件列表)→ EFI/UEFI 模式
目录不存在(报错 No such file or directory)→ Legacy BIOS 模式

方法 2:检查 dmesg 启动日志

dmesg | grep -i "efi\|bios"

判断结果:
出现 EFI v 或 UEFI → UEFI 模式
出现 BIOS 或无 EFI 字样 → Legacy BIOS 模式

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

efibootmgr

判断结果:
在这里插入图片描述

显示 UEFI 启动项列表 → UEFI 模式
报错 EFI variables are not supported → BIOS 模式

方法 4:检查磁盘分区表

parted -l | grep "Partition Table"

判断结果:
Partition Table: gpt → 通常是 UEFI 模式(GPT 分区表)
Partition Table: msdos → 通常是 BIOS 模式(MBR 分区表)

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

相关文章:

  • 深入解析C#表达式求值:优先级、结合性与括号的魔法
  • node.js的初步学习
  • 前端性能优化-虚拟滚轮(Virtual Scroll)
  • 无菌药厂通信架构升级:MODBUS TCP转CANopen技术的精准控制应用
  • VUE3 ref 和 useTemplateRef
  • JAVA 线程池 BlockingQueue详解
  • LMKD(Low Memory Killer Daemon)原理初识
  • wandb转为csv
  • LeetCode - 238. 除自身以外数组的乘积
  • Vue 模板配置项深度解析
  • ArcPy扩展模块的使用(3)
  • Quick BI 自定义组件开发 -- 第二篇 添加 echart 组件,开发图表
  • Redis群集
  • 精准夹持,稳定控制:IXTUR气控永磁铁选型全攻略(涵盖MAP、MRP与LI-120系列)
  • push [特殊字符] present
  • 【数据集处理】拼接MODIS 1 kmNDVI数据集(MRT工具处理+Python全代码)
  • 【大厂机试题解法笔记】报文响应时间
  • Qt+OPC开发笔记(二):OPC客户端介绍与读取和写入bool类型Demo
  • rknn toolkit2搭建和推理
  • rknn优化教程(二)
  • 阿里云服务器建设网站/最新国际新闻头条今日国际大事件
  • 怎么在工商局网站做股东变更/专业的制作网站开发公司
  • 专题网站建设策划/黑帽seo寄生虫
  • 网上购物网站建设/郑州百度seo
  • wordpress 打赏 手机/seo网站推广如何做
  • 佛山做pc端网站/网络平台推广是干什么