I was surprised to see the virtual disk image (VDI) of my Ubuntu 17.10 headless server was at 9 GB instead of 4 GB (as reported by Glances). So I went to investigate with the goal to free up that stray 5 GB.
Ignore the label. It is actually Ubuntu 17.10 server
After a quick reading session, I learned that files never get deleted from drive, they are just marked as “deleted” by the operating system, or in computer lingo it is called unallocated. The truth is, files are still there. To completely wipe them out, it can be done by overwriting them with zero. I went with
zerofree to get this done.
There are two parts for this: first, boot the guest OS into recovery mode (so drive our target drive,
/dev/sda1, is not mounted by the oprating system) with
root shell to perform wiping out operation with
zerofree. The second step is shutting down the VM to perform
modifymedium --compact operation with
Note: I did this operation on my Ubuntu 17.10 headless server with Windows 10 host. On Windows 10 host, I am using ConEmu as my terminal.
zerofree inside guest OS
First, boot into recovery mode. The boot splash screen can go really quick, so pay attention here. What I did was I frantically pressed the
<Esc> key so that I could catch the GRUB bootloader. After that, go into the recovery mode and then drop to the root shell.
The next step is to execute
zerofree against target partition. Since I partitioned my Ubuntu with LVM when I first installed it, there was a slight twist. If I partitioned my drive without LVM, I would be expecting my target drive being
/dev/sda1. Instead, with the command
df, I saw:
… as my partition. No big deal. Let’s run
zerofree against that partition.
zerofree -v /dev/mapper/hendriks--vg-root
… and wait for a little bit.
Once this operation comes to its completion, issue
poweroff command to turn off the VM and proceed to the second part on host machine.
ModifyMedium on Windows 10 host
VBoxManage.exe resides within
C:\Program Files\Oracle\VirtualBox. Change into this directory first with
cd command. After that, run
VBoxManage.exe to start the process.
# Change directory cd "C:/Program Files/Oracle/VirtualBox" # Run ModifyMedium ./VBoxManage.exe modifymedium --compact ~/path/to/vdi.vdi
This would take a few minutes to finish. Once it is done, you might want to compare the size of the VDI before and after the process.
Thanks to an article on How To Geek and a thread on Super User.