Virtualbox, merging snapshots and base disk

What you want to do is from the snapshots dialog, select your parent snapshot that you want to merge all snapshots afterwards to a single VDI.

From your description it sounds like this is the root of the tree.

Right click and select 'Delete Snapshot'.

This will do what you want --- it will merge all the changes from all child snapshots into a single VDI.

Additionally - cloning the disk image that is in the latest snapshot - will also merge the differencing disk with its parent (and its parent, so on, until you get to a 'normal' hard disk type).

I suspect that 'deleting a snapshot' runs the clonehd command.

Check your VM settings (specifically IO APIC enabled/disabled) and make sure they match.


If you only want to keep a single snaphot, make it your current state & then export the VM & re-import it. Exported appliances don't retain their snapshot history.

Or you could use this vboxmerge.py script to handle the merging for you. Given the number of snapshots you have, I would expect the export/import cycle to be quicker.


Here's a technique (tested on VirtualBox 4.3.4) that uses the 'Clone' command to merge and compact all the snapshots to a new VM containing a single VDI file:

  1. Rename the VM so you can reuse its current name for cloned VM (you can change the VM name from the 'Basic' tab of the 'General' settings).

  2. Right-click on the VM and run the 'Clone...' command:

    • Set the name to the VM's original name.
    • Accept the remaining defaults i.e. Clone type: 'Full clone'; Snapshots: 'Current machine state'.
  3. Delete the old VM (right-click on the VM and run the 'Remove...' command).