
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!
Un tipo apasionado por la tecnología, exploró algunas tecnologías increíbles y exploró más, y mientras avanzaba, tuve la oportunidad de trabajar en el desarrollo de Android, Linux, AWS, DevOps usando varias herramientas de código abierto.
Uno de mis lemas de vida es «Sé siempre un estudiante de por vida».