Votre citation Wikipédia,
Bien qu'il y ait une idée fausse populaire selon laquelle le
bz
préfixe signifie que la compression bzip2 est utilisée [...], ce n'est pas le cas.
dit le contraire de votre théorie :le bz
en bzImage
n'a aucun rapport avec bzip2
, et bzImage
n'a pas besoin d'être compressé avec bzip2
. En fait, le mode de compression par défaut du noyau est toujours gzip
, et il y a peu de raisons d'utiliser bzip2
de nos jours - il est plus lent que LZMA et xz
mais ne se comprime pas aussi bien.
Pour déterminer de manière concluante quelle compression a été utilisée pour une image de noyau donnée, sans avoir besoin de l'exécuter ou de trouver sa configuration, vous pouvez suivre l'approche utilisée par le propre extract-vmlinux
du noyau. script :
-
recherchez la signature du compresseur dans l'image :
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
-
essayez d'extraire les données de l'image, en commençant par le décalage de toute signature que vous avez trouvée ;
- vérifiez que le résultat (le cas échéant) est une image ELF.
J'ai adapté le script ici pour qu'il ne signale que le type de compression. Je ne l'inclus pas ici car il est sous licence GPL 2 uniquement.
Vous pouvez consulter les méthodes de compression prises en charge par votre noyau. Un seul peut être sélectionné, ce qui prouvera lequel il s'agit.
Ici, j'utilise 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