Recently I experienced a strange issue regarding snapshots in Hyper-V. I had to remove a snapshot (Checkpoint) of particular VM, but I could not find the delete option. In this guide, you can find out how to delete snapshot in Hyper-V when the delete option is not available in GUI.
I’m sure this checkpoint was created by the third-party backup tool. Usually, it should have been deleted by the VM backup tool once the backup is succeeded. Even if it misses in the first attempt, it should happen in the next run. But, in this case, the checkpoint was there. Somehow I need to remove it because it was preventing me from modifying any settings of the particular VM configurations. For example, when there is a checkpoint, we can’t edit most of the settings such as adding a new hard disk or extending the space of the existing drive.
Difference in GUI
Usually, the delete option should appear as below. That is the usual way to delete a snapshot.
Here is the screenshot when the delete option not available to delete a checkpoint in Hyper-V.
My Hyper-V setup runs with 4 node Windows 2012 R2 data center cluster.
What to Do when Checkpoint Delete Option Not Available
If you experience this issue, it can be fixed in several ways. Try the below steps first.
1) In Hyper-V manager, select the host server and refresh. It may restore the server connection and any missing parts.
2) Close the Hyper-V manager console, wait and reopen again. This is basically to reset/refresh the connection.
3) If none of the above steps bring back the delete option in GUI, select the checkpoint and press Delete key in the keyboard. It doesn’t matter whether you see the delete option or not, press the keyboard delete key.
If the above command passes successfully, you will get the confirmation dialog box like below.
Press Yes to delete the snapshot. That is how I fixed this issue.
Try PowerShell to Delete Checkpoints in Hyper-V
If the above GUI steps did not work, we have the final and reliable option with Powershell.
In a cluster environment with administrative privilege, you can run the below Powershell command from any of the servers. We need to identify the owner of the VM while executing the command. Since we call the owner node with the -ComputerName key, it should work from any servers.
Get-VMSnapshot -ComputerName <Name-of-Computer> -VMName <Name-of-VM> | Remove-VMSnapshot
Before executing the delete command, you can view the snapshots of particular VM by below command.
Get-VMSnapshot -ComputerName <Name-of-Computer> -VMName <Name-of-VM>
In this example, hvsrv3 is the Hyper-V host of the VM, which has a snapshot that I want to delete.
Now issue the remove/delete command as below.
Remember, we have not mentioned the snapshot name in any commands. We called the VM and Hyper-V server name only.
You can try the similar command from the host of the virtual machine, in that case, we do not need to mention the server name.
Get-VMSnapshot -VMName “sql2012srv” | Remove-VMSnapshot
Once the command succeeded in GUI or Powershell, you can see the merge progress for the particular VM.
Depending on the snapshot size and how busy is your Hyper-V host; it may take some time to merge with the original virtual hard disk.
Now you should be able to modify the virtual machine configuration or any other settings which were stopped due to the existence of checkpoint.