¿Cómo restauro una imagen initrd eliminada accidentalmente?

¿Cómo restauro una imagen initrd eliminada accidentalmente?

Accidentalmente eliminé la imagen initrd de mi sistema. ¿Cómo lo restauro?

Respuesta1

Esta es la respuesta a la pregunta original, cómo extraer initrd.lz del CD en vivo, que generalmente se usa si está creando un CD en vivo personalizado.

copie initrd.lz a un directorio de trabajo ( ~)

cp /media/cdrom/initrd.lz ~

Cree un directorio para extraer el contenido, usaré initrdcd en el directorio

mkdir ~/initrd
cd ~/initrd

Extracto

lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

Realice los cambios que pueda necesitar y vuelva a empaquetar

cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz

Su nuevo initrd estará en su directorio personal y se llamarácusotm.initrd.lz

Respuesta2

La imagen initrd para cada kernel se crea en el momento de la instalación del kernel a partir de los módulos y aplicaciones de la máquina. Simplemente puedes construir un initrd faltante usando el siguiente comando:

update-initramfs -c -k <version>

(Recuerde sustituirlo por la versión apropiada para su kernel).

Respuesta3

Esta es una mejor manera de resolver el problema de OP publicado en los comentarios.

Estoy intentando usar initrd desde un livecd en mi instalación de ubuntu. Lo eliminé accidentalmente. – Binoy Babu

Para crear un initramfs, primero inicie un kernel alternativo (el más antiguo está bien).

Entonces corre

sudo mkinitramfs 3.2.0-15-generic-pae -o /boot/initrd.img-3.2.0-15-generic-pae

No tengo instalado el kernel pae, si "3.2.0-15-generic-pae" no funciona, enumere el contenido /lib/modulespara obtener el nombre:

ls /lib/modules

Si no tiene un kernel más antiguo, puede iniciar un CD en vivo y usar chroot:

  1. Monte su partición raíz primero: mount -t ext4 /dev/sdX /mnt. Asegúrese de utilizar el nombre de partición correcto y escriba este comando. Utilice comandos como lsblk, blkidetc. para encontrar la partición correcta.

  2. [Opcional] Si tiene una partición de inicio separada, monte lo siguiente:mount -t ext4 /dev/sdY /mnt/boot

  3. Siguiente enlace monte todos los sistemas de archivos virtuales necesarios para el mkinitramfscomando... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/proc

  4. Ahora cambie a la /mntcarpeta y ejecute el mkinitramfscomando como se describe arriba.

información relacionada