#! /bin/sh renice 20 -p $$ guestfish=true if [ "$1" = "-n" ];then guestfish=false shift fi for file in "$@";do if [ "$file" = "${file%.qcow2}" ];then echo >&2 "Invalid: <$file>" exit 1 fi done for file in "$@";do ls -l "$file" du -sh "$file" set -xe mv -i "$file" "$file"-src rm -f "$file"-dest if $guestfish;then test "$(guestfish -n -a "$file"-src run : list-devices : list-partitions|tr '\n' ' ')" = "/dev/vda /dev/vda1 " guestfish -n -a "$file"-src run : zerofree /dev/vda1 fi time qemu-img convert -c -f qcow2 "$file"-src -O qcow2 "$file"-dest mv -i "$file"-dest "$file" rm -f "$file"-src set +xe ls -l "$file" du -sh "$file" done echo done