Obtener dinero con AdFly

domingo, 3 de abril de 2011

Recuperé Grub2 desde la cónsola de rescate, sin CD-Live

Esto lo escribo porque acabo de perder casi toda la información de mi partición donde tenía /home, porque estaba redimensionando el disco, moviendo particiones, cambiando de lugar /boot... y se apagó la computadora :SSSS (no chinges jeje). Como no me dió tiempo de actualizar el gestor de arranque Grub2, al reiniciar la PC, obtuve este mensaje:

No such partition
grub rescue>

Con el cursor en esta última línea de comandos para recuperar el Grub2. Me salió este mensaje porque al cambiar de partición a /boot y sin actualizar el grub2, este sigue buscando el kernel y el inird donde antes estaba /boot.

Estaba en la peor de las situaciones (casi), porque no tenía una computadora de respaldo para buscar documentación sobre los comandos de la cóndola de Grub2; tenía imágenes ISO de Debian, Ubuntu y de como 8 distribuciones más, pero todas en el disco y sin poder acceder para quemarlas :(. Sabemos que no es fácil encontrar una distro en la farmacia de la esquina y no quería buscar un Windows ni nada de eso :). Así que fui a un Cyber y busqué información de los comandos y encontré esto:

https://help.ubuntu.com/community/Grub2

En la sección Command Line and Recue Mode, encontré lo que necesitaba, con lo que hice una medio guía:


Primero vemos qué particiones tenemos con:

>ls

Debería aparecer algo en este formato: (hdX) (hdX,A) (hdX,B)... tantas como particiones tengamos. Siendo hdX el disco (hd0,hd1,etc...) y el segundo parámetro es la partición (0,1,etc... ó msdos1,msdos2,etc..., según el tipo de partición).

Si ejecutamos ls (hdX,Y)/ aparecerá lo que hay dentro de esa partición en su carpeta raíz.

Luego asignamos el prefijo donde está el /boot/grub:

>set prefix=(hdX,Y)/boot/grub

Si la partición (hdX,Y) sólo es para /boot, tendríamos que colocar algo así:

>set prefix=(hdX,Y)/grub

Después asignamos la partición raíz:

>set root=(hdX,Y)

Con ls / o con ls /boot, ya podemos ver lo que hay dentro de estos directorios en la partición que escogimos.

Cargamos los módulos adicionales para asignar el kernel y el initrd desde el cual vamos a iniciar el sistema:

>insmod /boot/grub/linux.mod

Asignamos el kernel:

>linux /vmlinuz root=/dev/sdXY ro

Siendo /dev/sdXY (ej.: /dev/sda1) la partición donde está el grub.

Asignamos el initrd:

>initrd /initrd.img

Si queremos un kernel e initrd específicos, ejecutamos:


>linux /boot/vmlinuz-<versión> root=/dev/sdXY ro

>initrd /boot/initrd-<versión> root=/dev/sdXY ro

Y finalmente cargamos hacemos boot:

>boot

Al iniciar el sistema instalamos el Grub2 antes de reiniciar, porque sino vamos a tener que hacer todos los pasos otra vez. Desde una cónsola de root ejecutamos:

#grub-install --recheck /dev/sdXY

Siendo /dev/sdXY la partición donde está el directorio /boot.

Y actualizamos el grub2, ejecutando desde una cónsola root:

#update-grub
#update-grub2

Por ahora no me ha funcionado update-grub2 sólo, por eso ejecuto los dos.

Perdí la información pero recuperé el Grub2 xDD...

2 comentarios:

  1. tengo este problema: instale Ubuntu en una particion que hice desde la misma instalacion y como me daba errores borré la participación desde win 7. Y ahora me sale eso de grub rescue. Como no estoy metido en este mundo tanto como tu me pierdo en la explicación pero tiene muy buena pinta. Ayuda por favor! ! ( no tengo ningún cd )

    ResponderEliminar
    Respuestas
    1. Creo que esta respuesta llega un poco tarde. Primero que todo te explico que tanto Linux como Windows tienen un gestor de arranque, que es la fase anterior a iniciar el Sistema Operativo. Linux usa Grub (entre otros, pero para este ejemplo te explico con Grub) y Windows usa MBR. Cuando instalas Windows se instala por defecto MBR, pero si después instalas Linux, sobreescribe el MBR e instala Grub, y viceversa.

      En tu caso instalaste Ubuntu de último. Luego de eso, si borras la partición donde estaba Ubuntu, cuando el sistema vaya a iniciar va a buscar por el Grub, el cual no va a estar porque se borró. Lo que debes hacer ahora es iniciar con un CD de Windows (busca un CD barato, por no decir pirata), busca la opción de reparar sistema. Cuando aparezca la opción Símbolo de Sistema entras y ejecutas este comando:

      fixmbr

      Esto restaurará el MBR de Windows y podrás iniciar normalmente de nuevo.

      Eliminar