The procedure is described in detail on the official wiki. I will now summarize it briefly and clearly. I am assuming use without a subscription, as is common in a private setting.
Requirements
- PVE 8 must be updated to the latest possible version, at least v8.4.1.
- SSH access is recommended.
- For safety reasons, back up everything.
- At least 5 GB of free space in the root partition, preferably 10 GB.
When using Proxmox Backup Server or Ceph, there are a few more things to consider.
Let’s go…
The Proxmox team has really simplified the process. There is a script that automatically checks whether everything is ready for an upgrade. You can run it with the following command:
pve8to9 --fullIf problems arise, the easiest thing to do is to google the issues. I didn’t encounter any serious problems. Then continue with these commands, one after the other:
apt update
apt dist-upgrade
pveversionThe version displayed at the end should be at least 8.4.1, as mentioned above. Now the repositories are adjusted:
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.listThe new PVE 9 repository in deb822 format can be added as follows (No Subscription!):
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
EOFYou can then check whether it works with:
apt update
apt policyThe repository must also be updated for Ceph (No Subscription!):
cat > /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
EOFapt update
apt policyThe biggest and final step follows now:
apt dist-upgradeA lot of work is currently being done, and after a final restart, the upgrade to PVE 9 should have gone smoothly. After that, you can search for updates in the web GUI as usual; none should be found.