Arreglar Grub2 tras instalar Windows

>> 28 feb 2010

Una de "esas cosas" que tiene windows es que es un poco celoso y no le gusta mucho estar en el mismo disco duro con otros Sistemas Operativos (SO). Por eso cuando, después de haber instalado una distribución de ubuntu, instalas windows se pierde el menú de elección de SO - este menú se llama grub -
Y es una jodienda puesto que "pierdes" la opción de iniciar el resto de, ejem mejores, sistemas operativos. 
Pues hoy vamos a aprender a recuperar el menú Grub2 después de una instalación de windows. Por cierto, que no os quepa la menor poya en el culo duda de que windows hace esto totalmente a propósito y que lo hace para dificultar el paso a otros, ejem mejores, sistemas operativos.

Para realizar esto necesitaremos un Live CD de una distribución linux, es decir, un CD de instalación. Tienes infinitas distribuciones para elegir y seguramente si quieres recuperar el grub es porque ya has instalado una distribución antes. Recupera ese CD que tienes por ahí o sino descárgatelo, por ejemplo, desde aquí. Incluso si tienes unas cuantas semanas (seis) de sobra puedes pedir que te lo envíen a casa gratis.

Si quieres saber como seguir sigue leyendo


Tras esto debes iniciar tu ordenador desde el CD. Para ello debes meter el cd, apagar el ordenador, volverlo a meter y mientras se carga la BIOS apretar el botón que te sugiera para entrar en el BOT menú. En mi caso es aprentando F12 pero puede ser F8 o F2 o ....

Tras esto elegiremos iniciar live CD para probar la distribución. 

Una vez que aparezca el sistema operativo ya cargado abriremos una terminal y empezamos.

Lo primero es averiguar qué particiones tenemos en nuestro disco duro, para ello:
sudo fdisk -l
Esto nos devolverá muchas cosas pero solo nos importan un par de cosas. Esto es lo que me sale a mi
Disco /dev/sda: 500.1 GB

[...]

Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 9562 76800000 7 HPFS/NTFS
/dev/sda2 18998 19122 1004062+ 5 Extendida
/dev/sda3 19123 60802 334784512 7 HPFS/NTFS
/dev/sda4 9563 18997 75786637+ 83 Linux
/dev/sda5 18999 19122 996030 82 Linux swap / Solaris
[.....]

Como puedes ver primero te muestra, digamos, el "nombre" de tu disco duro y su "localización". Esto no es exacto pero nos vale como simplificación.  Luego nos muestra todas las particioes de nuestro disco duro. Yo tengo una de muchos Gb con formato NTFS para datos, otra NTFS para windows, otra igual para Linux /dev/sda4 y finalmente la partición swap.
Tienes que encontrar cual es la partición donde tienes instalado Linux, esto es sencillo puesto que te pondrá Linux :D

Una vez que tenemos ya todos los datos necesario lo primero es comprobar qué unidades están montadas tecleando en una terminal:
sudo mount
Debemos fijarnos si sda4 (recuerda que esto puede cambiar y debes poner el que te corresponda) está ya montado. Si no está montado procedemos a montar la partición en la carpeta /mnt . Como comenta CSK en los comentarios es preferible no montar directamente en la carpeta mnt. Es mejor crear una carpeta dentro o en su lugar montarlo en otro lugar. Para montarlo en una carpeta dentro de /mnt tecleamos:
sudo mount /dev/sda4 /mnt/temporal
Montamos el resto de dispositivos del Pc
sudo mount –bind /dev /mnt/dev
Accedemos a la carpeta /mnt/temporal con permisos de administrador (root)
sudo chroot /mnt/temporal
Y finalmente reparamos el grub con este sencillo comando
sudo grub-install –recheck /dev/sda
Ojo que tienes que poner /dev/sda y no sda4 que sino no funciona!

Tras esto, reiniciamos y ahí lo tenemos arreglado. Ahora puede que no aparezca correctamente  en el menú grub la partición de windows. Esto puede pasar por muchos motivos pero a mi me pasó porque antes de instalar windows tenía dos particiones con gnu/linux. Es muy sencillo hacer aparecer la opción de windows. Sólo tenemos que iniciar linux normalmente abrir una terminal y poner
sudo grub-update
Cuando termine ya tendrás arreglado el grub2.

ACTUALIZACIÓN


Luis Moreno nos comenta desde Buzz  lo siguiente, muy muy útil!

Aquí dejo hecho un script que crea una ISO de rescate para arracar tu antigua configuración de grub perdida tras una instalación windows, funciona con grub, grub-fx y grub2. También añade a la ISO algunas opciones muy útiles como memtest, layout del teclado y también una opción de autoreinstalación para restaurar el MBR.
Lo he testeado con grub y grub-fx pero con grub2 todavía no. http://luinuz.comze.com/mi_web/shell_scripts.php#19
Muchas gracias!!!

2 comentarios:

cdz 28 de febrero de 2010, 21:36  

Antes de montar la partición:

sudo mount /dev/sda1 /mnt

conviene saber si el SO la ha montado ya:

sudo mount

Si no sale en la lista es que no está montada.

Por precaución yo recomendaría también no montar una partición en /mnt, mejor hacer un directorio dentro de /mnt para la ocasión:

sudo mkdir /mnt/loquesea

o aún mejor, fuera del sistema /mnt:

sudo mkdir /otro_sitio/unidad

Por lo demás esto viene bien tenerlo :)

Un saludo !

Aracem 28 de febrero de 2010, 22:03  

A la que tenga 5 minutillos lo actualizo y mejoro. Gracias CDZ!!!!

 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.