At home I use Linux exclusively in virtual machines under Windows. Call me spoiled but I still use Windows as my main OS.
Since I have multiple machines quite often I use dynamic disks (Microsoft VHD format) so I can fit them all on my notebook. With usage some of them simply grow to large and a compact is needed.
In order for compact to work, we need to zero-out all free disk space. While dd
is a popular choice, I personally prefer zerofree
. As always, first step is to install it:
$ sudo apt-get install zerofree
...
Again, there are ways to do it on-line but I prefer to play it safe. Upon system reboot, just press <Shift> and you'll be greeted by Grub's menu. Go to Recovery
and select root
. Once single user prompt is shown, everything is ready for zerofree
:
$ zerofree /dev/sda1
Once command has completed (and it'll take a while) shut machine down.
As Linux virtual machine is powered off we are ready for Windows part. Everything here is done in the diskpart
:
DISKPART> select vdisk file "C:\VMs\Mint\Mint.vhd"
DiskPart successfully selected the virtual disk file.
DISKPART> attach vdisk readonly
DiskPart successfully attached the virtual disk file.
DISKPART> compact vdisk
DiskPart successfully compacted the virtual disk file.
After this is done, your virtual disk should be much smaller than before.