Cómo arreglar una imagen de Initrd rota en Linux
Hoy, le mostraremos cómo puede reparar su Imagen Initrd rota o borrada accidentalmente, es decir. Imagen del kernel de Linux y GRUB Loader en su máquina instalada con Ubuntu. También debería funcionar para derivados de Ubuntu, así como para otras distribuciones.
Initrd es un esquema para cargar un sistema de archivos raíz temporal en la memoria en el proceso de arranque del kernel de Linux. Es un archivo cpio del sistema de archivos inicial que se carga en la memoria durante el proceso de inicio de Linux. El Kernel lo monta como sistema de archivos raíz e inicia el proceso de inicio desde él.
La imagen de Initrd puede estar rota o dañada si el kernel que instaló está dañado o debido a algunas modificaciones realizadas en el kernel del sistema o en el proceso de arranque que, como resultado, el sistema se bloquea 🙁
Como sabemos, «Cuando hay voluntad, hay camino». Sí, podemos reparar o reconstruir la imagen initrd. En mi caso, les mostraré mi sistema operativo Ubuntu 13.10.
A continuación, se muestran sencillos pasos paso a paso con capturas de pantalla que nos ayudarán a reconstruir nuestra imagen de kernel dañada (Initrd)
1. Arranque su máquina con Live Media
Puede usar su CD / DVD de Ubuntu o una memoria USB para arrancar en vivo en su máquina. Si no tiene uno, hay muchas formas de crear dispositivos de arranque. Puede descargar la última Ubuntu Distribución desde su sitio oficial, es decir. http://ubuntu.com/ y grabe la imagen en un DVD en blanco o utilice unetbootin para crear su memoria USB de arranque.
2. Abra una consola de terminal y obtenga la ruta de las particiones
Puede ejecutar fácilmente una consola de terminal presionando Ctrl + Alt + T en Ubuntu o puede cambiar a tty1 presionando Ctrl + Alt + f1. Lo que tenemos que hacer es montar nuestro sistema de archivos desde nuestro disco duro. Para eso, necesitamos conocer la ruta del dispositivo. Para obtener la ruta del dispositivo, debe ejecutar:
$ sudo fdisk -l
Aquí, del resultado anterior, en mi caso, sda1 es el que necesito montar.
3. Monte los sistemas de archivos
El sistema de archivos necesitamos montar las particiones del disco duro como / (root), / boot, / var y deberíamos montar bind / sys, / proc y / dev en un directorio / mnt. Entonces, eso se puede hacer siguiendo los pasos a continuación:
$ sudo mount /dev/sdaX /mnt
Nota: Aquí en / dev / sdaX, X se refiere a la partición número 1 en mi caso, que obtuvimos del paso 2.
$ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /proc /mnt/proc $ sudo mount --bind /sys /mnt/sys
4. Chroot / mnt y creación de una copia de seguridad de la imagen initrd
Ahora, necesitamos chroot / mnt para poder configurar el entorno chrooted para la partición del disco duro.
$ sudo chroot /mnt
Una vez que haya terminado Chroot, realizaremos una copia de seguridad del archivo de imagen de initrd, puede ver los archivos de imagen en / boot.
# ls /boot/*initrd* or
# ls /lib/modules/
Podrá obtener la versión del kernel que tiene actualmente en el sistema con el comando anterior.
Considere reemplazar la versión 3.11.0.12-generic con la propia que obtuvo del comando anterior.
# mv /boot/initrd.img-3.11.0.12-generic /boot/old-initrd.img-3.11.0.12-generic-old
Nota: el formato de archivo de la imagen initrd puede diferir de Ubuntu a los sistemas basados en Fedora.
Si su imagen initrd ha sido eliminada, no podrá ejecutar el comando anterior, por lo tanto, no podrá crear su copia de seguridad.
5. Creación de la imagen inicial
Ahora, lo real está aquí. Vamos a construir la imagen del kernel initrd aquí usando el siguiente comando:
# mkinitrd /boot/initrd.img-3.11.0.12-generic 3.11.0.12-generic-old
El comando anterior funciona para las otras distribuciones como CentOS, Fedora, Hat, etc.no para Ubuntu
Para distribución basada en Ubuntu:
# update-initramfs -c -k 3.11.0.12-generic
6. Finalización de Grub Loader y desmontaje
Iremos a desmontar el camino montado como:
Si su sistema tiene Fedora, RHEL, CentOS instalado, intente esto:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Si su sistema tiene Ubuntu y su derivado instalado:
# update-grub # exit
Ahora, hemos salido con éxito de nuestro entorno Chroot.
$ sudo umount /dev $ sudo umount /proc $ sudo umount /sys $ sudo umount /mnt
Hurra, ahora reinicia tu máquina y expulsa tu dispositivo de arranque. Lo hemos hecho con éxito, reinicie su sistema a la normalidad y disfrute de la Computación Linux.