From: Michael Tremer Date: Sat, 27 Nov 2010 15:56:42 +0000 (+0100) Subject: generator: Use zerofree to resparse ext3 files. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3533c571bc849ca551a93066e44571a7e0f568e2;p=ipfire-3.x.git generator: Use zerofree to resparse ext3 files. --- diff --git a/naoki/generators.py b/naoki/generators.py index 99b385dc7..d3c995bcf 100644 --- a/naoki/generators.py +++ b/naoki/generators.py @@ -32,6 +32,7 @@ class Generator(_Environment): "squashfs-tools", "syslinux", "util-linux-ng", + "zerofree", "/sbin/dmsetup", "/usr/bin/mkisofs", ] diff --git a/tools/generator b/tools/generator index 9cc31b0c2..a04b8bf97 100755 --- a/tools/generator +++ b/tools/generator @@ -123,6 +123,9 @@ function _ext3fs_resize() { e2fsck -f -y ${device} resize2fs ${device} ${size} + + # Resparse after every resize operation + _ext3fs_resparse ${device} } function _ext3fs_sparse() { @@ -135,16 +138,8 @@ function _ext3fs_sparse() { function _ext3fs_resparse() { local file=${1} - local device=${2} - - local size=$(stat --format="%s" ${file}) - - # Shrink FS to minimal size - _ext3fs_resize ${device} - truncate -s $(_ext3fs_bytes ${device}) ${file} - _ext3fs_sparse ${file} ${size} - _ext3fs_resize ${device} ${size} + zerofree ${file} } function _installer_image_ext3fs() { @@ -180,10 +175,10 @@ function _installer_image_ext3fs() { cp -frp ${dir}/* ${tmp_dir} umount ${tmp_dir} - #_ext3fs_resparse ${file} ${loop} - losetup -d ${loop} + _ext3fs_resparse ${file} + rm -rf ${tmp_dir} }