Bonjour à tous

J'aimerai pouvoir démarrer mon winxp à partir de grub.
Je n'y arrive pas .

Voici le contexte.

[root@perso ~]# fdisk -l

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 12761 102398310 8e Linux LVM

Disk /dev/sdb: 122.9 GB, 122942324736 bytes
255 heads, 63 sectors/track, 14946 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 5099 40957686 7 HPFS/NTFS
/dev/sdb2 5100 14946 79096027+ f W95 Ext'd (LBA)
/dev/sdb5 5100 14946 79095996 7 HPFS/NTFS

Disk /dev/sdc: 122.9 GB, 122942324736 bytes
255 heads, 63 sectors/track, 14946 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 14945 120045681 7 HPFS/NTFS
/dev/sdc2 14946 14946 8032+ f W95 Ext'd (LBA)


[root@perso ~]# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VGsystem/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.20-1.2948.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.20-1.2948.fc6 ro root=/dev/VGsystem/LogVol00 rhgb quiet
initrd /initrd-2.6.20-1.2948.fc6.img
title Fedora Core (2.6.20-1.2944.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.20-1.2944.fc6 ro root=/dev/VGsystem/LogVol00 rhgb quiet
initrd /initrd-2.6.20-1.2944.fc6.img
title winxp
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader +1


[root@perso ~]# cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
[root@perso ~]#

Ma fedora est sur /dev/sda
Mon xp est sur /dev/sdb.

Aujourd'hui, pour booter sur l'un ou l'autre des OS, je modifie l'ordre de boot dans le bios.
Sur internet, j'ai lu que le mapping des disques pour windows pouvait ne pas marcher si on utilisait
un driver spécifique. ( je pense que c'est mon cas, car j'ai du modifier mon cd XP et integrer les drivers sata promise ).

J'ai essaye dans l'autre sens, c'est à dire de démarrer la fedora à partir du boot.ini de windows.
pour cela, j'ai récupère le secteur de boot.
dd if=/dev/sda of=/tmp/bootsect.lnx bs=512 count=1.
quand je demarre à partir d'xp j'ai une erreur grub 22.
Je pense que c'est normal (modif du bios, donc les disques ne sont plus dans le même ordre).

Voila, si quelqu'un à une idée, je suis preneur.

Merci
Essayes tout simplement en mettant dans /boot/grub/menu.lst :
default=2
à la place de :
default=0
^_^

PS :
default=0 veut dire que tu démarres sur Fedora Core (2.6.20-1.2948.fc6)
default=1 correspond à Fedora Core (2.6.20-1.2944.fc6)
default=2 à winxp
Bonjour,

Merci pour ta réponse.
Le pb n'est pas l'os par défaut.
Au boot je prends la main et je choisis l'os.
Le pb est que winxp ne boot pas (ntldr manquant)

A+
Salut, si j'ai bien suivi, ton windows est installé sur sdb1.

Les deux lignes de map ne doivent pas être avant le rootnoverify ???

Sinon, est ce que tu as essayé sans le mapping des disques ?
title winxp
        rootnoverify (hd1,0)
        makeactive
        chainloader +1
Merci pour ta réponse.

Oui, j'ai essayé sans les map. cela ne marche pas mieux, mais je ne me souviens plus du message.
J'essayerai tout à l'heure de mettre les lignes map avant rootnoverify.

A+
hum...
C'est quoi le message win ? tu as parle de NTLDR manquant ?
Si c'est ca, ce n'est pas un probleme de grub mais de win qui a perdu un fichier...

Autre petit conseil. Les manips :
dd if=/dev/sda of=/tmp/bootsect.lnx bs=512 count=1.
sont a eviter car il y a pas mieux pour flinguer tout le contenu de son DD en cas de fausses manipulations.

++
La réponse est apportée dans http://doc.fedora-fr.org/Dual_boot_Windows_XP_-_Fedora#Mettre_en_place_le_dual_boot
title windows
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd1,0)
        makeactive
        chainloader +1
Windows ne peut se lancer s'il ne réside pas sur la première partition du premier disque actif. La clause map permet de "représenter", pour NTLDR (le lanceur de Windows) /dev/sda, le disque sur lequel Windows réside et qui est regardée comme hd1 par Grub, comme hd0 soit le premier disque actif.

La syntaxe initiale n'était pas correcte car la clause invitant NTLDR à tenir comme root (hd1,0) était positionnée avant l'artifice supporté par map.
je viens d'essayer et même punition.

title winxp
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1

je ne sais pas si il y a un solution.

Mon windows marche très bien lorsque je modifie l'ordre de boot dans le bios.
En gros, mes deux disques ont chacun un MBR. J'iai lu que le mapping ne fonctionnait pas toujours pour windows
si un driver spécifique était utilisé. Je pense que c'est mon cas, puisque je dois rajouter un driver pour me permettre de
faire l'installation d'XP.
Pour être sur de na pas modifier mon windows, lors de l'installation de la fedora, j'ai deconnecté mes deux disques "windows"

Pour le moment, je continuerai à modifier le bios.
Merci à tous
A+
Remplace (hd1,0) par (hd0,0).
je viens de faire l'essai. toujours pareil, cela ne fonctionne pas

error 13 invalid or unsupported executable format

press any key to continue........

A+
Bon, procédons... manuellement.

Quand Grub se lance, appuie sur une touche puis sur c (de mémoire) pour lancer le mode commande. Ce mode consiste en un mini-shell ouvert par Grub.

