Shrink Virtual Hard Disk Size
Free disk space. Decrease the size of a virtual disk. Decrease virtual machine storage capacity.
Over the course of many system upgrades, logging, etc. the image files can grow substantially. Deletion of obsolete files does not automatically shrink the disk size back as it has “grown” to accommodate the data needed.
A tool called zerofree free is needed to shrink the backing virtual disk file. Since the default are ext4 partitions, the process might be bit involved:
Inside the VM:
1. Install the package
zerofree in the virtual machine you want to shrink.
zerofree. To accomplish that, the following steps A. to D. need to be done.
A. Update the package lists.
sudo apt update
B. Upgrade the system.
sudo apt full-upgrade
C. Install the
sudo apt install --no-install-recommends zerofree
The procedure of installing
zerofree is complete.
2. Erase what you need in the VM, run apt-get purge, apt-get autoremove, apt-get clean, etc. as needed.
3. Reboot your virtual machine in recovery mode.
4. At the command prompt, type systemctl stop systemd-journald.socket && systemctl stop systemd-journald.service && mount -o remount,ro / && zerofree -v /dev/vda1 && shutdown now
5. Shut down the VM.
On the host:
6. Open a terminal on the host.
7. Switch to root.
8. Change directory to the
9. View files inside the
10. Create a back up of the disk you want to shrink by moving
YourVirtualMachineDisk.qcow2with the actual name of your virtual harddisk.
YourVirtualMachineDisk.qcow2.backupwith the actual name of your virtual harddisk.
mv YourVirtualMachineDisk.qcow2 YourVirtualMachineDisk.qcow2.backup
11. Shrink the disk using
qemu-img convert -O qcow2 -p YourVirtualMachineDisk.qcow2.backup YourVirtualMachineDisk.qcow2
12. Boot up the VM and see if it is working. If it is, you can delete the backup of the qcow file.
There are ways you can get more creative with this using thin provisioned images that are based on a static qcow2 backing file, a preferred method. However the above is a basic method for getting a shrunken qcow2 disk file. 
Build from Source Code
Refer to Build and Update Kicksecure from Source Code and utilize this setting:
- Credit goes to forum user tempest: https://forums.whonix.org/t/is-it-possible-to-re-shrink-the-qcow2-image-files/13228/3