[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