Skip to content

Instantly share code, notes, and snippets.

@r0mdau
Created April 4, 2018 16:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save r0mdau/bbe97cfedefcbbe9600d86a0a7c08685 to your computer and use it in GitHub Desktop.
Save r0mdau/bbe97cfedefcbbe9600d86a0a7c08685 to your computer and use it in GitHub Desktop.
Compact virtualbox .vdi

Source: StackOverflow

1. Run defrag in the guest (Windows only)

2. Nullify free space:

With a Linux Guest run this:

sudo dd if=/dev/zero | pv | sudo dd of=/bigemptyfile bs=4096k
sudo rm -rf /bigemptyfile

or

telinit 1
mount -o remount,ro /dev/sda1
zerofree -v /dev/sda1

With a Windows Guest, download SDelete from SysInternals and run this:

sdelete.exe c: -z

(replace C: with the drive letter of the VDI)

3. Shutdown the guest VM

4. Now run VBoxManage's modifyhd command with the --compact option:

With a Linux Host run this:

vboxmanage modifyhd /path/to/thedisk.vdi --compact

With a Windows Host run this:

VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compact

With a Mac Host run this:

VBoxManage modifyhd /path/to/thedisk.vdi --compact
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment