Recuperar GRUB tras instalar Windows

La motivación de este post es sencilla, que hacer para que arranque Linux, tras haber instalado Windows en un PC. El problema viene cuando instalamos Windows (cualquier versión), después de haber instalado cualquier otro sistema operativo, como por ejemplo Linux; cuando instalas Linux, este te pregunta cómo quieres configurar el arranque (respetando Sistemas Operativos previos), pero al instalar Windows esto no es así, el instalador de Windows pisa cualquier tipo de gestor de arranque y pone el suyo, dejando nuestros Sistemas Operativos previos sin poder arrancar.

Cuando nos ocurre esto, sólo hay dos soluciones posibles:

  1. Reinstalar el sistema operativo previo, es decir, si teníamos un Linux, lo volvemos a instalar, y dado que este respetará a nuestro Windows, asunto arreglado; problema: perderemos los datos previos de la instalación del Linux.
  2. Arreglar el gestor de arranque: de esto trata el post.

En este post indicaremos cómo recuperar el gestor de arranque GRUB mediante una Live CD cualquiera de Linux (de las muchas que hay en estos momentos).

Pasos a seguir:

  1. Introducir el CD (o DVD) con la Live CD en el PC (por ejemplo el CD de instalación de Ubuntu es un Live CD, es decir, te permite ejecutar Linux sin necesidad de instalarlo).
  2. Reiniciar el PC, y arrancar la Live CD.
  3. Una vez arrancado el Sistema Operativo de la LiveCD, ejecutamos un terminal o una consola (si arrancamos en modo de texto, esto no será necesario.
  4. Buscamos la partición de Linux a recuperar, para lo cual listaremos todas las particiones con el comando:

    $ sudo fdisk -l

    Esto pude dar como resultado algo parecido a esto:

    Disco /dev/sda: 160.0 GB, 160041885696 bytes
    255 cabezas, 63 sectores/pista, 19457 cilindros
    Unidades = cilindros de 16065 * 512 = 8225280 bytes
    Identificador de disco: 0x000ee64e

    Disposit. Inicio Comienzo Fin Bloques Id Sistema
    /dev/sda1 * 1 16908 135813478+ 7 HPFS/NTFS
    /dev/sda2 16909 17090 1461915 82 Linux swap / Solaris
    /dev/sda3 17091 19457 19012927+ 83 Linux

    En el ejemplo, la partición que nos interesa es la tercera, es decir: /dev/sda3.

  5. Ahora tenemos que montar la partición, para lo cual haremos lo siguiente (IMPORTANTE: sustituir /dev/sda3 por la partición que corresponda, averiguada en el paso anterior, además si el tipo de ficheros de tu Linux previo no es ext3, deberías cambiar el tipo por el valor que corresponda (lo más seguro es que sino es ext3, sea ext2)):

    $ cd /media
    $ sudo mkdir linuxprevio
    $ sudo mount -t ext3 /dev/sda3 /media/linuxprevio

    Si todo va bien no se mostrará ningún mensaje de error.
  6. Llegó el momento de reinstalar GRUB (ejecuta los siguientes comandos):

    $ sudo grub
    grub> root (hdX,Y)
    grub> setup (hdX)
    grub> quit

    Tenemos que tener en cuenta lo siguiente:

    1. Donde aparece la X, tendremos que poner el índice del disco duro, empezando por cero (normalmente, sólo tendremos un disco duro, por lo que pondremos un cero).
    2. Donde aparece la Y, tendremos que poner el índice de la partición, empezando por cero, de modo que si antes teníamos /dev/sda3, el índice de partición será 2 (y no 3!).

    Siguiendo con el ejemplo anterior (1 disco duro y la partición 3), el resultado de los comandos anteriores sería:

    $ sudo grub

    [ Minimal BASH-like line editing is supported. For
    the first word, TAB lists possible command
    completions. Anywhere else TAB lists the possible
    completions of a device/filename. ]

    grub> root (hd0,2)

    grub> setup (hd0)
    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/e2fs_stage1_5" exists... yes
    Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,2)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
    Done.

    grub> quit

    Con esto ya habríamos terminado de reinstalar el cargador de arranque.

  7. Reiniciamos el PC (extrayendo el Live CD) cuando sea requerido.

Espero que os haya sido de utilidad, y si tenéis algún problema preguntad.

4 comentarios

  1. camiloalcubo dice: Responder

    No me ha funcionado. Escribo lo que he hecho

    Abrí una terminal XD
    (por si acaso me registro como usuario root)

    $: sudo su
    $: aprt-get install grub
    $: grub
    grub> find /boot/grub/grub.cfg
    grub> (hd0,2)
    grub> root (hd0,2)
    grub> setup (hd0)
    y aparece

    Checking if “/boot/grub/stage1” exists… no
    Checking if “/grub/stage1” exists… no

    Error 15: File not found

    Abro otra terminal y…
    $: sudo su
    $: cp /usr/lib/grub/i386-pc/stage1 /boot/grub/stage1
    $: cp /usr/lib/grub/i386-pc/stage2 /boot/grub/stage2

    y vuelvo la otra terminal. Por si acaso, salgo del grub e ingreso de nuevo.

    grub> root (hd0,2)
    grub> setup (hd0)

    pero de nuevo aparece

    Checking if “/boot/grub/stage1” exists… no
    Checking if “/grub/stage1” exists… no

    Por si acaso, pruebo cambiar los permisos. Aunque sé que igual es riesgoso, pondré todos :P, es sólo para ver si es eso.
    $: chmod 777 /boot/grub/stage1
    $: chmod 777 /boot/grub/stage2

    En realidad el paso anterior lo hice desde el directorio grub. Vuelvo al grub, pero vuelve a aparecer lo mismo :S y en eso estoy ahora.

    Por fa, ayuda 🙂

  2. keybreaker dice: Responder

    To Israel .

    Your file “menu.lst” (configuration file of GRUB contained in grub instalation dir) is bad formatted.

    Looks for a good “menu.lst” trough internet and compare it with yours.
    You will see errors in your file for sure.
    IMPORTANT: This file cant contain TAB characters.Thats your problem, in some place in menu.lst file. You have writen a TAB character.

  3. israel dice: Responder

    Reinicio y me sigue saliendo:

    Minimal BASH-like line editing is supported. For
    the first word, TAB lists possible command
    completions. Anywhere else TAB lists the possible
    completions of a device/filename

    cada vez

  4. nopuede instalar mail live

Deja un comentario