Proxmox VE 8 → 9 升级精简教程(无订阅版)

Proxmox VE 8 → 9 升级精简教程(无订阅版)

Proxmox VE 8 → 9 升级精简教程(无订阅版)

适用:单机或集群、使用免费 no-subscription 仓库。升级前请务必备份所有 VM/CT 并验证备份可用。建议通过物理控制台或 IPMI/iKVM 操作,不要用 GUI 自带的虚拟控制台(升级中会断连)。仅 SSH 时请用tmuxscreen

本教程已将官方download.proxmox.com软件源替换为中科大 USTC 镜像,加速国内下载。

前置条件

  • 所有节点已升级到最新的 PVE 8.4(pveversion须 ≥8.4.1
  • root 分区至少有 5 GB(建议 >10 GB)空闲空间
  • 如用 Ceph:必须先升级到 Ceph 19.2 Squid 再继续
  • 集群:逐节点升级,先把要保持运行的 VM/CT 迁移到其他节点

步骤一:确保 PVE 8.4 已是最新

aptupdateaptdist-upgrade pveversion# 确认 ≥ 8.4.1

步骤二:运行检查脚本

pve8to9--full

只检查不修改。根据提示逐项处理问题,每次修完重新运行确认。两个常见项:

  • (可选)LVM 自动激活警告:共享 LVM 存储强烈建议运行迁移脚本。
    /usr/share/pve-manager/migrations/pve-lvm-disable-autoactivation
  • systemd-boot 元包警告:若脚本提示且你没手动用 systemd-boot 引导,按提示卸载它。

(可选)减少升级期间的审计日志刷屏:

systemctl disable--nowsystemd-journald-audit.socket

步骤三:切换仓库到 Trixie + PVE 9(no-subscription,USTC 镜像)

把 Debian 基础仓库从 bookworm 改为 trixie:

sed-i's/bookworm/trixie/g'/etc/apt/sources.list

添加 PVE 9 no-subscription 仓库(deb822 格式,使用 USTC 镜像):

cat>/etc/apt/sources.list.d/proxmox.sources<<EOF Types: deb URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve/ Suites: trixie Components: pve-no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg EOF

验证并清理旧仓库:

aptupdateaptpolicy# 确认无报错、仓库正确

确认无误后,删除旧的 PVE 8 仓库行。检查并清理这些文件里残留的 bookworm 条目(注释掉或删除):/etc/apt/sources.list/etc/apt/sources.list.d/pve-install-repo.list/etc/apt/sources.list.d/pve-enterprise.list。如有backports行也一并删除。再次apt update && apt policy确认旧仓库已消失。

如果使用 Ceph(no-sub),另加 ceph 仓库(同样用 USTC 镜像):

cat>/etc/apt/sources.list.d/ceph.sources<<EOF Types: deb URIs: https://mirrors.ustc.edu.cn/proxmox/debian/ceph-squid/ Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg EOF

提示:USTC 镜像同样提供 Debian 基础源镜像。如需进一步加速,可把/etc/apt/sources.list中的deb.debian.org/security.debian.org也替换为https://mirrors.ustc.edu.cn/debian/等对应镜像。

步骤四:执行升级

aptupdateaptdist-upgrade

过程中会询问配置文件冲突,推荐选择:

  • /etc/issueNo(保留现有,开机会自动生成)
  • /etc/lvm/lvm.confYes(装维护者版本,前提是你没手改过)
  • /etc/ssh/sshd_configYes(推荐,迁移到新的认证选项)
  • /etc/default/grubNo(除非你手动改过并确认差异)
  • /etc/chrony/chrony.confYes(你没手改过的话)
  • 「是否自动重启服务」→ 用默认即可,反正升级后会重启
  • 看到apt-listchanges输出按q退出

耗时取决于磁盘 IOPS:SSD 几分钟,机械盘可能 60 分钟以上。

步骤五:复查并重启

pve8to9# 再次确认无遗留问题reboot

即使你之前已在 PVE 8 上用过 6.14 内核,也必须重启以加载用 PVE 9 工具链重新编译的新内核。

升级后

  • 重启后用pveversion确认显示9.x
  • 强制刷新 Web UI 缓存:Ctrl+Shift+R(macOS:⌘+Alt+R
  • 集群:继续在下一个节点重复以上步骤,直到全部完成
  • (可选)把所有.list仓库迁移成新的 deb822 格式:
    aptmodernize-sources

几个值得注意的坑

  • UEFI + root on LVM:grub 旧版有引导 bug,需安装修复版:[ -d /sys/firmware/efi ] && apt install grub-efi-amd64
  • 网卡名变化:新内核可能改变网卡命名,导致网络不通——所以才强烈建议有物理/IPMI 访问途径。
  • PCI passthrough:少数情况下 6.14 内核会让直通 VM 无法启动,临时方案是 pin 回旧内核。
  • cgroup v1 已移除:systemd ≤230 的老容器(如 CentOS 7、Ubuntu 16.04)在 PVE 9 上不再受支持,需先迁移。
  • Veeam 备份:使用 QEMU machine ≥10.0 的 VM 会备份失败,可把机器版本 pin 回9.2+pve1

参考官方文档:https://pve.proxmox.com/wiki/Upgrade_from_8_to_9