Kutipan Wikipedia Anda,
Meskipun ada kesalahpahaman populer bahwa
bz
awalan berarti bahwa kompresi bzip2 digunakan [...], bukan ini masalahnya.
mengatakan kebalikan dari teori Anda:bz
di bzImage
tidak ada hubungannya dengan bzip2
, dan bzImage
tidak harus dikompresi dengan bzip2
. Faktanya, mode kompresi default kernel masih gzip
, dan ada sedikit alasan untuk menggunakan bzip2
saat ini — lebih lambat dari LZMA dan xz
tetapi tidak mengompres juga.
Untuk menentukan secara pasti kompresi apa yang digunakan untuk imej kernel tertentu, tanpa perlu menjalankannya atau menemukan konfigurasinya, Anda dapat mengikuti pendekatan yang digunakan oleh extract-vmlinux
kernel itu sendiri skrip:
-
cari tanda tangan kompresor di gambar:
gunzip
:\037\213\010
xz
:\3757zXZ\000
bzip2
:BZh
lzma
:\135\0\0\0
lzo
:\211\114\132
lz4
:\002!L\030
zstd
:(\265/\375
-
coba ekstrak data dari gambar, mulai dari offset tanda tangan apa pun yang Anda temukan;
- periksa apakah hasilnya (jika ada) adalah gambar ELF.
Saya telah mengadaptasi skrip di sini sehingga hanya melaporkan jenis kompresi. Saya tidak memasukkannya di sini karena hanya dilisensikan di bawah GPL 2.
Anda dapat melihat metode kompresi apa yang didukung oleh kernel Anda. Hanya satu yang bisa dipilih, jadi itu akan membuktikan yang mana.
Di sini, saya menggunakan 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