Blog / Technology · August 13, 2025 0

Upgrading Proxmox VE from 8.4.0 to 9.0

Full Step-by-Step How-To with Real-World Troubleshooting

Upgrading Proxmox VE between major versions can go smoothly—if you prepare correctly. This guide walks you through an upgrade from Proxmox VE 8.4 to 9.0, including the exact errors encountered and their solutions.

Follow these steps to avoid common pitfalls when moving from Proxmox 8 (Debian 12 “Bookworm”) to Proxmox 9 (Debian 13 “Trixie”).

1. Backup Your Environment First (Essential!)

Before touching your system, make a full backup of all VMs/containers and critical Proxmox configuration files. One quick way to back up critical configs is:

tar czvf proxmox_etc_backup_$(date +%F).tar.gz /etc/pve /etc/passwd /etc/network/interfaces /etc/resolv.conf

Remember to transfer this archive off the Proxmox host.

2. Ensure You’re on the Latest Proxmox 8.x

Run the following commands to get your system to the latest point release:

pveversion -v
apt update
apt full-upgrade

3. Clean Up and Fix Repo Configuration

Common pre-upgrade issues often stem from APT repositories:

  • Enterprise repo 401 Unauthorized errors: If you don’t have a subscription, comment out the enterprise repo and enable the no-subscription one in /etc/apt/sources.list.d/pve-enterprise.list.
  • Duplicate repo warnings: Remove duplicates across /etc/apt/sources.list and files in /etc/apt/sources.list.d/.

4. Update Repositories for Proxmox 9 (Trixie)

Update /etc/apt/sources.list to point to Debian Trixie:

# /etc/apt/sources.list
deb http://ftp.us.debian.org/debian trixie main contrib
deb http://ftp.us.debian.org/debian trixie-updates main contrib
deb http://security.debian.org/debian-security trixie-security main contrib

Update your Proxmox repo file for Trixie:

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

5. Upgrade Your Base System and Packages

🚨 Real-World Lesson

I initially forgot to change my base Debian repositories from bookworm to trixie. This caused over 60 packages to be “kept back” due to missing dependencies. Correcting the sources and re-running the upgrade fixed it without needing any force installs.

Once all sources are correct, run the full upgrade:

apt update
apt full-upgrade

6. Reboot and Verify

A reboot is required to load the new kernel. After rebooting, verify the new version:

reboot
pveversion

The output should now report version 9.x.

⚠️ Important Warning: Kernel Module Issues

After my first upgrade attempt, none of my containers or VMs would start. The cause was an incomplete upgrade due to the old APT sources. The new kernel was installed, but its corresponding module packages (like veth, bridge, kvm) were not.

Fix: Correcting all APT sources to Trixie and re-running apt full-upgrade installed the correct packages. After another reboot, everything worked.

7. Visual Comparison of Repository Changes

Repository Type Before (Proxmox 8 – Bookworm) After (Proxmox 9 – Trixie)
Debian Base deb ... bookworm ... deb ... trixie ...
Proxmox Repo .list format, bookworm .sources format, trixie

Final Thoughts

A repository mismatch is the root cause of most upgrade headaches. Triple-check your APT sources before upgrading, and confirm the kernel and its modules are correct after the first reboot.

TABLE FOR 8