Merge checkpoints (avhdx / vhdx)

You have a task to extend virtual hard disk of Hyper-V VM, but the type of disk is “Differencing”. That means you have checkpoint (snapshot) attached to this VM. If it’s manually created checkpoint, you can delete it from Hyper-V manager. But sometimes delete option is not available, because the checkpoint was created by backup system (DPM) and usually it called “VM Name – Backup – Date”

It’s quite easy to merge checkpoint with virtual disk using Powershell commands. You have to run it directly on Hyper-V host where VM is running.

The following command will help you determine that a checkpoint is currently available on the VM:

Get-VMSnapshot -VMName -ComputerName| fl

This command will get and delete checkpoint from specified VM:

Get-VMSnapshot -VMName -ComputerName| Remove-VMSnapshot

You may also like


  1. Hi,
    this is nearly what I need, howevere – what if the backup (veeam – ugh !!!)program keeps crashing and you are left with a dozen checkpoint avhdx files…..
    I would like to merge all checkpoint files back to their parent disk, how could I do this?


  2. Hi!

    Thanks for great question!

    I had pretty same situation, in my case I had around 42 checkpoints 🙂

    Well I will recommend you the following:
    1. shutdown VM, copy it’s content to another location just for backup.
    2. Open Hyper-V manager console exactly on that server where VM is located. In this case you shouldn’t have any problems with secuirty rights.
    3. Click on Edit disk, select storage and very last avdhx file.
    4. Select Merge. Confirm merge with the parent disk.
    5 Repeat steps 3 and 4 until you have no avdhx files anymore in VM’s folder.

    Please note everytime you will do this operation, it will take longer and longer time. Because Hyper-V creates temporary vhdx file, merge last avhdx file from the chain with the previous one. As I remember to merge 500GB vhdx I took around 12 hours manual operations.

Leave a Reply

Your email address will not be published. Required fields are marked *