Save to My DOJO
Table of contents
By default, the checkpoint files for any given Hyper-V virtual machine are stored in a Snapshots sub-folder of its primary containing folder. “Snapshots” is what checkpoints were called in earlier versions, but the folder naming and some other elements have not yet been updated to match.
If you are using Hyper-V’s defaults, then the virtual machines’ master folder is C:ProgramDataMicrosoftWindowsHyper-V, and underneath that is a Snapshots folder. Any virtual machines created in the default location with default settings will place any of its checkpoint files in that folder with the exception of the differencing virtual hard disk files. Those are always kept in the same location as their parent virtual hard disk.
If you’d like, you can change where the checkpoint files are located on a per VM basis by following these instructions:
- Open Hyper-V Manager. In the left pane, choose the host that owns the virtual machine you wish to modify.
- In the upper center pane, click to select the virtual machine to be changed. Ensure that it doe not already have any checkpoints; the middle center pane will list any if they exist.
- Right-click on the virtual machine and choose Settings.
VM Settings
- In the dialog that appears, select the Checkpoint File Location tab on the left. On the right, you’ll see the fields as shown in the following screenshot. If the VM is clustered, there will be a warning that you cannot use this tool to change the location. Use Failover Cluster Manager instead; directions are nearly the same.
Default Checkpoint Location
A few things to note:
- This setting only affects the XML and, if necessary, BIN and VSV file placement for the checkpoint. It’s necessary to keep them separate from the primary files because they use the same name. The checkpoint’s differencing virtual hard disks are created alongside the parent.
- Do not manually specify a Snapshots sub-folder. One will be automatically created if it does not exist. This is to ensure that there is no collision with live VM files.
- Do not attempt to manually manipulate any checkpoint file. Doing so will prevent successful merge when the checkpoint is deleted. Similarly, do not manipulate any file belonging to the live virtual machine while a checkpoint is operational or the checkpoint may become completely invalidated, leading to lost data.
- Changes here only affect a single VM. To operate on multiple virtual machines at once, you must use PowerShell.
- Changing the location for a virtual machine has no effect on the host’s global default location for all virtual machine files.
[thrive_leads id=’17660′]

Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!
11 thoughts on "How To Change a VM’s Checkpoint Location in Hyper-V"
i want to change checkpoint type. production to standard. but i am unable to see the option where to i can change the type.
when i click on hyper v manger there is no any option of checkpoint. when i click on vm setting then i see only checkpoint location.
please reply me back as soon as possible. thanks
i want to change checkpoint type. production to standard. but i am unable to see the option where to i can change the type.
when i click on hyper v manger there is no any option of checkpoint. when i click on vm setting then i see only checkpoint location.
please reply me back as soon as possible. thanks
Hi Eric.
Since it’s the first time i’m replying to one of your post, I’ll say that your blogs are my favorite when it comes to Hyper-V. Thanks!
Now to checkpoints – can you tell how can it be done via Powershell? I could my any documentation on it.
Thanks.
Hi Lior, and thanks!
You relocate checkpoints with Move-VMStorage: https://technet.microsoft.com/en-us/itpro/powershell/windows/hyper-v/move-vmstorage.
I don’t know that we’ve written anything up for that particular usage.
However, be aware that this will only move the VM definition files. The AVHDX files cannot be easily moved away from their parent VHDXs.
Works like magic! Thanks Eric!
This is why I enjoy your blogs! 🙂 An answer to any question.
OK, this is my first time ever asking for assistance from a Blog.
So, here goes:
I have a Hyper-V environment with Failover clustering.
I have 2 SAN devices, one is new and fast (all the VMs are there) and one older and slower (Empty)
Is it possible to move the Snapshots of my VMs to the Older NAS so as to provide enough space for multiples without damaging the VMs?
I assume that I will need to merge and delete any current Snapshots before I do anything.
Moving a snapshot won’t save much space because it’s just some configuration files. What you likely want to move are the virtual hard disks.
To move a VM’s storage without interruption, you need to do a Storage Migration. You don’t mention your version, but you need to be on at least 2012: https://www.altaro.com/hyper-v/hyper-v-storage-migration/.
With the built-in tools, you can’t move a checkpointed VHDX without its AVHDX and vice-versa. It can be done manually but not without downtime and some headache.
Merging the checkpoints first would be ideal, but it’s not required.
Thank you! I was hoping for a different answer, but such is life.
A bigger question: why are your snapshots so big and common that you need alternative storage? Sounds like a change in architectural approach might be warranted. Snapshots should be rare and short-lived.