summaryrefslogtreecommitdiff
path: root/scripts/build/lb_binary_rootfs
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/lb_binary_rootfs')
-rwxr-xr-xscripts/build/lb_binary_rootfs31
1 files changed, 24 insertions, 7 deletions
diff --git a/scripts/build/lb_binary_rootfs b/scripts/build/lb_binary_rootfs
index 85785fc7e..f2993f1af 100755
--- a/scripts/build/lb_binary_rootfs
+++ b/scripts/build/lb_binary_rootfs
@@ -86,7 +86,7 @@ done
case "${LB_CHROOT_FILESYSTEM}" in
ext2|ext3)
# Checking depends
- Check_package chroot/usr/bin/genext2fs genext2fs
+ Check_package chroot/sbin/mkfs.ext2 e2fsprogs
# Restoring cache
Restore_cache cache/packages_binary
@@ -102,21 +102,30 @@ case "${LB_CHROOT_FILESYSTEM}" in
case "${LB_BUILD_WITH_CHROOT}" in
true)
- DU_DIM="$(du -ks chroot/chroot | cut -f1)"
+ DU_DIM="$(du -ms chroot/chroot | cut -f1)"
+ INODES="$(find chroot/chroot | wc -l)"
;;
false)
- DU_DIM="$(du -ks chroot | cut -f1)"
+ DU_DIM="$(du -ms chroot | cut -f1)"
+ INODES="$(find chroot | wc -l)"
;;
esac
REAL_DIM="$(Calculate_partition_size ${DU_DIM} ${LB_CHROOT_FILESYSTEM})"
-
- RESERVED_PERCENTAGE="--reserved-percentage"
+ REAL_INODES="$(Calculate_partition_size ${INODES} ${LB_CHROOT_FILESYSTEM})"
case "${LB_BUILD_WITH_CHROOT}" in
true)
- Chroot chroot "genext2fs --size-in-blocks=${REAL_DIM} ${RESERVED_PERCENTAGE}=0 --root=chroot filesystem.${LB_CHROOT_FILESYSTEM}"
+ dd if=/dev/zero of=chroot/filesystem.${LB_CHROOT_FILESYSTEM} bs=1024k count=0 seek=${REAL_DIM}
+ Chroot chroot "mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 filesystem.${LB_CHROOT_FILESYSTEM}"
+
+ mkdir -p filesystem.tmp
+ ${LB_ROOT_COMMAND} mount -o loop chroot/filesystem.${LB_CHROOT_FILESYSTEM} filesystem.tmp
+ cp -a chroot/chroot/* filesystem.tmp
+
+ ${LB_ROOT_COMMAND} umount filesystem.tmp
+ rmdir filesystem.tmp
# Move image
mv chroot/filesystem.${LB_CHROOT_FILESYSTEM} binary/${INITFS}
@@ -173,7 +182,15 @@ case "${LB_CHROOT_FILESYSTEM}" in
;;
false)
- genext2fs --size-in-blocks=${REAL_DIM} ${RESERVED_PERCENTAGE}=0 --root=chroot binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}
+ dd if=/dev/zero of=binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} bs=1024k count=0 seek=${REAL_DIM}
+ mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}
+
+ mkdir -p filesystem.tmp
+ ${LB_ROOT_COMMAND} mount -o loop binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} filesystem.tmp
+ cp -a chroot/* filesystem.tmp
+
+ ${LB_ROOT_COMMAND} umount filesystem.tmp
+ rmdir filesystem.tmp
;;
esac