Merge "Zerofree the image if possible"
This commit is contained in:
commit
5da32104b3
@ -335,7 +335,9 @@ if [ -n "$MAX_ONLINE_RESIZE" ]; then
|
||||
fi
|
||||
|
||||
LOOPDEV=$(sudo losetup --show -f $TMP_IMAGE_PATH)
|
||||
export EXTRA_UNMOUNT="detach_loopback $LOOPDEV"
|
||||
# Definied here for backward compat against set -u
|
||||
export EXTRA_UNMOUNT=""
|
||||
export EXTRA_CLEANUP="detach_loopback $LOOPDEV"
|
||||
export IMAGE_BLOCK_DEVICE=$LOOPDEV
|
||||
eval_run_d block-device "IMAGE_BLOCK_DEVICE="
|
||||
sudo mkfs $MKFS_OPTS -t $FS_TYPE -L ${DIB_ROOT_LABEL} ${IMAGE_BLOCK_DEVICE}
|
||||
@ -382,6 +384,13 @@ done
|
||||
unmount_image
|
||||
cleanup_build_dir
|
||||
|
||||
# Write zeros to free blocks to aid compression of images.
|
||||
if echo "$FS_TYPE" | grep -q "^ext" && which zerofree ; then
|
||||
sudo zerofree $IMAGE_BLOCK_DEVICE
|
||||
fi
|
||||
# We are done with the loopback device make sure it is detached.
|
||||
$EXTRA_CLEANUP
|
||||
|
||||
has_raw_type=
|
||||
if [ "$IS_RAMDISK" == "0" ]; then
|
||||
for IMAGE_TYPE in ${IMAGE_TYPES[@]} ; do
|
||||
|
@ -27,6 +27,11 @@ It is recommended you check the documentation for each element you are using
|
||||
to determine if there are any additional dependencies. Of particular note is
|
||||
the need for the `dev-python/pyyaml` package on Gentoo hosts.
|
||||
|
||||
If the zerofree utility is present on the build system and you are building
|
||||
an image with an ext filesystem zerofree will be used to zero out free
|
||||
blocks in the image. This makes the resulting images much smaller if
|
||||
compressed.
|
||||
|
||||
|
||||
Source Installation
|
||||
-------------------
|
||||
|
@ -24,6 +24,8 @@ function unmount_image () {
|
||||
# unmount from the chroot
|
||||
# Don't use TMP_MOUNT_PATH here, it might not have been set.
|
||||
unmount_dir "$TMP_BUILD_DIR/mnt"
|
||||
|
||||
# Left here for backward compatibility
|
||||
if [ -n "$EXTRA_UNMOUNT" ]; then
|
||||
$EXTRA_UNMOUNT
|
||||
fi
|
||||
@ -39,6 +41,9 @@ function cleanup () {
|
||||
unmount_image
|
||||
cleanup_build_dir
|
||||
cleanup_image_dir
|
||||
if [ -n "$EXTRA_CLEANUP" ]; then
|
||||
$EXTRA_CLEANUP
|
||||
fi
|
||||
}
|
||||
|
||||
function ensure_nbd () {
|
||||
|
@ -8,8 +8,10 @@ sudo apt-get install -y \
|
||||
debootstrap \
|
||||
inetutils-ping \
|
||||
kpartx \
|
||||
zerofree \
|
||||
qemu-utils || \
|
||||
sudo yum -y install \
|
||||
debootstrap \
|
||||
kpartx \
|
||||
zerofree \
|
||||
qemu-img
|
||||
|
Loading…
Reference in New Issue
Block a user