Recuperar el GRUB 2 despues de una mala instalación

Como buen cacharrero de Linux, a uno le gusta que su sistema esté actualizado para aprovechar las mejoras de paquetes, software, etc; que se tienen en los repositorios de cada distribución. Es por ello que me di a la tarea de actualizar el GRUB a la versión 2. Como root ejecuté el comando: upgrade-from-grub-legacy el cual comenzó a instalar o más bien a actualizar el GRUB a la versión 2. Cuando llegó a la parte donde pregunta: ¿donde quiere instalarlo? si en /dev/sda o /dev/sda1 (disco fisico y partición donde está montado la raiz, respectivamente) opté por la segunda opción, lo cual terminó de instarlo bien y no arrojó ningún error.


Cuando reinicié para verificar que todo estuviera correctamente, me apareció el error siguiente:

GRUB loading, please wait....
Error 15

Pues cualquiera se asustaría al ver eso o pensar: "Mierda...me tiré mi equipo y no tengo backups!!" Pues la verdad si me dió un poco de susto pero no es la primera vez que me pasaba eso asi que decidí buscar en Internet y les muestro la solución:

1. Busquen un live-cd de Ubuntu o la distro que ustedes quieran. (Para mi caso lo hize con Ubuntu 10)
2. Una vez carguen el S.O, abran una consola de texto y digiten como root:

#  fdisk -l | grep -i linux

Lo cual les mostrará sobre que dispositivo están montadas la swap y la raiz
/dev/sda5            1276        1397      979902   82  Linux swap / Solaris
/dev/sda1            1398        2550     9261441   83  Linux

3. Creamos un directorio llamado linux donde montaremos nuestro sistema que usa el GRUB

# mkdir linux

4. Montamos la particion sdXY, siendo X el disco y la Y el número de nuestra partición a montar, en el directorio linux 

# mount /dev/sdXY linux/ 

5. Montamos el sistema de ficheros "proc" en nuestro directorio linux, pero en nuestro sistema operativo a enjaular. 

# mount -t proc /proc linux/proc 

6. Montamos la estructura del directorio /dev a nuestro directorio a enjaular para poder acceder a las particiones dentro de él. 

# mount --bind /dev linux/dev 

7. Nos enjaulamos con chroot en el directorio linux 

# chroot linux/ 

Despues de hacer esto y si todo ha salido bien, pasamos de estar en el directorio ~, ha estar al directorio /, pero no del sistema con el que hemos arrancado, si no del sistema al que nos hemos enjaulado. Por último reinstalamos el GRUB 2.

# grub-install /dev/sdX 

Donde X es la letra del disco, no de la partición o sea, para mi caso sería /dev/sda . Con esto reiniciamos y tenemos funcionando nuestro GRUB 2 nuevamente.

Fuente: http://crashbit.homelinux.com/node/799

0 Comments: