GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo demuestro el tipo de compresión del kernel en la práctica?

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

Linux
  1. Linux:¿cómo determinar qué módulo contamina el kernel?

  2. ¿Cómo encontrar la aplicación para un tipo Mime en Linux?

  3. ¿Cómo obtener el tipo de lector de tarjetas interno?

  4. ¿Cómo encontrar la versión de un módulo kernel compilado?

  5. ¿Cómo monta un kernel la partición raíz?

Cómo el kernel de Linux maneja las interrupciones

Cómo compilar un kernel de Linux en el siglo XXI

Cómo verificar la versión del kernel en Linux

Cómo compilar un kernel:al estilo Debian

Cómo encontrar el tipo de sistema de archivos montado en Linux

Cómo actualizar el kernel en CentOS 8.0