Ihr Wikipedia-Zitat,
Obwohl es den weit verbreiteten Irrtum gibt, dass der bz Präfix bedeutet, dass bzip2-Komprimierung verwendet wird [...], dies ist nicht der Fall.
sagt das Gegenteil Ihrer Theorie:die bz in bzImage hat nichts mit bzip2 zu tun , und bzImage muss nicht mit bzip2 komprimiert werden . Tatsächlich ist der Standardkomprimierungsmodus des Kernels immer noch gzip , und es gibt wenig Grund, bzip2 zu verwenden heutzutage — es ist langsamer als LZMA und xz komprimiert aber nicht so gut.
Um endgültig festzustellen, welche Komprimierung für ein bestimmtes Kernel-Image verwendet wurde, ohne es ausführen oder seine Konfiguration finden zu müssen, können Sie dem Ansatz folgen, der vom Kernel-eigenen extract-vmlinux verwendet wird Skript:
-
Suchen Sie im Bild nach der Signatur des Kompressors:
gunzip:\037\213\010xz:\3757zXZ\000bzip2:BZhlzma:\135\0\0\0lzo:\211\114\132lz4:\002!L\030zstd:(\265/\375
-
Versuchen Sie, die Daten aus dem Bild zu extrahieren, beginnend mit dem Offset einer beliebigen Signatur, die Sie gefunden haben;
- Überprüfen Sie, ob das Ergebnis (falls vorhanden) ein ELF-Bild ist.
Ich habe das Skript hier so angepasst, dass es nur die Komprimierungsart meldet. Ich füge es hier nicht hinzu, da es nur unter der GPL 2 lizenziert ist.
Sie können sich ansehen, welche Komprimierungsmethoden Ihr Kernel unterstützt. Es kann nur eine ausgewählt werden, damit wird bewiesen, welche es ist.
Hier verwende ich 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