Tu cita de Wikipedia,
Aunque existe la idea errónea popular de que el bz
prefijo significa que se utiliza la compresión bzip2 [...], este no es el caso.
dice lo contrario de tu teoría:el bz
en bzImage
no tiene relación con bzip2
y bzImage
no tiene que estar comprimido con bzip2
. De hecho, el modo de compresión predeterminado del kernel sigue siendo gzip
, y hay pocas razones para usar bzip2
hoy en día — es más lento que LZMA y xz
pero no se comprime tan bien.
Para determinar de manera concluyente qué compresión se usó para una imagen de kernel dada, sin necesidad de ejecutarla o encontrar su configuración, puede seguir el enfoque utilizado por el propio extract-vmlinux
del kernel. guión:
-
busque la firma del compresor en la imagen:
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
-
intente extraer los datos de la imagen, comenzando por el desplazamiento de cualquier firma que haya encontrado;
- verifique que el resultado (si lo hay) sea una imagen ELF.
He adaptado el script aquí para que solo informe el tipo de compresión. No lo incluyo aquí porque tiene licencia GPL 2 únicamente.
Puede ver qué métodos de compresión admite su kernel. Solo se puede seleccionar uno, así que probará cuál es.
Aquí, estoy usando 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