Proxmox VE 8 升级到 9 全程实战记录(USTC 镜像 + 零失败)
原创2026年5月28日大约 3 分钟
Proxmox VE 8 升级到 9 全程实战记录(USTC 镜像 + 零失败)
本文记录一次真实的 PVE 8.4.19 → PVE 9.2.2 原地升级过程,包含踩坑、源配置细节,适合国内用户参考。
环境信息
| 项目 | 值 |
|---|---|
| 升级前版本 | pve-manager/8.4.19 |
| 升级后版本 | pve-manager/9.2.3 |
| 内核 | 6.8.12-25-pve → 6.14.x-pve |
| Debian | Bookworm → Trixie |
| 镜像源 | USTC(中科大) |
| Ceph | 未使用 |
| 容器 | 无 |
第一步:升级前检查
官方提供了检查脚本 pve8to9,务必先跑一遍:
pve8to9 --full我的结果:
TOTAL: 44
PASSED: 36
SKIPPED: 6
WARNINGS: 0
FAILURES: 0零警告、零失败才能继续。如果有 FAILURES,先解决再升级。
第二步:用 tmux 保护升级会话
升级过程耗时较长,SSH 万一断开会中断进程。用 tmux 开一个持久会话:
tmux new -s upgrade进入 tmux 后,升级进程跑在服务器上,SSH 断了也没关系。
断开/重连命令:
# 退出(不中断进程)
Ctrl+B,然后按 D
# 重新接入
tmux attach -t upgrade第三步:配置升级源
这是国内用户最容易踩坑的地方。先看清楚现有文件结构:
/etc/apt/
├── sources.list
└── sources.list.d/
├── pve-enterprise.list
└── ceph.list原始 sources.list
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware修改操作
① Debian 基础源:bookworm 换 trixie
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list② 删除 deb-src 行(已注释,没用,清理掉)
sed -i '/^#deb-src/d' /etc/apt/sources.list③ 注释掉 backports(官方明确要求,未经测试)
sed -i '/trixie-backports/s/^/#/' /etc/apt/sources.list④ PVE 源:使用 USTC trixie 源
USTC 已有 trixie 的 PVE 源,直接使用,速度快,无需切换官方。
cat > /etc/apt/sources.list.d/pve-enterprise.list << EOF
# enterprise disabled - no subscription
# deb https://enterprise.proxmox.com/debian/pve trixie pve-enterprise
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve trixie pve-no-subscription
EOF⑤ 禁用 ceph 源(未使用)
echo "# disabled - not using ceph" > /etc/apt/sources.list.d/ceph.list禁用源只是告诉 apt "别去这里找包",不影响系统上已有的任何程序。
验证源配置
apt update
apt policy pve-manager输出中 Candidate 显示 9.2.2 说明源配置正确:
pve-manager:
Installed: 8.4.19
Candidate: 9.2.2
Version table:
9.2.2 500
500 https://mirrors.ustc.edu.cn/proxmox/debian/pve trixie/pve-no-subscription amd64
*** 8.4.19 100
100 /var/lib/dpkg/status第四步:执行升级
在 tmux 会话中直接执行:
apt dist-upgrade安装过程注意事项
安装分两个阶段,处理方式不同:
| 阶段 | 特征 | 能否中断 |
|---|---|---|
| 下载阶段 | 屏幕显示 xx% [downloading...] | ✅ 可以,重跑会续传 |
| 安装阶段 | 屏幕显示 Unpacking / Setting up | ❌ 不要中断 |
遇到配置文件询问时,tmux 会暂停等待,attach 进去回答即可:
tmux attach -t upgrade
# 输入 Y 或 N 后 Ctrl+B D 退回后台配置文件交互建议:
| 配置文件 | 推荐 |
|---|---|
/etc/issue | N(保持现有,PVE 自动生成) |
/etc/lvm/lvm.conf | Y(使用新版) |
/etc/ssh/sshd_config | Y(旧选项已废弃) |
/etc/default/grub | 查看差异后决定 |
/etc/chrony/chrony.conf | Y(使用新版) |
第五步:验证并重启
升级完成后不会自动重启,先验证:
pve8to9 --full没有 FAILURES 后手动重启:
reboot重启后验证:
pveversion
# pve-manager/9.2.3/...
uname -r
# 6.14.x-pve刷新浏览器 Ctrl+Shift+R 清除 Web UI 缓存。
踩坑总结
| 问题 | 原因 | 解决方式 |
|---|---|---|
| backports 需要注释 | 官方明确要求,未经测试 | sed 注释掉 |
| ceph 源可直接禁用 | 未使用 Ceph | 覆盖写入注释即可 |
PVE 9 重要变化备忘
- cgroupV1 彻底移除:CentOS 7、Ubuntu 16.04 等老容器不再支持
/tmp改为 tmpfs:默认最多占 50% 内存,别往/tmp放大文件/etc/sysctl.conf不再被读取:自定义内核参数需迁移到/etc/sysctl.d/- LVM 卷默认不自动激活:由 PVE 按需控制,行为有变化