Paso a paso para volver a Grub despues de reinstalar Windows

Este tutorial fue escrito originalmente para Ubuntu Dapper 6.06, pero es apto para cualquier otra distribución (incluyendo Ubuntu Edgy 6.10, Arch Linux, OpenSUSE, Fedora Core, Mandriva y tantas otras), no es necesaria una interfaz gráfica y se realiza utilizando una consola.

Bueno, hace algún tiempo cuando hice el tutorial de LILO había prometido poner como hacerlo con Grub, hace un rato un amigo del laburo justo me dice que reinstalo Windows y perdió Grub. Así que es un buen momento para que lo publique, ahora que lo tengo fresco.

En este caso utilizamos Ubuntu (Dapper 6.06) el cual es un LiveCD (además de un instalador) con lo que no necesitamos entrar en modo “Rescate”, pero tengan en cuenta que si utilizan otra distribución para arrancar el sistema (que no sea un LiveCD), tal como Fedora, Debian, Mandrake o SuSE, van a tener que ingresar en el dicho modo en lugar de bootear normalmente el sistema.

Usuarios avanzados/medios: Este es un paso a paso, y por lo tanto tiene muchos datos que alguien ya experimentado puede saltear, si ya te manejas con Linux, mira al final del post este que hay una versión ‘reducida’.

  • Arrancamos desde el CD de Ubuntu 6.06
  • Como estamos utilizando Ubuntu, para no tener que ingresar sudo cada cinco segundos y que los comandos queden bien para otras distribuciones, vamos a loguearnos directamente como root:
  • sudo -s -H

  • Hacemos un directorio donde montar nuestro sistema:
  • mkdir /mnt/linux

  • Buscamos cual es la partición que tenemos que montar (para discos Serial ATA – SATA):
  • cfdisk /dev/sda

  • Para discos IDE:
  • cfdisk /dev/hda

  • Allí pueden ver las etiquetas (Label) de las particiones, buscamos la que tiene “[/]“:

  • Name | Flags | Part Type | FS Type | [Label] | Size (MB)
    ---------------------------------------------------------------------------
    sda1 | Boot | Primary | Linux ReiserFS | [/] | 501.75

  • De acuerdo a cfdisk nuestra partición / es sda1
  • Montamos la partición root en el directorio:
  • mount /dev/sda1 /mnt/linux

  • Ahora hacemos un chroot dentro de la partición root recién montada:
  • chroot /mnt/linux

  • Luego, entramos a la shell de Grub:
  • grub

  • Dentro de la shell de Grub, hallamos cual es la partición donde tenemos que loguear root para reinstalarlo:
  • find /boot/grub/stage1

  • Esto nos va a devolver algo de la forma (hdX,Y) donde X e Y son números, en nuestro ejemplo que era sda1, seria (hd0,0).
  • Nuevamente, dentro de la shell de Grub, lo utilizamos con el siguiente comando:
  • root (hd0,2)

  • Ahora que ya estamos dentro de la partición correspondiente, hacemos el ultimo paso, reinstalarlo, para el siguiente comando tengan en cuenta el primer numero del comando anterior, que en nuestro ejemplo seria el 0:
  • setup (hd0)

  • Luego de correrlo, verán algo como lo siguiente:

  • 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)"... 15 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,2)/boot/grub/stage2
    /boot/grub/menu.lst"... succeeded
    Done.

  • Salimos de Grub:
  • quit

  • Salimos de chroot:
  • exit

  • Reiniciamos el sistema:
  • reboot

    Para los usuarios mas avanzados:

      Booteamos con un LiveCD o en modo rescate, luego:
      # mkdir /mnt/linux
      # mount /dev/hdX /mnt/linux
      Donde X es la partición root. Tener en cuenta que si es SATA debería ser de la forma sdX
      # chroot /mnt/linux
      # grub
      grub> find /boot/grub/stage1
      Esto nos devuelve el hd que tenemos que utilizar en el siguiente comando, a modo de ejemplo se utiliza (hd0,1):
      grub> root (hd0,1)
      grub> setup (hd0)
      grub> quit
      # exit
      # umount /mnt/linux
      # reboot