[make-initrd] Two words about initramfs size
Alexey Gladkov
gladkov.alexey at gmail.com
Thu Jun 3 19:17:17 MSK 2021
Привет!
Я попробовал посмотреть на самые тяжёлые компоненты, которые попадают в
initramfs. Я сделал initramfs для системы с корнем на разделе. Так что
никаких дополнительных фичей не нужно для такой системы.
$ find initramfs/ -type f -printf '%s\t%p\n' |sort -k1,1 -g |tail -20
237896 initramfs/lib64/ld-2.32.so
280896 initramfs/lib64/libpcre.so.3.15.12
308856 initramfs/lib64/libreadline.so.7.0
321792 initramfs/lib/firmware/i915/tgl_guc_49.0.1.bin
324160 initramfs/lib/firmware/i915/ehl_guc_49.0.1.bin
324160 initramfs/lib/firmware/i915/icl_guc_49.0.1.bin
324560 initramfs/lib64/libblkid.so.1.1.0
329596 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/drm.ko.xz
383088 initramfs/lib64/libmount.so.1.1.0
433276 initramfs/lib/modules/5.12.0/kernel/net/ipv6/ipv6.ko.xz
498880 initramfs/lib/firmware/i915/ehl_huc_9.0.0.bin
498880 initramfs/lib/firmware/i915/icl_huc_9.0.0.bin
542912 initramfs/bin/busybox
580736 initramfs/lib/firmware/i915/tgl_huc_7.5.0.bin
644952 initramfs/bin/sh4
766656 initramfs/bin/bash4
1061928 initramfs/sbin/udevadm
1780956 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/i915/i915.ko.xz
1851568 initramfs/lib64/libc-2.32.so
2971824 initramfs/lib64/libcrypto.so.1.1
Тут видно сразу несколько проблем в контексте размера.
* guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
собой много жирных firmware.
* В образ попали sh4 и bash4. Это произошло из-за того, что на этой
системе /bin/sh -> sh4.
* В образ пролез openssl.
$ for f in initramfs{,/usr}/{,s}bin/*; do ldd "$f" 2>/dev/null |grep -Fqs lib64/libcrypto.so && echo $f; done
initramfs/bin/kmod
initramfs/sbin/depmod
initramfs/sbin/lsmod
initramfs/sbin/modprobe
initramfs/sbin/udevadm
initramfs/sbin/udevd
--
Rgrds, legion
More information about the Make-initrd
mailing list