domingo, 29 de noviembre de 2009

Restaurar GRUB2 [Probado] después de instalar Windows 7

Uno de los inconvenientes de instalar Windows en el equipo es que, infaliblemente, se carga el MBR. No es educado ni te pregunta si te gustaría continuar usando los diferentes sistemas operativos que ya se encuentran instalados en el sistema, no. Total, que una vez se ha instalado Windows con éxito, a restaurar GRUB's tocan.

Con el Grub v1.0 era bastante fácil. Metías el Live-CD, buscabas por internet un HOWTO ( internet está lleno ) ejecutabas unas 3 líneas en la consola, y el MBR restaurado y con entrada de Windows incluida y todo. Bueno, pues esto era antes. Con Grub v.1.97 BETA (sisi, has leído bien ) también llamado Grub2 no es lo mismo.
Me encontré que me saltaba una pantallita que me decía algo así como:
GNU GRUB 1.97 BETA
MINIMAL BASH-LIKE ...etc....
sh:grub>
Y punto. Parece como que quiere que le des las órdenes de manera manual, para saber qué tiene que arrancar. Mal vamos.

Lo típico, meter Live-CD, buscar un HOWTO, ejecutar de todo y al final sin una solución. 4 horas más tarde (literalmente) y después de patearme medio Internete, encontré algo que me funcionó. Es lo siguiente:
  1. Iniciamos Ubuntu con Live-CD. Lo vamos a necesitar conexión a Internet y un CD vírgen.
  2. Ir a la página web de Super Grub Disk. Descargar la .ISO de SG2D CD-ROM ( clic aquí )
  3. Tostar la .iso descargada ( después de descomprimirla ) en un CD con Brasero
  4. Reiniciar el PC e iniciar desde el CD
  5. Nos saldrá un menú y elegimos la primera opción, que reza algo así como "Start Linux". Bien, os cuento que acabamos de hacer. SGD se encarga de simular que tienes GRUB y nos carca la partición Linux instalada. Ésto nos facilitará mucho las cosas cuando querramos restaurar el Grub.
  6. Pues aquí yo hice las mil y una pruebas. Probad con los siguientes comandos:
$ sudo upgrade-from-grub-legacy
$ sudo fdisk -l #Aquí vereis que disco es el de Linux. En mi caso és "sdb"
$ cd /
$ sudo grub-install --root-directory=/ dev/sdb
$ sudo update-grub
$ sudo update-grub2

En mi caso y ejecutando éstos comandos acabó funcionando el tema. El GRUB reconoce la versión de Windows instalada y automáticamente crea una entrada en el fichero de configuración. Quitar el CD, reiniciar y ala! Sistema operativo arreglado.

Y ahora un poquito de reflexión. Haber, la distribución Ubuntu 9.10 salió con el objetivo de mejorar el tiempo de inicio del sistema. Pare ello hicieron varias cosas, entre ellas poner el nuevo Grub2 y el nuevo sistema de ficheros ext4. Esto está muy bien, solo por el detallito de que Grub2 en realidad es Grub 1.97 BETA. El motivo por el cual sacaron este nuevo Grub, es el anterior no tenía compatibilidad ( o igual surgían problemas, no lo se exactamente ) con ext4. Un negativo para los chicos de Ubuntu. Esperemos que próximamente saquen la versión 2.0 de Grub y que aumenten la documentción al respecto.

Si tienes preguntas o si continuas teniendo problemas, dejen tu comentario!

Saludos!


Nota: Revisar el comentario de -ky0l3r-!!