Tu vas passer les commandes en utilisant l'auto complétion: en appuyant sur la touche [tab] tu forces Grub à afficher les valeurs possibles (celles qu'il reconnaît) et tu vas ainsi explorer pratiquement les possibilités ouvertes. Il suffit de saisir le premier caractère de l'une des chaînes proposées pour réduire le choix.... et ainsi de suite.

Exemple:
grub> root (hd[tab]
Possible disks are: hd0 hd1
grub> root (dh0, [tab]
....
En l'état, Grub est bien installé mais il n'identifie correctement pas la partition active supportant NTLDR, le lanceur de Windows. Cette partition ne semble pas cachée puisqu'une inversion de l'ordre de traitement dans le BIOS autorise son utilisation (mais on vérifiera cependant ...). L'hypothèse est simple: grub n'identifie pas les partitions comme on le suppose (hd0 devrait correspondre à sda puisque Linux s'amorce mais le reste n'est pas obligatoirement dans l'ordre prévu ...).
grub>  rootnoverify (hd[tab] -> pour seulement identifier les partitions reconnues
choisis l'indice pour le disque supposé supporter Windows (devrait être 1 ou 2) et complète
 grub> rootnoverify (hd1, [tab]->
repère alors une partition  Partition num: X,  Filesystem type unknown, partition type 0x7
Ne valide pas les commandes et essaie pour 1 et 2
Cette démarche permet d'identifier les partitions reconnues de Grub comme étant des partitions Ntfs. Tu vas alors tenter de lancer NTLDR à partir des éléments acquis par tâtonnement.
grub> unhide (hd1) -> si hd1 est cachée, on la révèle; éventuellement, tester hd2
grub > map (hd1) (hd0) -> éventuellement, tester hd2
grub> map (hd0) (hd1) -> idem
grub> rootnoverify (hd1,0) -> ou hd2
grub> makeactive
grub> chainloader +1
grub> boot
Tu pourras répéter plusieurs fois cette enchaînement de commandes jusqu'à trouver la combinaison qui permet d'amorcer NTLDR. Tu la recopies alors dans /boot/grub/grub.conf (et non menu.lst, c'est un lien vers grub.conf).
Merci pour ta réponse, je vais faire les essais demandés.

En ce qui concerne grub, il identifie bien les map.
J'ai effacé le fichier device.map et j'ai relancé la commande grub-install /dev/sda.
il m'a recree le fichier device.map comme ci-dessous

[root@perso ~]# cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
[root@perso ~]#

sinon, je confirme bien que xp fonctionne parfaitement en inversant le first disk dans le bios.
D'ailleurs, en ce moment je suis sur xp.

je te tiens au courant.
Je viens de faire les manips
ça marche nickel. je ne comprends pas trop.

Voici les traces après avoir booter la fedora.

[root@perso luc]# cat trace.txt
GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ 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 (hd
Possible disks are: hd0 hd1 hd2

grub> root (hd0,
Possible partitions are:
Partition num: 0, Filesystem type is ext2fs, partition type 0x83
Partition num: 1, Filesystem type unknown, partition type 0x8e

grub> root (hd1,
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type unknown, partition type 0x7

grub> root (hd2,0)

grub> rootnoverify (hd
Possible disks are: hd0 hd1 hd2

grub> rootnoverify (hd
Possible disks are: hd0 hd1 hd2

grub> rootnoverify (hd0,
Possible partitions are:
Partition num: 0, Filesystem type is ext2fs, partition type 0x83
Partition num: 1, Filesystem type unknown, partition type 0x8e

grub> rootnoverify (hd1,
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type unknown, partition type 0x7

grub> rootnoverify (hd2,0)

En revanche lorsque je stoppe grub et que je passe en ligne de commande avec la touche c, les résultats pour hd1 et hd2 sont inversés!!!!!!!!!
(attention pour les parenthèses, je me retrouve avec un clavier qwerty)

donc dans grub.conf, j'ai mis :

title winxp
map (hd0) (hd2)
map (hd2) (hd0)
rootnoverify (hd2,0)
makeactive
chainloader +1

et tout est OK

Merci pour toutes les infos et ta persévérance.

A+
[root@perso luc]#
Donc, en certaines circonstances, l'ordre perçu par le BIOS (sur lequel s'appuie Grub) n'est pas l'ordre des disques qui ressort de fdisk... C'était l'hypothèse.
kounak wrote:Merci pour toutes les infos et ta persévérance.
C'est ta persévérance qui t'a sorti du problème!
Puisque tu dis que je suis persévérant, cela m'a obigé à trouver le pourquoi.

tu as écris :
Donc, en certaines circonstances, l'ordre perçu par le BIOS (sur lequel s'appuie Grub) n'est pas l'ordre des disques qui ressort de fdisk... C'était l'hypothèse.
cette remarque m'a mis la puce à l'oreille et j'ai été faire un tour dans le bios.

dans l'ordre de déclaration des disques, j'avais :

first disque "sda"
second disque 'sdc"
third disque "sdb"

j'ai inversé l'ordre pour le deuxième et troisième et dans le mille xp ne bootait plus (ntldr manquant)
reboot fedora, modif grub.conf. J'ai remis hd1 à la place de hd2 et mon xp reboot normalement.

Donc A priori grub s'appuie sur l'ordre des disques pour la séquence de boot dans le bios.
Voilà j'ai une carte mère asus p4c800 deluxe et je peux choisir trois disques dans le bios)
Bien entendu, quand je passais par le bios, je ne modifiais que le premier !!!!!!!!!!

Voilà , c'est la dernière info pour ce post.

Merci
A+