diff --git a/bin/disk-image-create b/bin/disk-image-create index de1443375..8b607603c 100755 --- a/bin/disk-image-create +++ b/bin/disk-image-create @@ -125,7 +125,11 @@ if [ -n "$DIB_IMAGE_SIZE" ]; then truncate -s${DIB_IMAGE_SIZE}G $TMP_IMAGE_PATH else # in kb*0.75 - underreport to get a slightly bigger device - _NEEDED_SIZE=$(sudo du --block-size=750 -x -s ${TMP_BUILD_DIR}/built | awk ' { print $1 } ') + # Rounding down size so that is is a multiple of 64, works around a bug in + # qemu-img that may occur when compressing raw images that aren't a multiple + # of 64k. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1180021 + _NEEDED_SIZE=$(sudo du --block-size=750 -x -s ${TMP_BUILD_DIR}/built | \ + awk ' { print $1 - ( $1 % 64) } ') truncate -s${_NEEDED_SIZE}K $TMP_IMAGE_PATH if [ "$FS_TYPE" = "ext4" ] ; then # Very conservative to handle images being resized a lot