This guide walks through upgrading a Proxmox VE 7.0 host to 8.4 while running a TrueNAS Core VM with physical disk passthrough. It includes all preparation, verification, and cleanup steps used successfully in a real production setup.
Goal: Migrate from Proxmox VE 7.0 (Debian 11 Bullseye, kernel 5.11) to Proxmox VE 8.4 (Debian 12 Bookworm, kernel 6.8).
pveversion
df -h
qm list
Because the TrueNAS VM manages large raw disks (7 TB+), skip full VM backup and instead back up only configuration data.
zpool status
zpool export <poolname>
qm shutdown 100
qm list
ls -l /dev/disk/by-id/ | grep WDC
Example output:
ata-WDC_WD4003FFBX-68MU3N0_VBGZSV3F -> ../../sdc
ata-WDC_WD4003FFBX-68MU3N0_VBH011ZF -> ../../sdb
These IDs are persistent and will survive the upgrade.
Back up important virtual machines (for example, QuickBooks) to local storage:
vzdump 104 --mode snapshot --compress zstd --storage local
ls /var/lib/vz/dump
Typical output:
vzdump-qemu-104-2025_10_29-23_41_00.vma.zst
apt install -y debian-archive-keyring
sed -i 's/^deb /#deb /' /etc/apt/sources.list.d/pve-enterprise.list
cat >/etc/apt/sources.list.d/pve-no-subscription.list <<'EOF'
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
EOF
apt update
apt full-upgrade -y
reboot
After reboot:
pveversion
uname -r
Confirm kernel 5.15.x-pve and Proxmox 7.4.
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
apt update
apt full-upgrade -y
After installation finishes successfully, reboot:
reboot
Verify after login:
pveversion
uname -r
Expected output:
pve-manager/8.4.x (running kernel: 6.8.12-16-pve)
systemctl status pvedaemon pveproxy pvestatd --no-pager
ls -l /dev/disk/by-id/ | grep WDC
qm start 100
TrueNAS will automatically re-import its ZFS pool.
sed -i 's/^deb /#deb /' /etc/apt/sources.list.d/pve-enterprise.list
rm /etc/apt/sources.list.d/pve-enterprise.list.dpkg-dist
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
apt update
Ensure your /etc/apt/sources.list includes:
deb http://deb.debian.org/debian bookworm main contrib
deb http://deb.debian.org/debian bookworm-updates main contrib
deb http://security.debian.org bookworm-security main contrib
apt autoremove --purge -y
apt clean
dpkg --list | grep pve-kernel
After a few weeks of stability, you may remove older kernels with:
apt remove pve-kernel-5.15.158-2-pve
apt update && apt full-upgrade -y monthlysed -i.bak "s/data.status !== 'Active'/false/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy
The node now runs Proxmox VE 8.4 with kernel 6.8. All VMs and TrueNAS storage operate normally, with cleaner repos and a stable update path for the future.
โ Written by Kevin White, Tech Pro HQ