Skip to main content

Restoring a VM from Backup in Proxmox VE and PBS

Proxmox VE · 19.04.2026 · 5 min read
Illustration for “Restoring a VM from Backup in Proxmox VE and PBS”

Restoring a VM from a backup in Proxmox VE is a straightforward process via the web interface or the CLI. PBS supports both full VM restores and extracting individual files, as well as Live Restore (running a VM directly from a backup).

Full VM Restore via the Web Interface

  1. Go to Storage → my-pbs → Backups
  2. Select the backup you need and click Restore
  3. Specify the VM ID, disk storage, and network settings
  4. Click Restore — the VM will be restored

Restoring via CLI (qmrestore/pctrestore)

# Restore a VM from a PBS backup with a new ID of 200
qmrestore pbs:backup/vm/100/2025-03-15T01:00:00Z 200   --storage local-lvm   --unique 1

# Restore an LXC container from PBS
pctrestore pbs:backup/ct/200/2025-03-15T01:00:00Z 201   --storage local-lvm   --unique 1

# Restore from a local vzdump file
qmrestore /mnt/backup/vzdump-qemu-100-2025_03_15-01_00_00.vma.zst 200

Live Restore — Instant Startup from a Backup

Live Restore lets you start a VM from a backup immediately, without waiting for the full data restore. PBS streams blocks on demand as they are accessed:

# Live Restore via the web interface
# Backups → Restore → enable "Start now (live restore)"

# Via CLI
qmrestore pbs:backup/vm/100/2025-03-15T01:00:00Z 200   --storage local-lvm   --live-restore 1

# Monitor Live Restore progress
qm status 200 --verbose 1
Live Restore RTO: The VM becomes available within 10–30 seconds after Live Restore starts, while data continues copying in the background. This dramatically reduces the RTO (Recovery Time Objective).

Restoring Individual Files

PBS lets you browse the contents of a backup and extract individual files without a full restore:

# Mount the backup as a filesystem
proxmox-backup-client mount pbs:backup-store:vm/100/2025-03-15T01:00:00Z   /mnt/restore

# Browse and copy the files you need
ls /mnt/restore
cp /mnt/restore/etc/nginx/nginx.conf /tmp/restored-nginx.conf

# Unmount
proxmox-backup-client umount /mnt/restore

Restoring to Another Host or to the Cloud

# Copy the backup to a remote PBS instance via a sync job
# PBS → Datastore → Sync Jobs → Add
# Source: local datastore
# Target: remote PBS instance

# Or download a specific backup directly
proxmox-backup-client restore pbs:backup-store:vm/100/...   drive-scsi0.img -
The --unique flag: When restoring, use --unique 1 to change the network interfaces' MAC addresses. Without this flag, the restored VM will get the same MAC addresses, which can cause conflicts on the network.

Restore errors

Three errors you are most likely to run into when restoring a VM from a backup.

TASK ERROR: unable to restore VM 100 - VM 100 already exists
problems could be detected reading archive - can't seek to 10485760
TASK ERROR: unable to create image: no such logical volume pve/data
  • VM 100 already exists: restoring into the same ID without removing the original is not allowed. Either specify a different VM ID, or delete or rename the existing VM before restoring.
  • can't seek to ...: the backup file is corrupted or was copied incompletely (a network interruption during the copy, or a filesystem with a 4 GB file-size limit). Check the checksum or run verify in PBS before restoring.
  • no such logical volume: the target LVM-Thin storage is full or the pool does not exist — check free space with pvesm status and extend the thin pool if needed.

Restore methods compared

MethodTime to a running VMNetwork loadWhen to use
Full restoreMinutes to hours (depends on size)High, one-offPlanned recovery, moving to new hardware
Live Restore10-30 secondsOngoing, in the backgroundProduction outage, minimal downtime required
File-level restoreSeconds per fileMinimalYou need one file or config, not the whole VM

When restoring from backup will not help

  • The backup is stale relative to your RPO: if the last backup ran overnight and the outage happens in the evening, a full day of changes is lost — critical services need replication, not just a once-a-day backup.
  • Application-level corruption (for example, an accidental DROP TABLE) that had already been captured in the backup — restoring just brings back the same corrupted state; you need a restore point from before the incident, not the latest one.
  • A backup with no regular verification: PBS can store blocks for years, but expired media or hidden chunk corruption only surfaces during a verify run or an actual restore.

Verifying the restore result

# Status of the restored VM
qm status 200 --verbose

# Check network interfaces after restore --unique
qm config 200 | grep net0

# Compare the disk checksum against the backup log (for critical data)
sha256sum /dev/pve/vm-200-disk-0

If the VM boots, the network interface got a new MAC address, and the checksum matches expectations, the restore succeeded. For setting up a regular backup schedule, see backup schedule in Proxmox VE.

Was this article helpful?
← Back to Knowledge Base Ask Support