When possible I always try to run my Virtual Machine on SSD, that way I can maximize the speed when doing work inside the VM. The biggest drawback is the limited storage on SSD. Recently this drawback caused a serious problem with VirtualBox. My Windows 10 VM failed to install the latest insider build due to host machine storage constraints. As a result, my VM hangs, unable to start up, unable to delete previous snapshots, and unable to rollback.
How To Troubleshoot VirutalBox Out of Storage
Below is one of the error messages I got when attempting to delete previous snapshots, as you can see, it too failed.
Failed to delete the snapshot <your snapshot name> of the virtual machine <your virtual machine name> Details, Unable to merge storage <snapshot path> not enough free storage space.
Result Code: E_OUTOFMEMORY (0x800700E) Component: SessionMachine
Interface: IMachine
Check Windows Explorer. Indeed, there are less than 1 MB of storage space left on the 256GB of SSD.
Quickly scan with WinDirStat confirmed that the snapshots for each VM use more storage space than the actual .vdi image. Given that we are unable to delete snapshots from the VirtualBox UI nor discard the current state, the VM is in a halted state.
One way to solve this problem is to move the entire VM to a different hard drive with more disk space, which will, however, defeat the entire purpose of running it off SSD. The solution is to move all the “Snapshots” content into a separate hard drive and use a symbolic link to trick VirtualBox that everything is still at the right location.
First, you need to copy everything under Snapshots to a new location.
For example, I will move everything from F: drive’s Windows 10\Snapshots folder into (new folder) D:\VirtualBox Snapshots\Windows 10. Once done, copy over the file, delete the original Snapshots directory in F drive.
Create a Symbolic link as follow
This will create a link of “Snapshots” under the previous location and link to D:\VirtualBox Snapshots\Windows 10
Now you should be able to start up your VM again while still maintaining the main .vdi file on the SSD.