Tutoriales

Cómo desempaquetar initrd/initramfs para ver contenidos en Linux

Puede haber varias razones por las que necesita extraer archivo de inicialización o inicialización imagen. A partir de ahora, quiero arreglar mi computadora, no me permite usar mi computadora portátil con el siguiente error: «No se puede iniciar el módulo del kernel de VirtualBox Linux».

Después de diagnosticar, es un error obvio, falta Archivos de encabezado de LinuxMientras sabes, podemos instalar las cabeceras de Linux usando uname-rSin embargo, el instalador no se instala y arroja un mensaje de error. «Imposible de localizar.»

Más tarde encontró el problema imagen del núcleo.Moví el predeterminado archivo de inicialización y máquina virtual a otra ubicación y reinicie el sistema.

Espero que el sistema se reinicie correctamente.

A partir de aquí, quiero realizar la autopsia de los archivos initramfs y vmlinuz.En este artículo instructivo, verá los pasos de extracción. initrd/initramfs.

Antes de continuar, debe saber qué es un initramfs y por qué el sistema lo necesita.

¿Qué es initramfs?

en breve, archivo de inicialización es un pequeño disco RAM que contiene los archivos necesarios para cargar el sistema antes de montar el sistema de archivos raíz real. Proporcionan las necesidades básicas para que el sistema se inicie y monte el verdadero sistema de archivos raíz (/) después de un arranque exitoso.

La respuesta corta es que carga los módulos del kernel y monta el sistema de archivos como RAM.

Además, está comprimido cpio archivo de formato, así como varios otros algoritmos de compresión, que veremos más adelante.

Cómo saber qué versión del kernel de Linux está instalada en mi sistema

Formas de inspeccionar o ver el contenido de initramfs

Verá dos formas de comprobar el contenido de initramfs, p.

  • [Conventional way] Extraiga y vea el contenido de initramfs/initrd
  • [Simple & Convenient way] Extraiga y vea el contenido de initramfs/initrd
  • comprobar initramfs

Cómo extraer y ver archivos initramfs en Linux

aunque sabes archivo de inicialización o inicialización almacenar en /puesta en marcha directorio, está protegido contra escritura, básicamente no es la forma absoluta de trabajar aquí.Primero, crea un directorio temporal /tmp y inicialización contenido.

Para crear un directorio temporal como el mío, copie y pegue los siguientes comandos.

$ mkdir /tmp/init
$ cd /tmp/init

Una vez hecho, Copiar Esta respectivo archivo de inicialización archivo a Actual contenido y asegúrate reemplazar Esta inicialización documento nombre con disponible.

$ ls /boot
$ cp -v /boot/initrd.img-5.10.0-9-amd64 .

Después de verificar, el tipo de archivo, generalmente initrd o initramfs, se comprime usando varios algoritmos.Para comprobar el tipo de archivo, utilice documento Pedido.

$ file initrd.img-5.10.0-9-amd64 
Output

initrd.img-5.10.0-9-amd64: gzip compressed data, was "mkinitramfs-MAIN_EYPHFu", last modified: Sat Oct 16 04:14:42 2021, from Unix, original size modulo 2^32 145369088

La salida dice que es un Archivo archivo, pero si intenta utilizar bala comando, no podrá porque gunzip requiere.gz extensión, no existe. Entonces cambiará el nombre de initramfs con .gz posponer.

$ mv initrd.img-5.10.0-9-amd64 initrd.img-5.10.0-9-amd64.gz

Una vez hecho esto, pase los comandos posteriores y verifique el tipo de archivo.

$ gunzip initrd.img-5.10.0-9-amd64.gz
$ file initrd.img-5.10.0-9-amd64
Output

initrd.img-5.10.0-9-amd64: ASCII cpio archive (SVR4 with no CRC)

Casi terminamos.después de conseguirlo «archivo CPIO,» Escriba el siguiente comando para extraer archivos en el directorio actual.

$ cpio -idv < initrd.img-5.10.0-9-amd64
Output

usr/bin/awk
usr/bin/ash
usr/bin/arch
cpio: usr/sbin/watchdog linked to usr/bin/[

*****[TRIMMED OUTPUT]******

var/cache/fontconfig/befa2b5d-41df-461b-8d18-246762b8c3e3-le64.cache-7
283924 blocks

Esto concluye la parte de extracción, puede hacer lo que quiera con el archivo de imagen initramfs extraído.

El método anterior es un poco complicado. El mismo efecto se puede lograr con un solo comando, y es fácil de usar sin memorizar pasos.

puedes usarlo lsinitrd comando para realizar todos los pasos a la vez. Abra una ventana de terminal y escriba el siguiente comando, sustituyendo el nombre del archivo.

$ mkdir init && cd init
$ lsinitrd --unpack /boot/initrd.img-5.10.0-9-amd64

Compruebe si el archivo se descomprime correctamente.

$ ls 
Output

[email protected]  conf/  etc/  init*  [email protected]  [email protected]  [email protected]  [email protected]  run/  [email protected]  scripts/  usr/  var/

Cómo verificar o ver initramfs

Lo anterior se trata de extraer la imagen y luego inspeccionar el contenido del archivo, pero ¿qué sucede si no está interesado en la parte de extracción y solo desea inspeccionar el contenido de initrd/initramfs?

Simple de nuevo, puedes usar lsinitrd comando para ver el contenido de un solo archivo de imagen, la salida es algo así como ls-l Pedido.

$ lsinitrd initrd.img-5.10.0-9-amd64
Output

Image: initrd.img-5.10.0-9-amd64: 40M
========================================================================
-rwxr-xr-x 247 root     root            0 Jul 26  2021 usr/sbin/syslogd
-rwxr-xr-x 247 root     root            0 Jul 26  2021 usr/sbin/ubirename
-rwxr-xr-x 247 root     root            0 Jul 26  2021 usr/sbin/udhcpc
-rwxr-xr-x 247 root     root            0 Jul 26  2021 usr/sbin/udhcpd
-rwxr-xr-x 247 root     root            0 Jul 26  2021 usr/sbin/uevent

******(TRIMMED OUTPUT******

-rw-r--r--   1 root     root          200 Oct 16 09:44 var/cache/fontconfig/CACHEDIR.TAG
========================================================================

No estoy seguro de si podemos hacer algún cambio aquí. Si lo sabe, por favor háganoslo saber.

envolver

esto es descompresion initrd/initramfs Ver contenido en Linux. Hemos cubierto la forma general y fácil de extraer los archivos initrd/initramfs. Además de eso, aprendió a inspeccionar el contenido sin extraer el archivo.

Si tiene alguna dificultad para leer nuestros artículos, háganoslo saber en la sección de comentarios.

Hasta entonces, ¡disfrútalo!

LEER  Cómo ejecutar programas java en la terminal en Ubuntu y otros Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba