Technical

Proxmox Recovery Mode Doesn’t Exist: Roll Back with ZFS Snapshots, Config Backups, or GRUB

Proxmox Recovery Mode Doesn’t Exist: Roll Back with ZFS Snapshots, Config Backups, or GRUB

There’s no Proxmox recovery mode — not like Windows has. If you broke something and you’re looking for that one button that undoes it, stop. What you actually have is three separate mechanisms: ZFS snapshot rollback, restoring config files from backup, and a GRUB rescue boot. Each one fixes a different kind of mistake, and using the wrong one just wastes your evening.

Detailed view of a server rack with a focus on technology and data storage.

Figure out what you actually broke

Before you roll anything back, know what changed. Did you edit a config file? Install a bad package? Delete a VM disk? The fix depends on that. Proxmox stores almost everything in /etc/pve — VM configs, storage definitions, network setup. Those are plain text files and they’re backed up automatically every day to /var/lib/pve-backup. If your mistake is in there, you don’t need snapshots.

ZFS snapshot rollback for VM and container data

If you’re on ZFS and you snapshotted the dataset before you messed with it, rollback is the fastest fix. List snapshots with zfs list -t snapshot. Find the one from before the mistake, then roll back:

zfs rollback pool/vm-100-disk-0@before-mistake

That restores the disk to that point. It’s instant, but it destroys any data written after the snapshot. If you need to keep the current state, clone the snapshot instead and boot from that. For a whole VM, you can also use Proxmox’s built-in snapshot feature from the web UI — same idea, just clicky.

Two computer hard drives and a shiny disk displayed on a wooden surface.

Restore config files from the daily backup

For config mistakes, go to /var/lib/pve-backup. There’s a tar file per day. Extract the file you need:

tar -xzf /var/lib/pve-backup/pve-backup-2024-12-01.tar.gz etc/pve/qemu-server/100.conf

Then copy it back over the broken one and restart the VM or service. This covers network configs, storage.cfg, user.cfg, everything in /etc/pve. If you edited something and the web UI won’t load, this is your fix.

GRUB rescue boot for when the host won’t start

If the host itself won’t boot — bad kernel, broken initramfs, whatever — you need GRUB. Reboot and hold Shift to get the menu, then edit the boot entry. Add init=/bin/bash to the kernel line and boot. That drops you into a root shell with no services running. From there you can fix the config, reinstall the kernel, or roll back a ZFS snapshot manually. It’s not a recovery mode, it’s just a rescue shell. But it’s often enough.

Which one to use

Deleted a file or broke a VM disk? ZFS snapshot. Changed a config and now the web UI is dead? Restore from /var/lib/pve-backup. Host won’t boot at all? GRUB rescue. Don’t mix them up. And if you don’t have snapshots or backups, well — that’s the real mistake. Set up automatic snapshots and keep the daily config backups. They’re already there by default, just don’t delete them.

If you’re debugging a host that crashes often, check how to debug Proxmox host crashes — it’s a different problem, but related.

Leave a comment

Comments are reviewed before they appear. Your email is never published.