This guide documents the process of upgrading a standalone Proxmox VE 8 node to Proxmox VE 9, including every issue encountered along the way and how to resolve them. If you’re running a homelab setup on a no-subscription licence, this should map closely to your experience.


Step 1: Run the Pre-Upgrade Checker

Proxmox ships a built-in checker that validates your system before the upgrade. Always start here:

pve8to9

Work through any FAIL or WARN items one at a time, re-running the checker after each fix until you get a clean result.


Step 2: Fix the systemd-boot Blocker (FAIL)

The checker may flag:

FAIL: systemd-boot meta-package installed. This will cause problems on upgrades of other boot-related packages.

This is a hard blocker. Remove it:

apt remove systemd-boot

See the Proxmox wiki for background on why this conflicts with the upgrade.


Step 3: Install intel-microcode (WARNING)

If the checker warns that the intel-microcode package is missing, it’s because the non-free-firmware component isn’t enabled in your apt sources.

Enable the component:

nano /etc/apt/sources.list

Find your Debian bookworm line and append non-free-firmware:

deb http://deb.debian.org/debian bookworm main contrib non-free-firmware

Then install the package:

apt update
apt install intel-microcode

Step 4: Disable LVM Autoactivation (NOTICE)

The checker may flag that some LVM/LVM-thin volumes still have autoactivation enabled. Starting with PVE 9, autoactivation is disabled for new volumes. Run the migration script to bring existing volumes in line:

/usr/share/pve-manager/migrations/pve-lvm-disable-autoactivation

Step 5: Update Repositories to PVE 9 (Trixie)

This is the most common reason the upgrade fails mid-way — if the PVE 9 repository isn’t configured, apt will try to remove proxmox-ve instead of upgrading it, and the Proxmox apt hook will block the operation with a warning.

Update all sources from bookworm to trixie:

# Main Debian sources
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

# Proxmox no-subscription repo
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-no-subscription.list

# Enterprise repo (if present) — disable if you don't have a subscription
sed -i 's/^deb/# deb/' /etc/apt/sources.list.d/pve-enterprise.list

Verify the no-subscription file looks correct:

cat /etc/apt/sources.list.d/pve-no-subscription.list
# Expected: deb http://download.proxmox.com/debian/pve trixie pve-no-subscription

Step 6: Run the Upgrade

apt update
apt full-upgrade

Use apt full-upgrade — not apt upgrade. The full upgrade handles package replacements required by PVE 9.

Once complete, reboot:

reboot

Step 7: Post-Upgrade Repository Fixes

After rebooting, run pve8to9 again. You may hit two additional issues:

Mixed repository suites (FAIL)

FAIL: Found mixed old and new package repository suites, fix before upgrading!
  found suite bookworm at /etc/apt/sources.list.d/ceph.list:1

The Ceph repo wasn’t updated. But there’s an additional catch — PVE 9 uses Ceph Squid, not Ceph Quincy. Update the file entirely:

echo "deb http://download.proxmox.com/debian/ceph-squid trixie no-subscription" > /etc/apt/sources.list.d/ceph.list

Enterprise repo 401 Unauthorized

If the enterprise repo is still enabled without a valid subscription:

sed -i 's/^deb/# deb/' /etc/apt/sources.list.d/pve-enterprise.list

Then refresh:

apt update

Step 8: Clean Up Old RRD Files (Optional)

The checker may note leftover RRD metric files in the old format:

INFO: Found '7' RRD files using the old format.

These are only used for displaying historical data. If you don’t need graphs from before the upgrade, remove them:

find /var/lib/rrdcached/db/pve2-* -name "*.rrd" -delete

Verifying a Successful Upgrade

Run the checker one final time:

pve8to9

A successful upgrade looks like:

PASS: already upgraded to Proxmox VE 9
PASS: running new kernel '7.0.2-6-pve' after upgrade.

And confirm the version:

pveversion

Summary of Changes Made

Issue Fix
systemd-boot blocking upgrade apt remove systemd-boot
intel-microcode not found Enable non-free-firmware, then apt install intel-microcode
LVM autoactivation notice Run PVE migration script
proxmox-ve being removed during upgrade Update all repos from bookwormtrixie
Ceph repo 404 Switch from ceph-quincy to ceph-squid for trixie
Enterprise repo 401 Comment out enterprise repo line
Mixed repo suites (post-upgrade) Update ceph.list to trixie