Skip to content

Instantly share code, notes, and snippets.

Created September 24, 2012 10:02
What would you like to do?
Script to reduce VM size before packaging for vagrant
# Credits to:
# -
# -
aptitude -y purge ri
aptitude -y purge installation-report landscape-common wireless-tools wpasupplicant ubuntu-serverguide
aptitude -y purge python-dbus libnl1 python-smartpm python-twisted-core libiw30
aptitude -y purge python-twisted-bin libdbus-glib-1-2 python-pexpect python-pycurl python-serial python-gobject python-pam python-openssl libffi5
apt-get purge -y linux-image-3.0.0-12-generic-pae
# Remove APT cache
apt-get clean -y
apt-get autoclean -y
# Zero free space to aid VM compression
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
# Remove bash history
rm -f /root/.bash_history
rm -f /home/vagrant/.bash_history
# Cleanup log files
find /var/log -type f | while read f; do echo -ne '' > $f; done;
# Whiteout root
count=`df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}'`;
let count--
dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count;
rm /tmp/whitespace;
# Whiteout /boot
count=`df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}'`;
let count--
dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count;
rm /boot/whitespace;
swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'`
swapoff $swappart;
dd if=/dev/zero of=$swappart;
mkswap $swappart;
swapon $swappart;
Copy link

What about replace let count-- by : $((count -= 1))?

Copy link

nah... just replace #!/bin/sh to #!/bin/bash

works for me =]

thx a lot

Copy link

Had to change the last block to

swappart=$(cat /proc/swaps | grep -v Filename | tail -n1 | awk -F ' ' '{print $1}')
if [ "$swappart" != "" ]; then
  swapoff $swappart;
  dd if=/dev/zero of=$swappart;
  mkswap $swappart;
  swapon $swappart;

Otherwise a "Filename" file is created occupying the entire disk if the script is run twice

Copy link

mkno commented Jun 4, 2016

well this did nothing for me. I actually removed a bunch of large files but after running this script the resulting box size was GREATER! how in the hell does deleting file end up increasing the box size????

update: doing @evgeny-goldin's suggestion seems to have worked.

1.8gb went to 750mb so I'm not complaining.

Copy link

I went from having 8GB image to 2.6GB, thanks!

Copy link

utdrmac commented Aug 7, 2017

How come the dd for swap has no bs nor count?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment