build: Add TARGET_ROOTFS_RESERVED_PCT option to reduce wasted space
authorGabor Juhos <juhosg@openwrt.org>
Thu, 29 Nov 2012 17:37:15 +0000 (17:37 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Thu, 29 Nov 2012 17:37:15 +0000 (17:37 +0000)
The genext2fs tool will 'reserve' 5% of the image size by default,
apparently by creating a huge lost+found directory. In fact it seemed to
be much more than 5% in practice — I saw an image with 8MiB used, and
recovered about 2MiB of it by deleting the 'empty' lost+found directory:

/dev/loop0         48377  8482     37438  19% /mnt/spare
 # rmdir lost+found/
/dev/loop0         48377  6014     39906  14% /mnt/spare

This makes it configurable, but leaves it at the genext2fs default
of 5% for now. It should probably be changed to default to zero, but
that can be a separate patch.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34408

Config.in
include/image.mk

index 46f7ce8385f2e0be51220ba1a1ce111c13226e4d..76acbe59444b3db5083b33518a59d1a14b4e3439 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -125,6 +125,13 @@ menu "Target Images"
                help
                    Allows you to change the maximum number of inodes in the root filesystem
 
                help
                    Allows you to change the maximum number of inodes in the root filesystem
 
+       config TARGET_ROOTFS_RESERVED_PCT
+               int "Percentage of reserved blocks in root filesystem"
+               depends TARGET_ROOTFS_EXT4FS
+               default 5
+               help
+                   Allows you to change the percentage of reserved blocks in the root filesystem
+
 endmenu
 
 menu "Global build settings"
 endmenu
 
 menu "Global build settings"
index 10850a63271dc772ef147a0544341787cd5608fa..503115ddb093b073bdd3f1209b282ae5f982c1c8 100644 (file)
@@ -124,7 +124,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_EXT4FS),)
 
   define Image/mkfs/ext4
 # generate an ext2 fs
 
   define Image/mkfs/ext4
 # generate an ext2 fs
-       $(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4
+       $(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4 -m $(CONFIG_TARGET_ROOTFS_RESERVED_PCT)
 # convert it to ext4
        $(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 # fix it up
 # convert it to ext4
        $(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 # fix it up