Package: initramfs-tools Version: 0.139 Severity: normal Tags: patch Dear Maintainer,
Now initramfs files are compressed with gzip But we can use other compression, i.e. LZO, LZ4 and ZSTD. Then which one is the best? * compression ratio ZSTD > GZIP > LZO > LZ4 * decompression speed LZ4 > LZO = ZSTD > GZIP I suggest to choose ZSTD, instead of GZIP since - better compression ratio than current GZIP - also better decompresion speed than current GZIP ------------------------------------------------------------------------------ With gzip ------------------------------------------------------------------------------ $ file /boot/initrd.img-5.9.0-* /boot/initrd.img-5.9.0-3-amd64: gzip compressed data, from Unix, original size modulo 2^32 197680640 /boot/initrd.img-5.9.0-4-amd64: gzip compressed data, from Unix, original size modulo 2^32 197594112 $ du -h /boot/initrd.img-5.9.0-* 59M /boot/initrd.img-5.9.0-3-amd64 59M /boot/initrd.img-5.9.0-4-amd64 ------------------------------------------------------------------------------ With zstd ------------------------------------------------------------------------------ $ file /boot/initrd.img-5.9.0-* /boot/initrd.img-5.9.0-3-amd64: Zstandard compressed data (v0.8+), Dictionary ID: None /boot/initrd.img-5.9.0-4-amd64: Zstandard compressed data (v0.8+), Dictionary ID: None $ du -h /boot/initrd.img-5.9.0-* 40M /boot/initrd.img-5.9.0-3-amd64 40M /boot/initrd.img-5.9.0-4-amd64 ------------------------------------------------------------------------------ Yes, 59MB initramfs file becomes 40MB (2/3)! plus bonus, better decompression speed. However, there's a problem to do so - zstd package's Priority is not standard one - it's "optional". > Package: gzip > Version: 1.10-2 > Priority: required > Package: zstd > Version: 1.4.5+dfsg-4 > Priority: optional It means there is not zstd package in every environment. And, just raise its Priority means bloat minimal system size that is a problem we want to avoid. Now initramfs-tools has a hack to avoid zstd (and other compression tools) absence in mkinitramfs command. > if ! command -v "${compress}" >/dev/null 2>&1; then > compress=gzip > echo "No ${compress} in ${PATH}, using gzip" > fi Set COMPRESS=zstd in /etc/initramfs/initramfs.conf and no zstd installed, there's no problem. > $ sudo update-initramfs -u > update-initramfs: Generating /boot/initrd.img-5.9.0-4-amd64 > No zstd in /usr/bin:/sbin:/bin, using gzip (abobe message is patched with #971270) So, just set default compression as zstd can brings better result for many users, IMO (Not sure raising zstd package Priority (to standard) is required or not).
>From 78c4fe32a447b0dc46045f0c8a32a4b246691711 Mon Sep 17 00:00:00 2001 From: Hideki Yamane <henr...@debian.org> Date: Sun, 29 Nov 2020 10:05:48 +0900 Subject: [PATCH] Use zstd as default compression for initramfs --- conf/initramfs.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/initramfs.conf b/conf/initramfs.conf index 01bdd85..a0c051b 100644 --- a/conf/initramfs.conf +++ b/conf/initramfs.conf @@ -41,7 +41,7 @@ KEYMAP=n # COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ] # -COMPRESS=gzip +COMPRESS=zstd # # DEVICE: ... -- 2.29.2