Upgrades

How to Upgrade Proxmox VE 7 to 8: Complete Guide

Complete step-by-step guide for upgrading Proxmox VE 7 (Bullseye) to Proxmox VE 8 (Bookworm), covering pve7to8 checker, apt sources, Ceph upgrades, and common pitfalls.

ProxmoxR app icon

Managing Proxmox? Try ProxmoxR

Monitor and control your VMs & containers from your phone.

Try Free

Before You Begin: Prerequisites and Backup

Upgrading from Proxmox VE 7 to 8 is a major version jump that moves the underlying OS from Debian 11 (Bullseye) to Debian 12 (Bookworm). This brings a newer kernel, updated QEMU, refreshed LXC tooling, and a modernized web interface. However, it also requires careful preparation to avoid downtime or data loss.

Start by ensuring your current PVE 7 installation is fully updated. Every pending package should be installed before attempting the major upgrade:

# Update package index and apply all pending upgrades
apt update
apt dist-upgrade -y

# Reboot to ensure you are running the latest PVE 7 kernel
reboot

Take a full backup of your configuration directory and any critical VMs. If your host boots from ZFS, create a snapshot of the root pool. These safety nets are essential if something goes wrong mid-upgrade.

# Backup critical configuration
tar czf /root/pve7-backup-$(date +%F).tar.gz /etc/pve /etc/network /etc/hostname /etc/hosts

# If using ZFS root, snapshot the pool
zfs snapshot rpool/ROOT/pve-1@pre-pve8-upgrade

Running the pve7to8 Checklist Tool

Proxmox provides a built-in upgrade checker that validates your system is ready for the transition. Run it and carefully review every warning and failure:

pve7to8 --full

The checker examines your apt repositories, Ceph status, corosync configuration, running kernel version, and container compatibility. Every FAILURE must be resolved before continuing. Warnings should be reviewed and understood, even if they are not blocking. Common failures include having the enterprise repository enabled without a valid subscription key, or running an outdated kernel.

Updating APT Sources from Bullseye to Bookworm

The core of the upgrade is switching every Debian and Proxmox repository from Bullseye to Bookworm. Edit each source file carefully:

# Update Debian base repositories
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

# Update Proxmox VE repository
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-no-subscription.list

# If you use the enterprise repo
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/pve-enterprise.list

# If you have Ceph repositories configured
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/ceph.list

# Refresh package index
apt update

Verify the output of apt update shows Bookworm repositories without errors. Any 404 or GPG failures must be resolved before proceeding.

Performing the Distribution Upgrade

With sources updated, run the dist-upgrade. This is the point of no return for the package layer:

# Perform the distribution upgrade
apt dist-upgrade -y

During the upgrade, dpkg will prompt you about modified configuration files. Pay special attention to these:

  • /etc/issue - Safe to accept the new version
  • /etc/lvm/lvm.conf - Keep your local version if you have custom thin pool settings
  • /etc/default/grub - Keep your local version if you have custom kernel parameters, otherwise accept the new version
  • /etc/ssh/sshd_config - Keep your local version to preserve SSH settings

If the upgrade stalls on a grub installation prompt asking which disk to install to, select the correct boot disk. For ZFS root setups, you may need to run proxmox-boot-tool refresh after the upgrade instead.

Upgrading Ceph from Quincy to Reef

If you run Ceph on your PVE cluster, the Ceph version must be upgraded separately after the OS upgrade. PVE 8 ships with Ceph Reef (18.2.x). After upgrading the OS, update the Ceph repository and install the new packages:

# Verify current Ceph version
ceph version

# Update Ceph packages to Reef
apt update
apt install ceph ceph-osd ceph-mon ceph-mgr

# Restart Ceph services one at a time
systemctl restart ceph-mon@$(hostname)
systemctl restart ceph-mgr@$(hostname)

# Restart OSDs one by one, checking health between each
systemctl restart ceph-osd@0
ceph -s

Post-Upgrade Kernel and GRUB Verification

After rebooting into PVE 8, verify you are running the correct kernel and that GRUB is configured properly:

# Check running kernel
uname -r
# Expected: 6.2.x-x-pve or newer

# Verify Proxmox version
pveversion -v

# Refresh boot tool for ZFS or systemd-boot setups
proxmox-boot-tool refresh

# Update GRUB if using legacy boot
update-grub

Common Errors and How to Fix Them

The most frequent post-upgrade issues include a blank web interface (clear browser cache and restart pveproxy), corosync failing to start on cluster nodes (check that all nodes have matching corosync versions), and container AppArmor profile errors (update container templates with pct set <vmid> --features nesting=1 if needed).

If GRUB fails to install during the upgrade, boot from a rescue ISO, mount your root filesystem, chroot in, and run grub-install manually.

Cluster Upgrade Order

For clusters, upgrade one node at a time. Start with a non-quorum-critical node, migrate its VMs to other hosts, upgrade, reboot, verify it rejoins the cluster, then move to the next node. Never upgrade all nodes simultaneously. Tools like ProxmoxR can help you monitor cluster health across nodes during the rolling upgrade process, giving you visibility into each node's status as you proceed.

Take Proxmox management mobile

All the features discussed in this guide — accessible from your phone with ProxmoxR. Real-time monitoring, power control, firewall management, and more.

ProxmoxR

Manage Proxmox from your phone

Monitor, control, and manage your clusters on the go.

Free 7-day trial · No credit card required