Needed to shrink a full directory of QEMU QCOW2 images today that had grown over time with snapshots and general use. While there is information around on the web about it, the focus is on single images and the code provided are just examples.
Here’s a script to keep around that shrinks and compresses all images in a folder, and shows progress:
#!/bin/bash for imageFile in *.qcow2 do echo "Processing $imageFile" mv "$imageFile" "$imageFile.orig" qemu-img convert -p -c -O qcow2 "$imageFile.orig" "$imageFile" done echo "Warning: Test images before deleting the .orig files"
For convenience I stuck this in my QEMU image directory and made it executable. Be sure to test images and then delete the “.orig” files to save space.