Intro
Ah, the hypervisor migration. That special project where you trade a familiar environment for a brave new world of command lines and wiki pages.
It’s all fun and games until you hit those Day 2 operations that were once muscle memory. Suddenly you need to recover that critical, TPM-enabled Windows VM after an admin “YOLO’d” a config change. That’s what snapshots are for right?! But hypervisor snapshots don’t work in every VM configuration, not to mention they come with their own technical limitations like host resource usage and complex log chains. You’ve just met the final boss of your migration.
But what if you could just… not deal with that? What if your storage array could handle the snapshot with zero drama, completely behind the scenes?
In this step-by-step guide, we’ll show you how to do exactly that. We’re configuring snapshot policies and restoring a “problematic” TPM-enabled Windows VM from a Pure Storage FlashArray NFS snapshot, turning a potential all-day headache into a 5-minute task.
Part 1: Setting up Automated Protection in Purity
Before we cover how to recover a VM with a snapshot, lets review how we can easily setup automated snapshots in Purity.
Create a Snapshot Policy
In short, Protection groups are for block volumes, Policies is where we find our File System snapshots
- Login to Purity and go to Protection>Policies
- Click the “+” icon and create a new snapshot policy. Name the policy and click “enabled”
- Click into the policy you created and now create a rule with the “+” button, specify a time and retention for your policy.
- Now add your directory serving as you Proxmox datastore by click ing the “+” in “Members”

Part 2: Restoring a VM from NFS Snapshot
Now we will move on to restoring the Windows TPM enabled VM.
Step 1: Identify the Source Snapshot and Disk File
First, locate the disk file you want to restore from the read-only snapshot directory.
- In the Proxmox shell, navigate to your NFS mount’s hidden
.snapshot
directory. - List the contents to find the snapshot you want to use (they are named by timestamp).
Bash
# Path will be similar to this
cd /mnt/pve/your-nfs-share/.snapshot/
# Example: ls -l # You will see directories like ‘<NAME OF SNAPSHOT POLICY>.2025-07-22-16-00-00’
- Navigate into the snapshot’s
images
directory to find the disk file of the original VM (e.g.,.../images/102/vm-102-disk-0.qcow2
). Note this full path.
Step 2: Create the New VM Shell in Proxmox
Create a new, empty VM that will become your restored instance.
- In the Proxmox UI, click Create VM.
- General Tab: Give the VM a new ID and Name (e.g.,
105
,web-app-01-restored
). - System Tab: Set the BIOS to OVMF (UEFI) and check the box to Add EFI Disk.

- Ensure CPU and Memory configurations match the original VM
- Disks Tab: Select Do not use any media.
- Hardware Tab (Post-Creation): If the original VM used a TPM, select the new VM, go to Hardware, and click
Add
->TPM State
.

- Finish the wizard but do not start the VM.
Step 3: Copy and Rename the Disk File
This is where you bring the data over. The best practice is to copy the disk file from the snapshot directly into the new VM’s dedicated directory.
- Create a new directory with
mkdir
in the primary images directory of the proxmox datastore (i.e.mkdir /mnt/pve/your-nfs-share/images/105
.) Make sure to match the VM ID of the Shell VM you just created. Use thecp
command to copy the disk file into it, renaming it to match the new VM’s ID.
Bash
# Syntax: cp <source_path_in_snapshot> <destination_path_for_new_vm> cp /mnt/pve/your-nfs-share/.snapshot/snap1/images/102/vm-102-disk-0.qcow2 \ /mnt/pve/your-nfs-share/images/105/vm-105-disk-0.qcow2
Step 4: Import and Attach the Disk
Now, tell Proxmox to register this copied file with your new VM.
- In the Proxmox shell, run
qm importdisk
:
Bash
qm importdisk 105 /mnt/pve/your-nfs-share/images/105/vm-105-disk-0.qcow2 your-nfs-share/
- In the Proxmox UI, go to the new VM’s Hardware tab. You will see an Unused Disk.
- Double-click the unused disk and click Add to attach it to the VM.

Step 5: Configure Boot Order and Power On
The final step is to make the restored disk bootable.
- Go to the VM’s Options tab and select Boot Order.
- Drag your newly attached disk to the top of the list to make it the primary boot device.
- Navigate to the Console and click Start.
Your VM will now boot up from the restored disk image.