Proxmox VE 8 to 9 Upgrade Guide
This guide provides detailed instructions for upgrading Proxmox VE 8 servers to Proxmox VE 9, based on a successful production upgrade.
Prerequisites
Before starting the upgrade, ensure:
- Server backups are completed
- All VMs and containers are backed up
- No critical workloads are running during upgrade window
- Console/IPMI access available in case of issues
Step 1: Run Pre-upgrade Check
First, run the comprehensive upgrade checker to identify any issues:
pve8to9 --full
This will check 45+ components and identify any warnings or failures that need resolution before proceeding.
Step 2: Resolve Pre-upgrade Issues
Based on the checker output, resolve common issues:
Update Available Packages
apt update && apt upgrade -y
Fix GRUB Bootloader Configuration
If you see bootloader warnings about removable EFI boot:
echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v
apt install --reinstall grub-efi-amd64
Remove Conflicting systemd-boot Package
apt remove systemd-boot
Install Intel Microcode (Intel systems only)
Enable non-free-firmware repository and install microcode:
# Update sources.list to include non-free-firmware
echo 'deb http://deb.debian.org/debian bookworm main contrib non-free-firmware' > /etc/apt/sources.list
echo 'deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware' >> /etc/apt/sources.list
echo 'deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware' >> /etc/apt/sources.list
apt update
apt install intel-microcode
Step 3: Verify All Issues Resolved
Re-run the pre-upgrade checker to confirm all issues are fixed:
pve8to9 --full
You should see: TOTAL: 45, PASSED: 38, SKIPPED: 5, WARNINGS: 0, FAILURES: 0
Step 4: Configure Proxmox VE 9 Repositories
For No-Subscription Environments
Create the new Proxmox VE 9 repository in deb822 format:
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
For Enterprise Environments
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
Step 5: Remove Old Repository Files
Clean up old repository configurations to avoid conflicts:
rm -f /etc/apt/sources.list.d/pve-install-repo.list
rm -f /etc/apt/sources.list.d/pve-enterprise.list
Step 6: Update Package Lists and Verify
apt update
apt policy
Verify that the output shows only the desired repositories and no conflicts.
Step 7: Perform the Upgrade
Execute the distribution upgrade:
apt dist-upgrade
Expected upgrade scope:
- ~595 packages to be upgraded
- ~142 new packages to be installed
- ~59 packages to be removed
- ~1.2 GB additional disk space needed
The upgrade process typically takes 15-45 minutes depending on system specifications and network speed.
Step 8: Post-Upgrade Steps
Reboot the System
reboot
Verify Upgrade Success
After reboot, check the version:
pveversion
Should show Proxmox VE 9.x.x
Check System Status
systemctl status pve-cluster pveproxy pvedaemon pvestatd
Verify Storage and Services
pvesm status
pve-firewall status
Check Running VMs and Containers
qm list
pct list
Modernize Repository Sources (Recommended)
Convert old sources.list format to modern deb822 format:
apt modernize-sources
This will:
- Convert
/etc/apt/sources.list
to/etc/apt/sources.list.d/debian.sources
- Add proper GPG signatures automatically
- Create backup files (.bak) for safety
- Modernize other .list files to deb822 format
After modernization, clean up any unused enterprise repositories if you don’t have a subscription:
# Remove enterprise repo if you get 401 Unauthorized errors
rm -f /etc/apt/sources.list.d/pve-enterprise.sources
apt update
Final System Health Check
# Check system resources
free -h
df -h /
# Verify uptime and kernel
uptime
uname -r
# Check for any service issues
journalctl --since "1 hour ago" --priority=err
Key Changes in Proxmox VE 9
- Debian 13 (Trixie) base system
- Ceph 19.2.3 integration
- QEMU 10.0.2 hypervisor
- Linux Kernel 6.14.x with latest hardware support
- Updated networking stack with enhanced performance
- Enhanced security features and hardening
- Modern deb822 repository format (use
apt modernize-sources
) - Improved container and VM management
- Better resource monitoring and statistics
Troubleshooting
Common Issues
- Repository Conflicts: Ensure old .list files are removed
- Package Conflicts: Run
apt autoremove
after upgrade - Boot Issues: Verify GRUB configuration is correct
- Service Failures: Check logs with
journalctl -xe
- 401 Unauthorized Errors: Remove enterprise repository if no subscription
- Sources Modernization Fails: Manually create .sources files if needed
- Web Interface Inaccessible: Check pveproxy service and SSL certificates
- Storage Issues: Verify NFS/CIFS mounts and permissions
Emergency Recovery
- Boot from Proxmox VE installation media
- Mount existing system and chroot
- Restore from backups if necessary
Post-Upgrade Verification Checklist
Core System Verification
- Version Check:
pveversion
shows Proxmox VE 9.x.x - Kernel:
uname -r
shows 6.14.x-x-pve or newer - Services: All core services running (
systemctl status pve-cluster pveproxy pvedaemon pvestatd
) - Storage: All storage pools active (
pvesm status
) - Firewall: Status shows “disabled/running” or as configured (
pve-firewall status
) - Memory/Disk: Adequate free resources (
free -h && df -h /
)
Repository Modernization
- Sources Modernized: Run
apt modernize-sources
successfully - Backup Created: Original .list files backed up as .bak
- Enterprise Repo: Removed if no subscription to avoid 401 errors
- Update Works:
apt update
runs without errors
Application Testing
- Web Interface: Accessible at https://your-server:8006
- VM Management: Can start/stop VMs (
qm start/stop VMID
) - Container Management: LXC containers function (
pct start/stop VMID
) - Storage Access: Can create/delete disk images
- Network: VMs/containers have network connectivity
- Backup Jobs: Scheduled backups continue to work
- Cluster: All nodes communicate (if clustered:
pvecm status
) - Console Access: VNC/SPICE consoles work for VMs/containers
Performance and Monitoring
- System Load: Reasonable CPU/memory usage
- Error Logs: No critical errors (
journalctl --since "1 hour ago" --priority=err
) - Hardware: Intel microcode loaded (Intel systems)
- GPU Passthrough: Still functional if previously configured
- Monitoring: Graphs and statistics updating properly
Notes
- This upgrade path moves from Debian 12 (Bookworm) to Debian 13 (Trixie)
- Ensure adequate downtime window for mission-critical environments
- Consider testing on non-production systems first
- Keep rescue media and backups readily available
Additional Resources
Last updated: October 16, 2025 Tested on: Proxmox VE 8.4.x → 9.0.x