diff --git a/ChangeLog b/ChangeLog index 0c36105..8436f83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ SystemRescue ChangeLog ------------------------------------------------------------------------------- * Fix the type of the default definition of parameter "ar_attempts" (#266) * Added scripts and documentation to help build the ISO image in a docker container +* Reduce compression ratio for initramfs on i686 to prevent a crash at build time (#261) ------------------------------------------------------------------------------- 9.01 (2022-02-10): diff --git a/build.sh b/build.sh index c8d3f16..c49eb3e 100755 --- a/build.sh +++ b/build.sh @@ -24,6 +24,10 @@ devel_build= snapshot_date="" default_kernel_param="iomem=relaxed" documentation_dir="/usr/share/sysrescue/html" +mkinitcpio_comp_algo="xz" +mkinitcpio_comp_opts="--threads=0 --verbose" +mkinitcpio_comp_algo_devel="zstd" +mkinitcpio_comp_opts_devel="--threads=0 --fast --verbose" verbose="" @@ -37,6 +41,7 @@ case ${arch} in mirrorlist_url='https://archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on' archive_prefix='https://archive.archlinux.org/repos/' archive_mirrorlist_file='mirrorlist-snapshot-x86_64' + mkinitcpio_comp_opts="--threads=0 --lzma2=preset=9e,dict=128MiB --verbose" ;; i686) efiarch="i386-efi" @@ -45,6 +50,7 @@ case ${arch} in mirrorlist_url='https://archlinux32.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on' archive_prefix='https://archive.archlinux32.org/repos/' archive_mirrorlist_file='mirrorlist-snapshot-i686' + mkinitcpio_comp_opts="--threads=0 --verbose" ;; *) echo "ERROR: Unsupported architecture: '${arch}'" @@ -245,19 +251,17 @@ make_setup_mkinitcpio() { cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/install done cp /usr/lib/initcpio/install/archiso_kms ${work_dir}/${arch}/airootfs/etc/initcpio/install - - if [ -z "$devel_build" ]; then - # release build, high compression but slower - sed "s|^COMPRESSION_RELEASE=|COMPRESSION=|g; - s|^COMPRESSION_OPTIONS_RELEASE=|COMPRESSION_OPTIONS=|g;" \ - ${script_path}/mkinitcpio.conf > ${work_dir}/${arch}/airootfs/etc/mkinitcpio-archiso.conf - else - # devel build, low compression but fast build time - sed "s|^COMPRESSION_DEVEL=|COMPRESSION=|g; - s|^COMPRESSION_OPTIONS_DEVEL=|COMPRESSION_OPTIONS=|g;" \ - ${script_path}/mkinitcpio.conf > ${work_dir}/${arch}/airootfs/etc/mkinitcpio-archiso.conf + + # when the "devel build" option is enabled, apply low but fast compression to reduce build time + if [ -n "$devel_build" ]; then + mkinitcpio_comp_algo="${mkinitcpio_comp_algo_devel}" + mkinitcpio_comp_opts="${mkinitcpio_comp_opts_devel}" fi - + # configure the compression algorithm and options to use for the initramfs + sed "s|^COMPRESSION=.*|COMPRESSION=\"${mkinitcpio_comp_algo}\"|g; + s|^COMPRESSION_OPTIONS=.*|COMPRESSION_OPTIONS=\"${mkinitcpio_comp_opts}\"|g;" \ + ${script_path}/mkinitcpio.conf > ${work_dir}/${arch}/airootfs/etc/mkinitcpio-archiso.conf + gnupg_fd= if [[ ${gpg_key} ]]; then gpg --export ${gpg_key} >${work_dir}/gpgkey diff --git a/mkinitcpio.conf b/mkinitcpio.conf index fdac3e4..c80e225 100644 --- a/mkinitcpio.conf +++ b/mkinitcpio.conf @@ -1,7 +1,5 @@ MODULES=(fuse) BINARIES=(jq mount.ntfs) HOOKS=(base udev memdisk sysrescuecfg findroot archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block mdadm_udev modconf encrypt lvm2 filesystems keyboard) -COMPRESSION_RELEASE="xz" -COMPRESSION_OPTIONS_RELEASE="--threads=0 --lzma2=preset=9e,dict=128MiB --verbose" -COMPRESSION_DEVEL="zstd" -COMPRESSION_OPTIONS_DEVEL="--threads=0 --fast --verbose" +COMPRESSION="xz" +COMPRESSION_OPTIONS="--threads=0 --verbose"