家里的NAS安装的是Proxmox Virtual Environment,简称PVE,版本还是几年前的8.1.4,基本于deiban 12的,现在debian 12官方的支持快结束了,寻思着就把PVE升到最新版本。

一、升级前的准备工作

关闭虚拟机:升级PVE绝对不能开着虚拟机,必须关机。并且在升级PVE时,完全不影响虚拟机,升级好了,虚拟机照样可以工作。

关闭虚拟机的方法,在PVE里打开shell,输入:

qm shutdown 100
qm shutdown 101

如果有多个虚拟机,关机之后,查询一下是不是都关了:

root@pve:~# qm list
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       
       100 debian               stopped    8192              60.00 0         
       101 win10                stopped    8192             150.00 0         
       102 DSM918               stopped    8192               1.00 0         
root@pve:~# 

说明:如果需要升级到大版本,必须要把小版本升级到最新版,才能升级到大版本。比如,我现在的是pve是8.1.4,必须升级到8.4.19的最新版本。

二、升级到8.x最新版本

在pve的shell终端输入:

apt update

查看状态,没有报错

root@pve:~# apt update
Hit:1 http://mirrors.ustc.edu.cn/debian bookworm InRelease
Hit:2 https://mirrors.ustc.edu.cn/debian-security bookworm-security InRelease
Get:3 http://mirrors.ustc.edu.cn/debian bookworm-updates InRelease [55.4 kB]
Hit:4 https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm InRelease
Fetched 55.4 kB in 1s (50.0 kB/s)                            
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
242 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@pve:~# 

没有报错,再输入以下:

apt dist-upgrade -y

操作注意:在 apt dist-upgrade 运行过程中,如果屏幕弹出紫色的配置确认窗口询问如何处理现有配置文件,一路直接按回车键(系统默认选中 Keep your currently-installed version 保留当前版本)即可。

升级完成后,reroot一下重启服务器。

三、从8.x升级到9.x

1,照例,先把所有的虚拟机全关闭。

2,运行官方体检脚本 (pve8to9)

Proxmox 官方提供了一个专门的脚本,用于在正式升级前检查系统是否存在不兼容的配置或过期的组件。

请在终端输入并执行:

pve8to9

说明:

  • 脚本运行后,会输出一份详细的检查报告。
  • 重点关注输出结果中的 FAIL(失败)或 WARNING(警告)项。
  • 如果所有的检查项都显示为 PASS(通过)或 SKIP(跳过),说明系统非常健康,可以直接进入下一步。如果有 FAIL 项,请根据脚本的英文提示进行清理或修复,直到重新运行脚本不再报错。

有一个错误和两个警告:

  • Proxmox 有一套自己专属的启动引导管理工具(proxmox-boot-tool)。如果你系统中安装了 Debian 官方的通用版 systemd-boot 软件包,在跨大版本升级时,两者会发生严重的冲突,导致重启后找不到引导盘。
  • UEFI 引导分区存在一个 fallback(后备)启动文件,但 GRUB 当前的配置没有包含更新它的权限。如果不修复,未来更新内核时可能会有隐患。

针对system-boot错误的修复:

根据提示的方法,我们只需要卸载system-boot即可,在shell里输入

apt remove systemd-boot -y

修复警告 1 (WARN - GRUB 引导器未设置可移动路径)

按照提示,依次完整复制并执行以下两条命令:

echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u

执行完上面这行没有任何提示,接着执行下面这行重新安装并配置 GRUB:

apt install --reinstall grub-efi-amd64 -y

修复警告 2 (WARN - 缺失 Intel CPU 微码)

执行以下命令安装 Intel 微码补丁:

apt install intel-microcode -y

以上三个步骤全部执行完毕后,请在终端再次运行体检脚本:

pve8to9

输出如下:

= SUMMARY =

TOTAL:    40
PASSED:   34
SKIPPED:  6
WARNINGS: 0
FAILURES: 0

完全没有报错,可以正常升级了。

3,全局替换软件源为 Trixie (PVE 9 底层)

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-no-subscription.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/ceph.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list

更新源

apt update

4,执行跨代大升极,正式从8.x升级到9.x

apt dist-upgrade -y

大约需要15-30分钟,要看源的速度如何。我的是家里的NAS,用的是国内的最快的源,用时10-15分钟左右。

在此期间,屏幕必定会多次弹出紫色的配置确认窗口。无论它问你什么(关于 grub、网络、或者其他服务),一律直接按回车键!

5,清理与重启

apt autoremove -y
reboot

四、升级完成

  • Setting up proxmox-ve (9.1.0):这代表 PVE 9 的核心管理套件已经成功安装
  • Generating /boot/initrd.img-7.0.0-3-pve:这代表系统已经为你这台 NAS 编译好了全新的 Linux 7.0 底层内核,并将其安全写入了引导区。

成功升级到9.1.9,并且虚拟机都能正常工作!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注