I’ve previously presented a manual process for doing this, but lately I’ve had to do it more often, and I figured it was about time for automation.
This script will:
- Run e2fsck on the root file system
- Erase logfiles, such as bash_history and stuff in /var/log
- Erase the test.h264 video file
- Wipe resolv.conf
- Defragment the root file system
- Resize the root file system to the minimum size, according to resize2fs
- Resize the root partition to match the file system
- Zero-fill remaining free space on both partitions
- Create an image file of the exact length of the partitions
- Compress the image file to .zip, using the “ultra” setting for compression
Required runtime tools include:
- dd
- 7z
- resize2fs
- dumpe2fs
- e4defrag
This script is intended for Raspbian SD card images only, and may not work as intended with other distributions.
The script is currently hosted on github, and of course, there’s a local copy.
BONUS: A more general script for shrinking the last partition of existing image files. You might be able to draw inspiration from this.