Restore a corrupted ZFS dataset from PBS
1 · Prerequisites
Confirm every item is in place before any state change.
- A PBS server with backups of the affected VM
- A spare host or spare disk to restore to
- Network connectivity between PVE host and PBS
2 · Pre-checks
Read-only diagnostic commands. If any of these don't match expected output, stop and investigate further.
- · Identify the affected VM and the last known-good backup: proxmox-backup-manager list <vmid> --repo <pbs>
- · Verify the backup snapshot exists and has not expired: proxmox-backup-manager snapshot list <vmid> --repo <pbs>
- · Verify target storage has enough free capacity: pvesm status
- · Confirm target VMID is free: qm list
3 · Procedure
Execute each step in order. Verify the expected output of a step before moving to the next.
- 1Identify the VMID and snapshot to restore: proxmox-backup-manager list <vmid>
- 2Restore the VM config first: qmrestore <backup-archive> <new-vmid> --storage <target>
- 3Boot the restored VM in a network-isolated environment (use a separate VLAN or isolated bridge)
- 4Verify the data inside the VM: check application-level consistency
- 5Compare against the last known-good state if possible
- 6Once verified, decide whether to copy specific files to the running VM, or replace it entirely
- 7If replacing: stop the corrupted VM, destroy it, start the restored one
- 8Update DNS, monitoring, and any backup chains that pointed to the old VMID
4 · Verification
Confirm the procedure actually fixed the problem.
- ✓Restored VM boots and starts its services
- ✓Application data is consistent (database integrity checks pass, file checksums match)
- ✓Last backup of the original VM is preserved for reference
- ✓PBS continues to back up the restored VM with a new chain
5 · Rollback
If verification fails, undo the procedure in reverse order.
- ↶If the restored data is also corrupt, go further back in the snapshot history
- ↶In a worst case, restore from off-site PBS replica or tape backup
- ↶Never delete the corrupted VM until the restore is verified
6 · Escalation
When the runbook isn't enough, contact:
- · Application owner for service verification
- · PBS admin if backup archive is corrupted
Restore a corrupted ZFS dataset from PBS
This runbook covers the case where the original ZFS dataset is
unrecoverable (corruption beyond ZFS’s self-healing, hardware failure
of multiple disks, or accidental zfs destroy). The goal is to
restore to a new VM and verify before swapping.
What ZFS can and cannot recover
ZFS protects against silent data corruption using checksums and copies. As long as at least one good copy survives, ZFS will heal during a scrub. This runbook is for the cases where ZFS can’t heal: multiple disk failures, host-level corruption, or operator error.