Site icon Fix I.T. Phill – Your Go-To Tech Guru

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

Proxmox VE 8.4 to 9.1 Debian 13 Trixie upgrade walkthrough with pve8to9 checks

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

Related Catch-Up Guides

Source Links

Exit mobile version