记一次PVE升级
家里的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,并且虚拟机都能正常工作!