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:
- 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.
- 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
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).
Reiniciar el PC, y arrancar la Live CD.
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.
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
.
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.
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:
- 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). - 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.
Reiniciamos el PC (extrayendo el Live CD) cuando sea requerido.
Conclusiones
Espero que os haya sido de utilidad, y si tenéis algún problema preguntad.