Dichoso Windows! Si usas Windows y luego instalas Linux en otra partición el mismo grub te añadirá las particiones de Windows y las de Linux sin ningún problema. ¿Por qué entonces cuando lo haces al revés Windows no tiene en cuenta que NO es el único sistema operativo del mundo y que es posible que en tu máquina tengas ya configurado algo en el MBR?
Antes era más sencillo con el LILO o con GRUB. Bastaba con arrrancar con el «Super Grub Disk» (un programa antiguo pero que me ha sacado de más de un apuro) y restaurar tu MBR o simplemente arrancar la paartición que desees y luego reparar el MBR.
Pero con GRUB 2 la cosa cambia. El Super Grub Disk no me detectaba la partición de Linux (lo que hizo que algo empezara a subir hasta ponerse casi de corbata) así que Googleando, con un litro de café y probando varias cosas al final lo pude solucionar así:
1. Bajar la versión 9.10 de Ubuntu y quemarla en un CD … a pesar de ser usuario fiel de Debian 🙁
2. Arrancar con el CD de Ubuntu y arrancar con la primera opción, que no te hace cambios en el disco
3. Una vez cargado Ubuntu, abrimos una consola y ejecutamos:
- sudo fdisk -l // donde nos saldrá la tabla de particiones y debemos buscar la nuestra de Linux
- sudo mount /dev/sda3 /mnt // mi partición de Linux está en /dev/sda3
- sudo grub-install –root-directory=/mnt /dev/sda
Y si todo ha ido bien, te restaurará el Grub anterior (en el que tapoco tenía Windows :))
En el caso de que haya dado error por no tener el fichero grub.cfg, lo podemos regenerar así:
- sudo mount –bind /proc /mnt/proc
- sudo mount –bind /sys /mnt/sys
- sudo mount –bind /dev /mnt /dev
- sudo chroot /mnt update-grub
Luego reiniciamos el equipo y veremos nuestro anterior Grub 2 y, como dije, sin el Windows ya que antes no lo tenía instalado.
Para añadir la partición de Windows tenemos que crear un fichero en /etc/grub.d al que llamaremos 20_windows_xp (ver /etc/grub.d/README para entender el formato del fichero):
#! /bin/bash -e
cat << EOFmenuentry «Microsoft Windows XP Professional» {
set root=(hd0,2)
chainloader +1
}
EOF
(No olvidar meter un salto de línea después del EOF)
Luego ejecutar el siguiente comando (ya una vez arrancado nuestro Linux):
- sudo update-grub2
Reiniciamos para verificarlo y, si no ha salido la partición de Windows, siempre la podemos añadir a mano en el grub.cfg (aunque luego cuando haya una actualización y se regenere la perderemos). Para ello editamos /boot/grub/grub.cfg y añadimos esto:
menuentry «Windows xp» {
insmod ntfs
set root=(hd0,2)
chainloader +1
}
Teniendo en cuenta que yo puse hd0,2 porque tengo en /dev/sda2 mi Windows