Proxmox VE 9 is here — built on Debian 13 “Trixie” with Linux kernel 6.14 — and the in-place upgrade from 8 to 9 is officially supported. It is also a real version jump, not a point release, and it ships a handful of breaking changes that can leave a node off the network or refusing to boot if you walk in unprepared.
This is the pre-flight guide: what to check before you start, the gotchas that actually bite, and the upgrade steps themselves — built from Proxmox’s official Upgrade_from_8_to_9 documentation and the issues the community has reported hitting. The mechanism is not scary. The preparation is the whole job.
Back up first, always. Proxmox’s own guidance is blunt: “A valid and tested backup is always required before starting the upgrade process.” If you take one thing from this page, take that.
The short version
- Get every node to PVE 8.4.1 or later first.
- Run
pve8to9 --fulland clear every warning before touching repositories. - Back up all VMs/containers (ideally a tested 3-2-1 backup) and make sure you have IPMI or physical console access.
- Switch repos from
bookwormtotrixie,apt update && apt dist-upgrade, reboot into kernel 6.14. - On a cluster: one node at a time, keep quorum, Ceph to Squid first.
- Expect possible NIC renames and LVM autoactivation changes — handle them before you reboot.
Before you touch anything
The prerequisites from the official guide:
- Be on PVE 8.4.1+ on every node. The
pve8to9checklist ships in the latest 8.4 packages. - Tested backups of every guest. Test a restore in a lab if you can.
- At least 5 GB free on the root filesystem (10+ GB recommended) for the package transition.
- Console access that isn’t the web GUI. Use IPMI/iKVM or a physical console, or SSH inside
tmux/screen— never the GUI’s noVNC console, which dies with the services mid-upgrade. - Ceph users: upgrade Ceph to 19.2 Squid before upgrading Proxmox.
- Co-installed Proxmox Backup Server: upgrade PBS to version 4 first.
Run the checklist: pve8to9 --full
Before changing a single repository line, run:
pve8to9 --full
It flags common incompatibilities — repository state, LVM, boot configuration, known package conflicts — but it does not fix anything for you. Work through every warning, then run it again until it’s clean. This one command prevents the majority of failed upgrades.
The gotchas that actually bite
These are the changes most likely to cause a bad day. Most are easy to handle if you handle them before the reboot.
LVM autoactivation is now off by default
On Proxmox 9, LVM autoactivation is disabled by default for new logical volumes in shared-LVM setups. Existing volumes keep their old behavior, but this trips people on shared storage. There’s a migration helper at /usr/share/pve-manager/migrations/pve-lvm-disable-autoactivation, and some LVM thin pools need a manual repair afterward:
lvconvert --repair pve/data
Network interfaces can get renamed
The 6.14 kernel can recognize additional NIC hardware features, which changes the predictable interface name. If your vmbr0 bridge points at the old name, the host boots with no network. Proxmox ships pve-network-interface-pinning to lock your current names in place — run it before the upgrade, and keep console access handy just in case.
If you run a Ceph Full Mesh with post-up /usr/bin/systemctl restart frr.service, that line will deadlock on 9 — switch it to a conditional restart.
Boot and systemd changes
- Remove the
systemd-bootmeta-package whereproxmox-boot-toolmanages booting (the upgrade notes call this out). - GRUB on LVM in UEFI mode can fail to install; the fix is
[ -d /sys/firmware/efi ] && apt install grub-efi-amd64. /etc/sysctl.confis no longer honored by systemd-sysctl — move any custom kernel tunables into/etc/sysctl.d/<NN>-name.conf.
Containers, passthrough, and migration
- cgroup v1 is removed. Containers running systemd older than 230 (CentOS 7, Ubuntu 16.04) won’t start — migrate those guests first.
- PCI passthrough can break on kernel 6.14. If a passthrough VM misbehaves, the known workaround is pinning an older kernel until it’s resolved.
- Live migration between different CPU vendors (Intel↔AMD) can leave guests unresponsive — plan maintenance windows accordingly.
- NVIDIA vGPU needs driver ≥570.158.02 (GRID 18.3+); Veeam is incompatible with QEMU machine version ≥10.0.
The upgrade itself
Once pve8to9 --full is clean and you’ve handled the gotchas above:
- Migrate guests off the node you’re about to upgrade (on a cluster).
- Point repositories at Trixie. Switch
bookworm→trixieacross your APT sources and the Proxmox repo (the deb822.sourcesformat is recommended on 9). Update Ceph repos to Squid/trixie if applicable. - Upgrade:
Answer the config-file prompts deliberately — forapt update apt dist-upgrade/etc/lvm/lvm.confthe maintainer version is recommended; for/etc/default/grub, diff it if you’ve customized it. - Reboot into kernel 6.14 (required), then confirm:
Hard-refresh the web UI (Ctrl+Shift+R) so you’re not staring at a cached 8.x interface.pveversion # should report 9.x
If you run a cluster
- All nodes on 8.4.1+ before you start.
- One node at a time, maintaining quorum throughout. Upgrade, reboot, confirm it rejoins healthy, then move on.
- Ceph → 19.2 Squid first for hyperconverged setups.
- HA groups are deprecated in favor of HA rules; the migration happens automatically once every node is on 9.0. If HA acts up, check
journalctl -eu pve-ha-crm.
If you lean on community automation for cluster nodes, give the helper-scripts safety guide a read first — running anything as root mid-migration deserves the same caution.
Honest verdict: upgrade now, or wait?
If your Proxmox 8 setup is doing its job and you don’t need anything specific in 9, waiting for a point release or two is perfectly reasonable — let the edge cases settle. There’s no penalty for being a release behind on a homelab.
When you do upgrade, the deciding factor isn’t timing, it’s preparation: a tested backup, a clean pve8to9 --full, pinned NIC names, real console access, and a read of the official release notes for your hardware. The upgrades that go sideways are almost always the ones that skipped the checklist — old GPUs, PCI passthrough, and shared-LVM storage are the usual suspects. Do the pre-flight, keep a solid backup you can fall back to, and the jump to 9 is routine.
Sources
- Proxmox VE official upgrade guide — Upgrade from 8 to 9: https://pve.proxmox.com/wiki/Upgrade_from_8_to_9
- Proxmox VE 9.0 release notes: https://pve.proxmox.com/wiki/Roadmap
- Proxmox forum — PVE 8 to 9 in-place upgrade reports: https://forum.proxmox.com/threads/pve-8-to-9-in-place-upgrade.170013/