Proxmox VE 8.4 to 9.0 In-Place Upgrade Guide
Upgrade your Proxmox VE safely and efficiently by following this streamlined, step-by-step approach.
Prerequisites
- Update all nodes to Proxmox VE 8.4.1 or newer.
- Check repositories: Make sure your nodes have correct package repository configuration.
- Ceph clusters: Upgrade Ceph Quincy/Reef to Ceph 19.2 Squid before upgrading to Proxmox VE 9.
- If Proxmox Backup Server is installed: Upgrade it to version 4.
- Access: Ensure you have reliable access (IPMI, IKVM, or physical recommended).
- Backup: Create tested backups for all VMs and containers.
- Free disk space: Minimum 5GB (preferably 10GB+) on root filesystem.
- Cluster: Make sure the cluster is healthy.
- Review known upgrade issues in the official documentation.
Test the Upgrade
Set up a test environment by installing Proxmox VE 8.4 on separate hardware or in a VM, and run through the upgrade before performing it on production.pve.proxmox+1
Step-by-Step Upgrade Process
1. Use Console or SSH
Prefer local console or SSH with a terminal multiplexer (e.g., tmux or screen) to avoid interruptions. Don’t upgrade via the web GUI virtual console.
2. Run Pre-Upgrade Checklist
Execute:
textpve8to9 --full
Resolve any issues flagged by the script. Re-run after fixes to confirm.
3. Migrate Critical Guests
Move VMs and containers that cannot have downtime to other nodes. Migration from older to newer Proxmox VE is supported; reverse is not.
4. Update Existing System
Upgrade to the latest 8.4 packages:
bashapt update
apt dist-upgrade
pveversion
Ensure pveversion shows at least 8.4.1.
If using Ceph, verify version 19 (Squid) with:
textceph --version
5. Update Repository Sources
Replace Debian Bookworm with Trixie:
bashsed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
Add the new Proxmox VE 9 repository using the deb822 style.
Enterprise example:
bashcat > /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 example:
bashcat > /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
Remove or comment out old repository entries. Run apt update and apt policy to verify only the correct repositories remain.
6. Update Ceph Repositories (If Using Ceph)
For Ceph enterprise:
bashcat > /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
For no-subscription:
bashcat > /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
Remove old ceph.com repository entries. Refresh subscriptions if needed.
7. Refresh Package Index
bashapt update
8. Perform the Upgrade
bashapt dist-upgrade
Approve configuration changes as prompted. For important config files, review differences before accepting.
9. Reboot Into Updated Kernel
After dist-upgrade completes, re-run the pve8to9 checker. Then reboot to load the new Proxmox VE 9 kernel.
10. Post-Upgrade Steps
- Clear browser cache and reload Web UI (CTRL+SHIFT+R).
- For clusters: Repeat on each node.
- If using HA groups: They’re upgraded to HA rules automatically after all nodes run VE 9.
- Check logs (
journalctl -eu pve-ha-crm) for HA issues.
11. (Optional) Modernize Repository Format
You can migrate repositories to deb822 style:
bashapt modernize-sources
Review changes, then confirm to apply.
Common Issues & Fixes
- proxmox-ve package is outdated: Update your repositories to point to VE 8.x/Bookworm before running
apt update && apt dist-upgrade. - LVM autoactivation: Use the migration script
/usr/share/pve-manager/migrations/pve-lvm-disable-autoactivationto disable autoactivation for guest volumes on shared LVM storages as recommended by the checklist.linuxconfig+1youtube
This concise upgrade guide ensures you have all critical steps covered for a safe and successful move from Proxmox VE 8.4 to 9.0. For full details and troubleshooting, consult Proxmox’s official documentation.youtubepve.proxmox+1
Add to follow-up
Check sources
- https://pve.proxmox.com/wiki/Upgrade_from_8_to_9
- https://linuxconfig.org/proxmox-virtual-environment-9-0-released-a-comprehensive-update-with-enhanced-virtualization
- https://www.youtube.com/watch?v=XLZyC_1IX_Q
- https://www.youtube.com/watch?v=N3Bp4aEsUG4
- https://www.youtube.com/watch?v=U776Rp6TcrE
- https://forum.proxmox.com/threads/i-recommend-upgrading-from-8-4-to-9.169405/
- https://syncbricks.com/proxmox-ve-8-to-9-upgrade-guide-debian-bookworm-to-trixie/
- https://www.reddit.com/r/selfhosted/comments/1miwk44/proxmox_9_is_out_today/
- https://forum.proxmox.com/threads/proxmox-virtual-environment-9-0-released.169258/
- https://forum.proxmox.com/threads/i-messed-up-upgrade-9-0.169314/