Proxmox VE 8.4 to 9.1 Upgrade Guide: Debian 13 Trixie, pve8to9, HA, SDN, and Ceph

A full Proxmox VE 8.4 to 9.1 upgrade path with pve8to9 checks, repository changes, Ceph notes, HA group migration, and post-upgrade verification.
Proxmox VE 8.4 to 9.1 Debian 13 Trixie upgrade walkthrough with pve8to9 checks

This is the major jump: Proxmox VE 8.4 on Debian 12 Bookworm to Proxmox VE 9.x on Debian 13 Trixie, then current 9.1 packages. If your node is still on 8.2 or 8.3, use the 8.4 catch-up guide first. The official Proxmox 8-to-9 path expects current 8.4 packages before the major upgrade starts.

Proxmox VE 9.0, released August 5, 2025, moved the platform to Debian 13, kernel 6.14, QEMU 10, LXC 6, ZFS 2.3, and Ceph Squid. It also added snapshots for thick-provisioned shared LVM storage, SDN Fabrics, HA resource affinity rules, and a stronger mobile interface. Proxmox VE 9.1, released November 19, 2025, added OCI image support for LXC templates, vTPM state in qcow2, finer nested virtualization controls, better SDN status reporting, and updated core packages.

Preflight Checklist

Use a console, IPMI/iKVM, or SSH inside tmux. Make verified VM and container backups. In a cluster, migrate guests off one node and upgrade that node first. If the cluster uses Ceph, upgrade Ceph Quincy or Reef to Ceph Squid before the Proxmox VE 9 upgrade.

tmux new -s pve9-upgrade
apt update
apt dist-upgrade
pveversion -v
pve8to9 --full
pvecm status 2>/dev/null || true
ha-manager status 2>/dev/null || true
ceph --version 2>/dev/null || true
ceph -s 2>/dev/null || true
df -h /

Back up the important host configuration. The VM and CT backups matter most, but these files are often what save time if networking, repositories, storage, or cluster behavior needs to be rebuilt.

tar czf "/root/pve-host-config-$(date -I).tar.gz" 
  /etc/pve 
  /etc/network/interfaces 
  /etc/resolv.conf 
  /etc/hosts 
  /etc/apt/sources.list 
  /etc/apt/sources.list.d

Switch From Bookworm To Trixie Repositories

Install the current Proxmox archive keyring before changing repositories. Then replace Debian Bookworm with Trixie and add the correct Proxmox VE 9 repository. Choose enterprise or no-subscription, not both.

apt install proxmox-archive-keyring
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
grep -R bookworm /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null || true

Enterprise repository:

cat > /etc/apt/sources.list.d/pve-enterprise.sources << 'EOF'
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

No-subscription lab repository:

cat > /etc/apt/sources.list.d/proxmox.sources << 'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

If the node has hyper-converged Ceph, use the matching Ceph Squid repository. Enterprise:

cat > /etc/apt/sources.list.d/ceph.sources << 'EOF'
Types: deb
URIs: https://enterprise.proxmox.com/debian/ceph-squid
Suites: trixie
Components: enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

No-subscription lab Ceph repository:

cat > /etc/apt/sources.list.d/ceph.sources << 'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

Run The Upgrade

Update package indexes, check policy output, run the upgrade, rerun the checker, and reboot. Review config-file prompts instead of blindly overwriting local changes.

apt update
apt policy
apt dist-upgrade
pve8to9 --full
reboot

Post-Upgrade Verification

After reboot, verify the running kernel, Proxmox version, cluster health, storage, and guest state. Proxmox VE 9 deprecates HA groups in favor of HA rules. The migration happens once all nodes are upgraded, so do not troubleshoot HA placement from only one partially-upgraded node unless you understand the mixed-version state.

pveversion -v
uname -r
systemctl status pveproxy pvedaemon pvestatd pve-cluster --no-pager
pvecm status 2>/dev/null || true
ha-manager status 2>/dev/null || true
journalctl -eu pve-ha-crm --no-pager -n 80 2>/dev/null || true
ceph -s 2>/dev/null || true
zpool status 2>/dev/null || true
qm list
pct list

Once the host is stable on 9.0, run normal package updates to reach current 9.1 packages from the same Trixie repositories.

apt update
apt dist-upgrade
pveversion
reboot

Known Watch Points

  • Legacy cgroup v1 containers are not supported on Proxmox VE 9. Replace very old container OS builds before upgrading.
  • Older hardware should be tested first. Kernel and Ceph changes can expose CPU or driver limitations.
  • Network interface names can change with the new kernel. Have console access and consider the Proxmox network interface pinning tool if the checker recommends it.
  • NVIDIA vGPU users must confirm driver compatibility before the move.
  • VMs using third-party backup integrations or PCI passthrough deserve a test reboot before production maintenance is declared finished.

Related Catch-Up Guides

Source Links

Picture of admin

admin

Leave a Reply

Sign up for our Newsletter

Get the latest information on what is going on in the I.T. World.