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

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。

http://www.xdnf.cn/news/13208.html

相关文章:

  • 链表反转示例代码
  • 每日算法刷题Day27 6.9:leetcode二分答案2道题,用时1h20min
  • 论文解析:一文弄懂U-Net(图像分割)!
  • WEB3全栈开发——面试专业技能点P5中间件
  • 华为智选携手IAM:突破技术边界,重塑智慧健康家居新时代
  • 苍穹外卖|学习笔记|day07
  • C#学习第29天:表达式树(Expression Trees)
  • 俩人相向而行,何时相遇问题思考。
  • 《创始人IP打造:知识变现的高效路径》
  • EXCEL 实现“点击跳转到指定 Sheet”的方法
  • 《Minio 分片上传实现(基于Spring Boot)》
  • 第三章 3.2 无线传感器网络的组成
  • 本周黄金想法
  • yaml读取写入常见错误 (‘cannot represent an object‘, 117)
  • STM32ADC模数转换器,让你的32可以测量电压!!!
  • Mobile ALOHA全身模仿学习
  • MyBatis-Plus 常用条件构造方法
  • 什么是WBS项目管理?wbs项目管理有哪些核心功能?
  • 生产管理系统开发:专业软件开发公司的实践与思考
  • linux驱动开发(3)-页面分配器
  • C++模版初阶
  • deepseek: 重装系统
  • 【C/C++】玩转正则表达式
  • SQL-labs通关(23-38)
  • 使用VMware克隆功能快速搭建集群
  • 前端大文件分片上传详解 - Spring Boot 后端接口实现
  • 《机器学习》(周志华)第二章 模型评估与选择
  • 基于cornerstone3D的dicom影像浏览器 第三十一章 从PACS服务加载图像
  • 人工智能新纪元:技术跃迁、行业变革与未来挑战
  • python正则表达式