Salut, les debianeux !
J’suis en train de (enfin !
) monter mon p’tit serveur, et j’ai un p’tit casse-tête Grub (legacy en ce moment, mais le 2 me fait la même chose) à vous proposer 
L’énoncé :
Je souhaite monter un RAID 1 logiciel sur mes partoches linux (/, /home et /media/rafi), et avoir XP à côté, pas en raid, lui (par la suite, j’aurai xp et 7, boulot oblige… Mais déjà, faut que ça tourne avec xp ! ). Donc j’ai installé Deb, directement sur les partoches raid (créées auparavant avec un live cd et mdadm : ça permet de sélectionner les mdX directemnt lors de l’install
).
Un fdisk -l, pour que vous ayez l’organisation des partoches :
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000346be
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2550 20482843+ c W95 FAT32 (LBA)
/dev/sda2 2551 6478 31551660 7 HPFS/NTFS
/dev/sda3 6479 9241 22193797+ 83 Linux
/dev/sda4 9242 121601 902531700 5 Extended
/dev/sda5 9242 9502 2096451 82 Linux swap / Solaris
/dev/sda6 9503 12417 23414706 83 Linux
/dev/sda7 12418 121601 877020448+ 83 Linux
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000289af
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 6478 52034503+ 7 HPFS/NTFS
/dev/sdb3 6479 9241 22193797+ 83 Linux
/dev/sdb4 9242 121601 902531700 5 Extended
/dev/sdb5 9242 9502 2096451 82 Linux swap / Solaris
/dev/sdb6 9503 12417 23414706 83 Linux
/dev/sdb7 12418 121601 877020448+ 83 Linux
Donc les partoches sdX[3,6,7] sont en raid, sdX5 me fait 2*2Go de swap, sda1 accueille XP (déjà installé), sda2 est prévu pour être un espace de stockage/échange entre les 2 windoz et sdb1 accueillera win7. Jusqu’ici tout va bien.
Grub a été installé automatiquement sur le MBR de sda à l’install, puis manuellement sur le MBR de sdb, le but étant d’avoir un système utilisable (donc bootable) même si un disque lâche. Les 2 lisent le même fichier de conf. XP a donc été installé sur sda1, puis grub réinstallé sur sda. XP démarre bien.
Jusqu’ici, tout va bien.
La partie intéressante de mon /boot/grub/menu.lst :
## End Default Options
title Debian GNU/Linux, kernel 2.6.32-5-686
root (hd0,2)
kernel /boot/vmlinuz-2.6.32-5-686 root=/dev/md1 ro
initrd /boot/initrd.img-2.6.32-5-686
title Debian GNU/Linux, kernel 2.6.32-5-686 (single-user mode)
root (hd0,2)
kernel /boot/vmlinuz-2.6.32-5-686 root=/dev/md1 ro single
initrd /boot/initrd.img-2.6.32-5-686
END DEBIAN AUTOMAGIC KERNELS LIST
title WinXP
root (hd0,0)
makeactive
chainloader +1
Maintenant, on rentre dans le folklo 
Dans les options de boot du bios, je peux choisir l’ordre de boot des DD. Ce sont les mêmes, mais y’en a nommé 3M-Hitachi[…] et l’autre 4M-Hitachi[…]. La valeur par défaut du bios est de booter sur le 3M en premier. Lorsque c’est le cas, tout va bien, XP comme Deb démarrent bien.
PAR CONTRE, si j’inverse l’ordre de boot des disques dans le bios, donc que je boot sur le 4M (qui contient aussi GRUB, je le rappelle, et qui lit le même fichier de conf que l’autre GRUB. Fin je crois, hein), alors Deb démarre bien, mais quand je veux démarrer XP, ça me met “BOOTMGR is missing. Press Ctrl-Alt-Del to restart”.
Je me suis donc dit que, l’ordre de boot des disques ayant été inversé, il en était de même pour leur ordre de detection par Grub. Et que donc, hd0 <=> hd1. (ce qui ne generait absolument pas Debian, car présent exactement de la même façon sur les 2 DD)
J’ai donc tenté :
title WinXP
root (hd1,0)
makeactive
chainloader +1
Et là, surprise, je tombe sur… l’invite de commande de grub ! Sans message d’erreur, ni autre… Comme si Grub lançait, genre, le GRUB de l’autre disque. 
Et pour confirmer quand même un peu ma théorie d’échange d’ordre de reconnaissance, quand je remets le bios par défaut, donc boot sur le 3M (qui marche bien), mais avec non pas
root (hd0,0) (qui marche bien, donc)
mais
root (hd1,0)
je retombe à nouveau sur l’erreur BOOTMGR is missing.
Du coup… Ben là, je sèche, sérieux ! Donc je ne sais pas bien… Ptêtre qu’il faut un chainloader +2 pour que GRUB ne lance pas GRUB mais le boot de win, je sais pas…
Bref, 2 copies doubles minimum, z’avez 2 heures, toute idée originale est intéressante à prendre 
Sinon, pour ceux qui se demandent le pourquoi du comment, le but est, à partir du même GRUB, de pouvoir démarrer Deb, Xp ou 7, et ce quelque soit le disque sur lequel je boote. J’en demande beaucoup, mais c’est comme ça qu’on apprend 



