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
- Go to Storage → my-pbs → Backups
- Select the backup you need and click Restore
- Specify the VM ID, disk storage, and network settings
- 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
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 -
--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 statusand extend the thin pool if needed.
Restore methods compared
| Method | Time to a running VM | Network load | When to use |
|---|---|---|---|
| Full restore | Minutes to hours (depends on size) | High, one-off | Planned recovery, moving to new hardware |
| Live Restore | 10-30 seconds | Ongoing, in the background | Production outage, minimal downtime required |
| File-level restore | Seconds per file | Minimal | You 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.