25 comentarios:

  1. Si, el 9.10 ya tiene sus meses corriendo y la documentacion del Grub 1.97 beta es poca, y los no se que problemas les halla dado a algunos... pero yo aun estoy sin resolver uno: a partir de inciar el grub la primera vez el windows 7 se reincia cuando intento iniciarlo... e formateado e intentado de todo.. y nada aun...

    ResponderEliminar
  2. No acabo de entender el problema que te da. Cuando tu eliges la opción de Windows 7 en el menú del GRUB para cargar aquella partición, se reinicia el sistema ( osea, sin dejarte abrir Windows 7 )??
    El Windows7 se ha iniciado normalmente alguna vez? O lo instalastes después de instalar el Ubuntu 9.10?

    Espero poder ayudarte. Saludos.

    ResponderEliminar
  3. Primero que nada, el GRUB anterior era 0.97, y le colocaron 1.97 a este para seguir esa "linea". Eso no quiere decir que sea beta. No tiene errores, es un sistema de arranque nuevo, que cambió la forma de instalarse, y el formato de los archivos en /boot. Habría que informarse antes de decir ese tipo de cosas.
    De igual manera, muchas gracias, voy a probar eso, acabo de instalar Wintendo, solo para jugar, y me pasó por arriba el grub 2, y no me quedará otra que hacerlo de esta manera.

    ResponderEliminar
  4. @3 Gracias por comentar!
    Bueno, la verdad que lo de "BETA" no lo he pusto yo. Esto lo dice el mismo GRUB. Si haces un:
    $ man grup-setup
    por ejemplo, podras leer lo siguiente:
    > grub-setup - manual page for grub-setup (GRUB) 1.97~beta4

    Lo de "no contiene errores" no se si es algo discutible, ya que mucha gente tuvo ( y no se si sigue tendiendo ) problemas con el grub en la instalación de Ubuntu 9.10. En mi caso me tiré 4 horas intentado hacer que funcionara en mi PC... foreé mucho y había mucha gente con gran variedad de problemas. Pero bueno, yo he posteado esta solución para ver si a alguien le puede servir de ayuda.

    Espero que puedas hacer funcionar esto de Wintendo! Saludos! ;)

    ResponderEliminar
  5. Hola inedit001, yo también he tenido problemas con el GRUB2 y lamentablemente no he logrado hacerlo funcionar, intenté lo que tu has escrito y nada..., aunque no se si lo hice bien...
    Seguí las instrucciones para la identificación de la instalación de linux donde me aparece lo siguiente:
    /dev/sda1 1 7 56196 de Utilidad Dell
    /dev/sda2 8 5362 43008000 7 HPFS/NTFS
    /dev/sda3 * 5363 7185 14643247+ 83 Linux
    /dev/sda4 7186 9729 20434680 5 Extendida
    /dev/sda5 7186 7307 979933+ 82 Linux swap / Solaris
    /dev/sda6 7308 9729 19454683+ 83 Linux

    Supongo que donde tengo que instalar el GRUB es en /dev/sda3?

    Saludos

    ResponderEliminar
  6. /dev/sda1 Unidad Dell, supongo que no es
    /dev/sda2 NTFS, todo apunta que es un windows
    /dev/sda3 Linux... posible candidata
    /dev/sda4 Extendida. Definitivamente tienes Windows, apunesto a la versión 7 ;)
    /dev/sda5 Linux swap ( memoria de intercambio)
    /dev/sda5 Linux otra vez... otra posible candidata

    Pues realmente no se decirte ( con esta información ) cual de las dos tienes que elegir. Puedes utilizar la Herramienta de disco, usando el Live de 9.10 y yendo a Sistema>Administración>Utilidades de disco.

    La verdad que sale una información estupenda. Prueba de ir montando las unidades mediante Lugares>Nombre de la partición, hasta que encuentres a tu Linux.

    Aunque ahora que lo pienso, puedes hacer la prueba, primero con una y después con otra, ya que solo tienes un un disco duro ( sda ) y el MBR te lo vas a cargar igual. Ya me contarás como te ha ido, saludos!

    ResponderEliminar
  7. He seguido los pasos indicados y se me recupera el grub2.
    Pero me surje un problema:
    Al clicar en la entrada para windows7 me aparece el siguiente error:
    BOOTMGR is compressed.
    Para solucionarlo intento expandir el fichero pero nada. Sigo los paso para recuperar el arranque de win7 pero se pierde otra vez el grub2.
    Estoy que no puedo tener arranque dual.

    ResponderEliminar
  8. Lo que yo haría es meter el CD de Windows y ejecutar los comandos:
    fixmbr y fixboot
    Aquí[1] y aqui[2] tienes información sobre como hacerlo. Prueba que Windows inicie con normalidad después de esto. Si esto no funciona, tienes un problema con Windows, no con el GRUB. Igual no has hecho el particionado bien o has borrado algo que no debías.

    Si Windows funciona bien, entonces ahora debes seguir los pasos que he indicado en este post para instalar y restaurar GRUB de nuevo ( ya que Windows se lo ha cargado ). GRUB va a machacar el sector de arranque que tiene Windows y él pone el suyo. Con la diferencia de que GRUB incluye a "Windows" en su lista, de modo que puedas acceder a el. Si Windows funcionaba en la primera prueba que has hecho, debería funcionar igualmente ahora.

    Prueba esto haber quetal te va. Si no funciona vuelve a preguntar ;)

    Saludos!

    [1]: http://www.principiantes.info/winxp/recuperar_sector_arranque.php
    [2]: http://support.microsoft.com/kb/314058/es

    ResponderEliminar
  9. Ante todo, gracias por la rápida respuesta.

    Para recuperar win7 teclee lo siguiente:
    bootrec /fixboot
    bootrec /fixmbr
    bootrec.exe /rebuildbcd
    (Segun tu, con las dos primeras lineas y sin escribir bootrec deberia de funcionar ¿cierto?). Te pregunto a ver si lo había hecho bien para no tener que repetir todo el proceso.

    Haciendolo, pierdo el grub pero win7 me arranca bien.
    Vuelvo a intentar recuperar grub2 con los pasos sugeridos por ti y se se me recupera pero en el post anterior ya he comentado wue la entrada a win7 se me queda inhabilitada (bootmgr is compressed es el mensaje que recibo.
    De momentotengo un SuperGrub-Disc y gracias al mismo puedo acceder al S.O. que necesito. El problema lo tienen los demas usuarios de mi familia.

    ResponderEliminar
  10. @Gatiaz, si después de ejecutar las comandas de recuperación Windows7 funciona, es que son estas.

    Ahora ejecuta las comandas:
    $ sudo update-grub
    $ sudo update-grub2

    Esto debería bastar para que te detecte los otros SO y los arranque con normalidad. Yo acabo de instalar Ubuntu 9.04 ( y tengo W7, Ubuntu 9.10 y ARCH ) y he tenido que restaurar el GRUB. Con estas dos comandas todo ha funcionado con normalidad. Espero que puedas arreglar tu problema.

    Si no lo consigues vuelve a preguntar. Si no te recomiendo que entres en el IRC de #ubuntu-es donde seguro que te pueden ayudar. Si nunca has usado IRC, pregunta y yo te ayudo. ;)

    ResponderEliminar
  11. Gracias inedit00 por tus intentos.
    He actualizado el grub pero sigue sin aparecer.

    Tengo dos discos duros.
    El primero lo uso para copias de seguridad (320 GB) y en el segundo (1TB es mas reciente) estan los S.O. win7 y Ubuntu 9.10.
    bueno seguire probando e indagando.
    No he usado nunca el IRC de # ubuntu.

    ResponderEliminar
  12. De nada, de nada. Se hace lo que se puede. Bueno, ahora no acabo de entender esto de que "sigue sin aparecer" pero creo que se por donde va el problema. Al tener dos discos duros, igual estas instalando el sector de arranque en uno que no es.

    Total, que igual tienes instalado el GRUB en el hdd1 y en el hdd2 tienes el sector de arranque del Windows7. Claro, la BIOS abrirá el disco que tenga configurado. Si no lo has configurado nunca, el orden tendrá que ver con el momento que enchufastes el último HDD.

    Vale, me dejo de enrollar. Haz una prueba. Cuando inicias el PC, la primera pantalla que sale seguro que te dice que pulses alguna tecla para elegir el medio de arranque ( disco duro, red, CD, etc... ). En mi caso es F8, pero esto depende de la placa base. Lo que tienes que hacer es seleccionar el disco duro que no se estaba cargando hasta ahora (si no sabes cual es haz una prueba con los dos). De modo que si has instalado GRUB en otro disco, ahora debería cargar GRUB. O hacer algo diferente, vaya. Bastantes problemas vienen por aqui, que restauras el sector de arranque, pero en un disco que no es.

    Si con esto no llegas a resolverlo, yo te recomendaría que sigas los pasos que has seguido hasta ahora para restaurar el sector de arranque pero con el disco duro de BackUp desconectado ( ya que no tiene ningún sistema operativo, todo son datos ).

    Si esto no te va tampoco, enviame un mail, y será mejor que ir resolviendolo vía comentarios de blog. mi dirección és inedit00 [at] gmail [dot] com. Haber si arreglamos esto de una vez. Saludos!

    ResponderEliminar
  13. Gracias inedit00.
    Creo que el problema va por ahí.
    En cuanto coge tiempo probaré y ya te contesto.

    ResponderEliminar
  14. OK.Problema solucionado.
    Cambiando el arranque del disco duro desde la BIOS.
    Gracias inedit00.

    ResponderEliminar
  15. Un placer haber ayudado a solucionar el problema. Saludos!

    ResponderEliminar
  16. hola, espero alguien me pueda ayudar, tengo problemas con grub, no me reconoce w7, y si arranco con windows salta "falta bootmgr", he intentado todo (live-cd, dvd-w7) y no he logrado arrancar w7. Necesito urgentemente arraglarlo, ya que trabajo con muchos programas y formatos de windows que por ahora linux no soporta o no trabaja correctamente, y no deseo formatear ni w7 ni ubuntu 10.04. Me llamo Manuel y agradeceria muchisimo toda vuestra ayuda

    ResponderEliminar
  17. Eii Manuel! No desesperes que esto tiene solución!

    Mira, esto que te ha pasado se debe a una mala instalación del GRUB, que ha pisado un fichero imprescindible para arrancar W7. Pero tranqui, que es un fallo común. Y tranquilo que en ningún momento pierdes datos, ni vas a tener que formatear nada, simplemente es que no puedes acceder a tus datos, pero no desesperes.

    Al ser un problema bastante común, te pongo aqui dos links para que vayas probando tu mismo:
    De Microsoft:
    http://support.microsoft.com/kb/927392
    Este está en inglés pero promete mucho:
    http://www.howtogeek.com/howto/windows-vista/fixing-bootmgr-is-missing-error-while-trying-to-boot-windows-vista/
    No importa que sea del vista, el proceso es el mismo.

    Cuando acabes con esto, y con la habitual tolerancia de Microsoft, te habrás quedado sin Grub, lo mas seguro. Osea que tendrás que volver a instalarlo, pero esto también es un proceso muy simple y muy bien documentado, seguro que encuentras cosa.

    Si necesitas mas ayuda, no dudes en dejar comentarios. Yo prometo contestar en cuando tenga tiempo.

    ResponderEliminar
  18. Un excelente blog, y realmente me fue de mucha ayuda al momento de recuperar mi grub2 y por ende mi hermoso Debian =).
    Unicamente como comentario, al momento de poner en terminal "sudo grub-install --root-directory=/dev/sdX"
    me tiraba una salida medio rara de que no habia especificado la opcion 'install_device'

    install_device not specified.
    Usage: grub-install [OPTION] install_device
    Install GRUB on your drive.

    bla bla bla...
    Asi que una vez arrancando con debian unicamente escribi:
    $ sudo grub-install /dev/sda
    $ sudo update-grub2
    y listo!
    espero sea de ayuda a mas de alguno.

    Un saludo!
    -ky0l3r-

    ResponderEliminar
  19. Muchas gracias -ky0l3r-! Seguro que tu comentario ayuda a otra gente. He editado el post animando a que lean tu comentario, haber si también sirve de ayuda.

    Gracias de nuevo. Saludos.

    ResponderEliminar
  20. Estoy contento de que te sirviera "Anónimo".

    Gracias por comentar. Un saludo!!!

    ResponderEliminar
  21. Gracias por compartir tu informacion. Anote en mi cuaderno de linux los pasos que mencionas. En otras oportunidades tambien por "meter mano" sin demasiada investigacion previa perdi mi debian y luego fue todo un tema, al final creo que lo solucione con el cd Super Grub.. Pero reitero mi agradecimiento por tus esfuerzos en divulgar :)
    Hugo

    ResponderEliminar
  22. Muchas gracias, Hugo. Aprecio mucho el apoyo. De verdad. Celebro que te haya ayudado este post.

    A ver si retomo el blog otra vez y sigo publicando alguna cosilla de vez en cuando ;)

    Un saludo y gracias!

    ResponderEliminar
  23. Bien por ti! me sirvió muy bien, muchas gracias por el aporte!

    ResponderEliminar
  24. Hola , hay un video de infospyware que dice como instalar multiples sistemas y siempre hay que instalar Linux de ultimo como por norma, por el tema del Grub , si instalan windows despues siempre se les va a corromper el arranque.
    Si tienen instalados windows un Mc y un Linux , el Linux siempre deve ser el ùltimo en ser instalado.

    ResponderEliminar