]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
generator: Use zerofree to resparse ext3 files.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 27 Nov 2010 15:56:42 +0000 (16:56 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 27 Nov 2010 15:56:42 +0000 (16:56 +0100)
naoki/generators.py
tools/generator

index 99b385dc7e21014e6efc8e06f92172aa3b38589b..d3c995bcfce44b8d2cb7974f14da8a98f8ab21af 100644 (file)
@@ -32,6 +32,7 @@ class Generator(_Environment):
                        "squashfs-tools",
                        "syslinux",
                        "util-linux-ng",
+                       "zerofree",
                        "/sbin/dmsetup",
                        "/usr/bin/mkisofs",
                ]
index 9cc31b0c2af2e6e85eb99a1e9cd582760a9a9acc..a04b8bf97f423f7806cc4dacd26c44b94ca1dc4d 100755 (executable)
@@ -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}
 }