How do I demonstrate the type of kernel compression in practice?
Your Wikipedia quote,
Although there is the popular misconception that the
bzprefix means that bzip2 compression is used [...], this is not the case.
says the opposite of your theory: the
bzImage has no relation to
bzImage doesn’t have to be compressed with
bzip2. In fact, the kernel’s default compression mode is still
gzip, and there is little reason to use
bzip2 nowadays — it is slower than LZMA and
xz but doesn’t compress as well.
To conclusively determine what compression was used for a given kernel image, without needing to run it or find its configuration, you can follow the approach used by the kernel’s own
look for the compressor’s signature in the image:
try to extract the data from the image, starting at the offset of any signature you’ve found;
- check that the result (if any) is an ELF image.
I’ve adapted the script here so that it only reports the compression type. I’m not including it here because it is licensed under the GPL 2 only.
You can look at what compression methods your kernel supports. Only one can be selected, so that'll prove which one it is.
Here, I'm using gzip:
$ zgrep CONFIG_KERNEL_ /proc/config.gz CONFIG_KERNEL_GZIP=y # 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