Upgrading from Proxmox VE 8 to 9
In this guide, I’ll walk you through how I upgraded my 3-node Proxmox cluster from version 8.4 to 9.0, including the required Ceph upgrade from Reef (18.2.2) to Squid.
This guide is based on the official Proxmox upgrade documentation:
System Overview
- Proxmox Version: 8.4 (before upgrade)
- Ceph Version: Reef (18.2.2)
- Cluster Nodes: 3
- Storage: Ceph cluster
Step 1: (Optional) Upgrade Ceph from Reef to Squid
If you’re running a Ceph cluster, it’s important to upgrade Ceph before upgrading Proxmox to ensure compatibility.
We’ve written a detailed guide specifically for this process:
How to upgrade Ceph from Reef to Squid
If you’re not using Ceph, or just running a single-node setup without distributed storage, you can skip this step.
Important: If you do use Ceph, always verify cluster health with
ceph status
before proceeding.
Step 2: Upgrade All Proxmox Packages
On each node, update all packages to the latest version of Proxmox 8:
1
apt update && apt full-upgrade
Reboot the node if any kernel or low-level upgrades were applied.
Step 3: Run the pve8to9
Check Tool
Run the official upgrade checker:
1
pve8to9
This tool scans your node for potential problems or unsupported configurations. Resolve any critical issues before proceeding.
Step 4: Update APT Sources to Trixie
Use sed
to bulk-replace bookworm
with trixie
in all relevant APT source files:
1
2
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.list
If you’re using custom repositories (like No-Subscription or Ceph), update those accordingly.
Tip: Check that
pve-enterprise.list
orpve-no-subscription.list
also point totrixie
.
Step 5: Update and Dist-Upgrade
Now refresh your APT cache and start the full distribution upgrade:
1
2
apt update
apt dist-upgrade
During the upgrade, you might be prompted about keeping or replacing configuration files. I selected the default option in all cases to avoid overwriting anything critical.
Your experience may vary — if you’ve heavily customized Proxmox configs, review diffs before confirming.
Step 6: Reboot the Node
Once the upgrade completes, reboot the node:
1
reboot
Verify everything is working properly once it comes back up:
pveversion
systemctl status pvedaemon
ceph status
Repeat for all other nodes in the cluster.
Final Check
After upgrading all nodes:
- Verify Ceph cluster is healthy
- Check all VMs and containers are running
- Confirm HA resources (if used) are behaving as expected
Lessons Learned
- The
pve8to9
tool is extremely helpful — don’t skip it! - Make sure Ceph is upgraded before touching Proxmox.
- Doing one node at a time makes rollback easier in case of problems.
- Selecting the default config file options worked fine for me, but back up
/etc
just in case.
Bonus: Quick Commands Recap
1
2
3
4
5
6
7
8
9
10
# Step-by-step upgrade commands
apt update && apt full-upgrade
pve8to9
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.list
apt update
apt dist-upgrade
reboot
Got Questions?
Feel free to drop a comment on my YouTube channel or reach out on Bluesky!
Happy upgrading and may your cluster run smooth!