[arch-releng] [PATCH 1/1] allow to set squashfs block size

Christian Hesse list at eworm.de
Mon Jan 13 09:31:52 UTC 2020


From: Christian Hesse <mail at eworm.de>

This allows to set squashfs block size. Increasing block size may reduce
image size, but add extra I/O and cpu penalty.

Signed-off-by: Christian Hesse <mail at eworm.de>
---
 archiso/mkarchiso | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index 567a5af..5c7bc4a 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -18,6 +18,7 @@ work_dir="work"
 out_dir="out"
 sfs_mode="sfs"
 sfs_comp="xz"
+sfs_block_size="128K"
 gpg_key=
 
 # Show an INFO message
@@ -95,6 +96,8 @@ _usage ()
     echo "                     Default: ${sfs_mode}"
     echo "    -c <comp_type>   Set SquashFS compression type (gzip, lzma, lzo, xz, zstd)"
     echo "                     Default: '${sfs_comp}'"
+    echo "    -b <block_size>  Set SquashFS block size"
+    echo "                     Default: '${sfs_block_size}'"
     echo "    -v               Enable verbose output"
     echo "    -h               This message"
     echo " commands:"
@@ -223,9 +226,9 @@ _mkairootfs_img () {
     mkdir -p "${work_dir}/iso/${install_dir}/${arch}"
     _msg_info "Creating SquashFS image, this may take some time..."
     if [[ "${quiet}" = "y" ]]; then
-        mksquashfs "${work_dir}/airootfs.img" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -no-progress &> /dev/null
+        mksquashfs "${work_dir}/airootfs.img" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -b "${sfs_block_size}" -no-progress &> /dev/null
     else
-        mksquashfs "${work_dir}/airootfs.img" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -no-progress
+        mksquashfs "${work_dir}/airootfs.img" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -b "${sfs_block_size}" -no-progress
     fi
     _msg_info "Done!"
     rm ${work_dir}/airootfs.img
@@ -240,9 +243,9 @@ _mkairootfs_sfs () {
     mkdir -p "${work_dir}/iso/${install_dir}/${arch}"
     _msg_info "Creating SquashFS image, this may take some time..."
     if [[ "${quiet}" = "y" ]]; then
-        mksquashfs "${work_dir}/airootfs" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -no-progress &> /dev/null
+        mksquashfs "${work_dir}/airootfs" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -b "${sfs_block_size}" -no-progress &> /dev/null
     else
-        mksquashfs "${work_dir}/airootfs" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -no-progress
+        mksquashfs "${work_dir}/airootfs" "${work_dir}/iso/${install_dir}/${arch}/airootfs.sfs" -noappend -comp "${sfs_comp}" -b "${sfs_block_size}" -no-progress
     fi
     _msg_info "Done!"
 }
@@ -369,7 +372,7 @@ fi
 
 umask 0022
 
-while getopts 'p:r:C:L:P:A:D:w:o:s:c:g:vh' arg; do
+while getopts 'p:r:C:L:P:A:D:w:o:s:c:b:g:vh' arg; do
     case "${arg}" in
         p) pkg_list="${pkg_list} ${OPTARG}" ;;
         r) run_cmd="${OPTARG}" ;;
@@ -382,6 +385,7 @@ while getopts 'p:r:C:L:P:A:D:w:o:s:c:g:vh' arg; do
         o) out_dir="${OPTARG}" ;;
         s) sfs_mode="${OPTARG}" ;;
         c) sfs_comp="${OPTARG}" ;;
+        b) sfs_block_size="${OPTARG}" ;;
         g) gpg_key="${OPTARG}" ;;
         v) quiet="n" ;;
         h|?) _usage 0 ;;


More information about the arch-releng mailing list