I’m exploring ways to shave a few seconds off of my boot time, and I came across a post that stated, “my initrd is pretty small–doesn’t really load much–and Arch also defaults to using zstd which is also faster to decompress versus gzip.”

What compression does Pop! use for initrd and the kernel? When I run ls -al /boot, I see files such as 14M vmlinuz-6.4.6-76060406-generic and 119M initrd.img-6.4.6-76060406-generic. Are these compressed?

Lastly, is there a way to choose the compression of these boot files without a custom kernel build? Or is what I’m trying to do “off the beaten path” and going to lead to “you have to compile your own kernel from here on out”?

  • canadaduaneOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Ah, thanks! Slightly different location, but basically the same. Here we go:

    $ grep CONFIG_KERNEL_ /boot/config-6.4.6-76060406-generic
    # CONFIG_KERNEL_GZIP is not set
    # CONFIG_KERNEL_BZIP2 is not set
    # CONFIG_KERNEL_LZMA is not set
    # CONFIG_KERNEL_XZ is not set
    # CONFIG_KERNEL_LZO is not set
    # CONFIG_KERNEL_LZ4 is not set
    CONFIG_KERNEL_ZSTD=y
    

    So the kernel is “zstd” compressed.

    OTOH, I’m not sure if this means anything about initrd (ASCII cpio archive??)

    $ file /boot/initrd.img-6.4.6-76060406-generic 
    /boot/initrd.img-6.4.6-76060406-generic: ASCII cpio archive (SVR4 with no CRC)