珂珂的个人博客 - 一个程序猿的个人网站

PVE 中Ubuntu24.04 更改为UEFI 启动

由于我之前的ubuntu 安装是采用的SealBIOS 现在想改成UEFI ,经过尝试在不重装系统情况下成功了,记录下步骤

首先还是从现在的sealBIOS 启动进入系统

由于以前磁盘已经分配好了,无空间再划分EFI 分区,当然也有办法,自己不想尝试了,换一种思路。

在pve管理界面中新增一块2G 的磁盘给Ubuntu虚拟机,其实1G 就够了,因为我重新用uefi方式安装了下ubuntu发现efi分区就是1G

这是用 lsblk 可以看到新增了一块 sdb

然后

gdisk /dev/sdb

输入? 号

输入n

输入1

回车

回车

输入ef00

输入w 按y 确认

接下来,将新建的分区格式化为 FAT32 文件系统

sudo mkfs.fat -F32 -n EFI /dev/sdb1

创建挂载点

mkdir -p /boot/efi

挂载新分区

sudo mount /dev/sdb1 /boot/efi

安装grub-efi-amd64

apt install grub-efi-amd64

这个不知是否需要

apt install dosfstools mtools

安装 EFI 版本的 GRUB 到新挂载的 EFI 分区

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

更新 GRUB 配置文件,扫描当前的内核和系统

update-grub

如果不配置 /etc/fstab,重启后 EFI 分区可能不会自动挂载,这会导致未来更新内核时引导文件无法写入,从而引发系统无法启动。

# 获取新分区的 UUID
sudo blkid /dev/sdb1
# 记下输出中的 UUID="xxxx-xxxx"

# 编辑 fstab 文件
sudo nano /etc/fstab

添加一行

UUID=xxxx-xxxx  /boot/efi  vfat  defaults  0  1

我按照uefi 版本的fstab 写的这样的

/dev/disk/by-uuid/E4DA-18D3 /boot/efi vfat defaults 0 1

保存退出后,运行 sudo mount -a 检查是否有报错。如果没有报错,说明配置正确。

再运行了一下update-grub  应该不需要

检查 /boot/efi/EFI/ubuntu/ 目录下是否成功生成了 grubx64.efi 或 shimx64.efi 文件。

然后关机

从PVE 中将SealBIOS 更改为OVMF(UEFI)

注意不要再添加efi 磁盘,提示不管它。

然后调整下启动顺序,将第二块EFI磁盘放在前面就可以启动了。启动后发现啥都没变,还可以改为SealBIOS  只需要更改回sealBIOS 再将启动顺序将以前的磁盘放在第一个。


上一篇:个人代码全部开源

下一篇:PVE 中Ubuntu24.04 更改为UEFI 启动


0 评论

查看所有评论

给个评论吧