Browse Source

build: Add TARGET_ROOTFS_RESERVED_PCT option to reduce wasted space

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 <[email protected]>
Signed-off-by: Gabor Juhos <[email protected]>

SVN-Revision: 34408
Gabor Juhos 13 years ago
parent
commit
d90e805fe6
2 changed files with 8 additions and 1 deletions
  1. 7 0
      Config.in
  2. 1 1
      include/image.mk

+ 7 - 0
Config.in

@@ -125,6 +125,13 @@ menu "Target Images"
 		help
 		help
 		    Allows you to change the maximum number of inodes in the root filesystem
 		    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
 endmenu
 
 
 menu "Global build settings"
 menu "Global build settings"

+ 1 - 1
include/image.mk

@@ -124,7 +124,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_EXT4FS),)
 
 
   define Image/mkfs/ext4
   define Image/mkfs/ext4
 # generate an ext2 fs
 # 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
 # convert it to ext4
 	$(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 	$(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 # fix it up
 # fix it up