Problema con Grub

A ver. Yo tengo dos discos duros con dos particiones cada uno y tengo lo siguiente:

HD(0,0): Windows XP
HD(0,1): Datos
HD(1,0): Windows 7
HD(1,1): Datos

En la BIOS tengo por defecto que arranque IDE-0, y así me arranca el Windows XP directamente. Si alguna vez me apetece cargar Windows 7 pues entonces me voy al BIOS y cambio IDE-0 por IDE-1. Hasta ahí bien, pero ahora eso me aburre y había pensando ponerme un gestor de arranque chulo, como Grub. Leí que podía hacerse sin tener Linux con WinGrub. Así que me lo instalé e instalé Grub en la primera partición del primer disco duro. Ahora al arrancar me aparecía el menú del NTLDR y me preguntaba si quería cargar Windows XP o Grub... Y bueno, he configurado Grub de la siguiente manera:

timeout 10
splashimage (hd0,0)/Grub/redhat-8.xpm.gz
color light-green/black light-blue/light-gray

title Windows XP Professional
rootnoverify (hd0,0)
makeactive
chainloader +1

title Windows 7 Ultimate
root (hd1,0)
chainloader +1


El problema es que si desde Grub selecciono Windows XP, vuelvo al menú del NTLDR para seleccionar entre arrancar Windows XP y Grub... Y yo lo que quiero es que nada más arrancar el ordenador me aparezca Grub y desde él cargar cualquiera de mis dos Windows. Pero para hacerlo, ¿tendría que tener dos arranques en la primera partición del primer disco duro? ¿Qué me recomendáis para lograr esto? Ayuda. He estado buscando a ver si sustituyendo "chainloader +1" por "chainloader y algún archivo" arrancaba Windows XP. He intentado "chainloader boot.ini", "chainloader ntldr", "chainloader NTDETECT.COM". Y nada, que no quiere arrancar. En estos últimos casos me decía: Invalid or unsupported executable format. También se me había pasado por la cabeza la idea de poner Grub en una de las dos particiones de datos. Pero claro, desde el BIOS, creo que no puedo decir desde que partición arrancar, sólo desde qué unidad.
Te explico.

Todo disco duro tiene un MBR (Master Boot Record) asi como cada particion primaria o logica tiene su propio PBR.

De manera que tu tienes un MBR en el disco duro HDA y otro MBR en el disco duro HDB.
Y tienes un PBR en cada particion, hasta aqui todo suena a chino y vamos bien tranquilo.

Cuando en la bios seleccionas HD0/HDA utilizas su MBR y cuando seleccionas HD1/HDB utilizas el MBR del otro disco duro.

Por desgracia en el disco duro 1 (HDA) Tienes el NTLDR de WIN XP y en disco 2 (HDB) tienes el NTLDR de windows 7.

Lo que tienes que hacer es fijar la bios para que arranque siempre el mismo MBR por ejemplo el del HDA/HD0 (disco duro 1) y en este machacaremos el NTDLR he instalaremos GRUB y desde grub (configurado posteriormente) arrancaremos todos los sitemas operativos y ya nunca deberas cambiar en la bios el disco duro de arranque ya que si lo haces el otro disco duro en su MBR tendra NTLDR de Win 7.


¿Como instalar Grub Sin linux? Pues sigue este tuto que acabo de hacer ;)
Paso 1:
Insertamos un livecd como ubuntu o debian y lo arrancamos.

Paso 2:
Abrimos GParted, El particionador libre parecido a partition magic y similares. Es muy facil de usar y eficiente.
Solo tienes que crear una pequeña particion en el disco duro 1 (50 o 100Mb).

Filesystem (Tipo de particion): Ext2
MountPoint (Punto de montaje): /boot
Flags: Boot[/spoiler]


Una vez hecho cerramos GParted.

Paso 3:
Abrimos una terminal (Bash) y creamos un directorio para montar nuestra partición con Linux:
~# mkdir /grub


Paso 4:
Montamos la particion en el directorio creado:
~# mount -t ext2 particion_grub /grub


Paso 5:
Cambiamos el origien de root:
~# chroot /grub


Paso 6:
Instalamos Grub en el MBR del primer disco duro:
~# grub-install /dev/hda

En caso de serial ata o scasi seria sda envez de hda.

Paso 7:
Verificamos que todo está bien revisando las entradas que se han incluído en /boot/grub/menu.lst y si están todos nuestros sistemas (que será lo más normal) ya podemos reiniciar nuestro sistema, retirar el LiveCD y disfrutar de nuestro gestor de arranque :)
Gracias por el interés. Todas mis particiones son NTFS. He estado mirando la posibilidad de hacerlo con Super Grub Disk. El problema es que parece que sólo sirve para REPARAR grub, no para instalarlo... Pero tampoco lo tengo muy claro. Ahora estoy trasteando con Wingrub que ofrece la opción de instalar Grub como MBR, pero no me deja hacerlo. Tengo que averiguar porqué no.
David_VTE escribió:Gracias por el interés. Todas mis particiones son NTFS. He estado mirando la posibilidad de hacerlo con Super Grub Disk. El problema es que parece que sólo sirve para REPARAR grub, no para instalarlo... Pero tampoco lo tengo muy claro. Ahora estoy trasteando con Wingrub que ofrece la opción de instalar Grub como MBR, pero no me deja hacerlo. Tengo que averiguar porqué no.


Tienes un tutorial en el post anterior, que esque me ha costado un rato escribirlo jeje...

Por cierto GParted es Grafico y se llama (en ubuntu) Gestor de Particiones esta en la 3 pestaña de las de arriba creo recordar.
Imagen
La unica pega de Gparted es que no crear particiones NTFS pero las puedes hacer fat32 y en windows convertirlas o reformatearlas (En caso de necesitarlo).
Si crea particiones ntfs. Pero no las gestiona muy bien.
No me lo leo entero, pero te dejo 2 entradas que tengo en mi pendrive multibootable:

title Windows NT/2K/XP (Buscar y cargar NTLDR)
  find --set-root /ntldr
  chainloader /ntldr

title Windows VISTA/W7 (Buscar y cargar BOOTMGR )
  fallback 1
  find --set-root /bootmgr
  chainloader /bootmgr


Nota, Wingrub es delicado, tocar el MBR es delicado... toca cosas peligrosas... EJECUTALO CON DERECHOS DE ADMINISTRADOR, sino no te dejara meterle mano.
A las malas, cojes el boot.ini y le dices que arranque el archivo grldr.exe con retardo 0 una vez veas que funcione.
5 respuestas