viernes, 6 de julio de 2007

Restaurando Grub (despues de instalar windows)

Bueno después de un buen tiempo de no publicar vuelvo para resolver un tema, que aunque en internet esta la solución en todos lados, muchos me han preguntado esta semana. ¿Como recupero el menú para elegir S.O?.

Primero vamos a aclarar algunas cosas ese menú se llama Grub (GRand Unified Bootloader) y el problema (normalmente) ocurre tras instalar alguna versión de aquella cosa llamada Windows. La cosa es mas o menos así, instalamos Windows en una partición contigua a la cual tenemos Linux y este S.O creyéndose dueño de nuestro HD, borra el master boot record donde se aloja Grub y en el graba su propio boot manager el cual no sirve para mas que agregar otro Windows (si se que con unos cuantos retoques se puede agregar Linux, pero la verdad no vale la pena). Por suerte revivir nuestro Grub es relativamente fácil de hacer.

Primero deben saber como se organizan los discos en Linux. Si son discos IDE normalmente se nombran como hdXY siendo X una letra (a, b, c, etc) la cual indica que es un disco, la Y es un numero, el cual indica la partición. Si poseen discos sata la organización es la misma pero en vez de hdXY seria sdXY.

Lo único que necesitaran para esto es algún live cd (en este caso el de Kubuntu Feisty Fawn) y el computador en cuestión. Iniciamos el equipo con el live cd, una vez en Kubuntu usaremos una consola para ejecutar algunos comandos, usaremos Konsole que es la terminal por defecto de KDE.

Comencemos, primero cambiamos a root usamos sudo para esto: sudo -s
Lo primero es saber el disco donde esta instalada nuestra distro para esto utilizamos el comando fdisk de esta forma:

fdisk -l

y la salida es algo así:

Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pista, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 2551 9652 57046815 83 Linux
/dev/hda3 9653 9729 618502+ 82 Linux swap / Solaris


Si su disco es sata en vez de hdX verán sdX.
Como pueden ver mi sistema esta instalado en el disco hda en la partición 2. Una vez conocido esto por fin podemos empezar la recuperación.

Crearemos un directorio dentro de la carpeta media (puedes hacerlo en cualquier lugar, uso media solo por orden) llamada kubuntu:

mkdir /media/kubuntu

Ahora montaremos la partición de Linux en la carpeta /media/kubuntu

mount /dev/hda2 /media/kubuntu

Utilice hda2 por que era mi partición de Linux, ahora montaremos algunos directorios que son necesarios para recuperar a Grub

mount --bind /dev /media/kubuntu/dev

mount --bind /proc /media/kubuntu/proc

mount --bind /sys /media/kubuntu/sys


La opción –bind se usa para montar sobre un directorio montado.

Con todo listo solo falta convertir la carpeta /media/kubuntu en nuestra raíz

chroot /media/kubuntu

Para finalizar instalamos Grub

grub-install /dev/hda

En este ultimo caso use /dev/hda por que mi disco es ese.

En ciertas ocasiones no se crea la entrada para windows, si esto sucede deben agregar al final del archivo /boot/grub/menu.list la siguiente entrada:

title Microsoft Windows XP Professional

root (hd0,0)

savedefault

makeactive

chainloader +1

Esto no lo hagan desde el live cd, sino que una vez que reinicien.

Espero que sea útil para aquellos que me preguntaron.

4 comentarios:

tuxsarge dijo...

Hola,e sta weno tu blog...

Pero en cuantoa grub, no sería más fácil hacer esto:

http://tuxsarge.blogspot.com/2007/08/recuperando-grub.html

Saludos

阿辺 dijo...

tuxsarge esa solucion funciona a menos que solo quieras utilizar el linux, solo volverias a mostrar el grub antes de instalar windows, cosa que no sirve.

Jorge hugo aranda dijo...

instale el kubuntu hardy, en una acer aspire 4520, que tenia el windiws vista original, el kubuntu se instalo perfecto pero cuando reinicie la notebook, aparece un cuadro donde esta kubuntu primero y despues w. vista, cuando hago clik, en vista, no`puedo ingresar, necesitaria una ayuda.
gracias

F3lip3 dijo...

Te puedo ayudar, pero para eso necesito ver tu archivo de configuración de grub. Lo puedes buscar en /etc/boot/grub/menu.lst pegalo en pastebin y publica el link. Saludos