Moving Virtual Box VDI files

2017-04-16

Note This works with encrypted VDI disks.

The virtual machine must be shut down before proceeding.

Backup first!

Backup all the .vdi and .vbox files. Ths is very important! If you're using encryption, these keys are inside the vbox file so make sure you back this up somewhere safe. From now on we don't touch the backups (unless something goes wrong), we're referring to the actual working .vdi and .vbox files.

Steps

  1. Copy the vdi to the other location, e.g a different hard drive.
  2. In VirtualBox Manager, right click on the machine and remove from the machine list. Select "Remove only" (not "Delete all files").
  3. Optional: Rename the original vbox file to something else. This is just a sanity check to make sure the machine won't later find the old VDI.
  4. Open the .vbox file in a text editor. Look for a section that looks a bit like:
<HardDisks>
<HardDisk uuid="XXX" location="Windows 8.1.vdi" format="VDI" type="Normal">
<Property name="CRYPT/KeyId" value="Windows 8.1"/>
<Property name="CRYPT/KeyStore" value="XXX"/>
</HardDisk>
  1. Edit the location= part to point to your new vdi location e.g location="E:\New Spot\Windows 8.1.vdi". Note that the location field will not have a drive or path if the vdi file is in the same directory as the vbox file. Save the modified vbox file.
  2. In VirtualBox Manager again, go to Machine > Add, and select your modified .vbox file. Check the settings, and they should be the same as before but the drive will be in a different location.
  3. Start and test the machine. If you followed all the steps above exactly, it should be working.
  4. You can safely remove the old .vdi file.

Notes

  • You can not have disks with the same UUID configured on your system. When you removed the machine from the list, it would have removed the disk from the Virtual Media Manager. If you skipped this remove and add machine part, this process won't work.

References