
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é initrd
cd 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/modules
para obtener el nombre:
ls /lib/modules
Si no tiene un kernel más antiguo, puede iniciar un CD en vivo y usar chroot
:
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 comolsblk
,blkid
etc. para encontrar la partición correcta.[Opcional] Si tiene una partición de inicio separada, monte lo siguiente:
mount -t ext4 /dev/sdY /mnt/boot
Siguiente enlace monte todos los sistemas de archivos virtuales necesarios para el
mkinitramfs
comando... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/procAhora cambie a la
/mnt
carpeta y ejecute elmkinitramfs
comando como se describe arriba.