miércoles, 25 de enero de 2012

Recuperar sistema sin kernel


Si les gusta jugar, toquetear y a veces romper (es una buena forma de aprender) como a mí, alguna vez se encontrarán con que ,cuando reinicien, se han quedado sin kernel. Ojo, no es una falla del sistema. Las distribuciones avisan cuando estamos por eliminar el último kernel disponible, pero en sí pueden pasar muchas cosas más. Sea como sea, nos encontramos en un sistema que no arranca justamente, porque carece de kernel (o el kernel del que disponemos tiene un problema).

Solucionarlo, aunque parezca difícil, es bastante fácil y rápido. Necesitaremos crear una Live CD de cualquier distribución. Aunque no tiene por qué ser la misma que usemos en nuestro sistema. Lo esencial es que esté compilada para la misma arquitectura (i386 o AMD64) de nuestro sistema inutilizado.

Los pasos para solucionar el problema serían entonces:

Iniciamos con la Live CD, abrimos una terminal y ejecutamos:

sudo fdisk -l

Para identificar la partición en la cual está nuestro sistema instalado. Para lo que sigue uso de ejemplo sde1, reemplacen en su caso.

Montamos la partición de nuestro sistema sin kernel en /mnt ejecutando:

sudo mount /dev/sde1 /mnt

Luego, montamos el resto de los dispositivos:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /dev/proc

y ejecutamos el comando chroot para acceder como root al sistema de archivos de nuestro sistema sin kernel:

sudo chroot /mnt

Ahora deberíamos instalar nuestro nuevo kernel. Si no tenemos uno listo para instalar, busquemos en la siguiente url donde encontraremos una lista bastante grande de kernels para distintas versiones de Ubuntu.

Necesitaríamos bajar la correspondiente a nuestra versión de Ubuntu. Básicamente los paquetes marcados con nuestra compilación al final (i386 o amd64) y el que dice "all". Para bajarlos desde la consola usamos wget.

Para finalizar instalándolo, ejecutamos en la misma consola:
sudo dpkg -i *.deb

Eso es todo. Reiniciamos y sacamos el CD (o el pen drive si es que arrancamos con uno) y ya tendremos kernel nuevo y funcional nuevamente.

0 comentarios: