====== Workaround beim Bootproblem bei doppelter Win-Installation ====== Als ich versucht habe mit GRUB-2 mehrere Betriebssysteme, darunter 2x fast gleiche WinXP, in einem Bootmenü unterzubringen, bin ich auf das Problem gestoßen - GRUB wollte immer (unabhängig von der Menüauswahl) nur das eine WinXP von den beiden starten. Mit Linuxen hat alles einwandfrei funktioniert. Eine kurze Analyse des Files **grub.cfg** (unter **/boot/grub**) hat ergeben, dass GRUB keine eindeutige Unterscheidung im Bootmenü zwischen mehreren Win-Installationen macht. (Es ist, meiner Meinung nach, ein Bug im GRUB-2.) Der relevante Abschnitt hat wie folgt ausgesehen: ### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Professional (on /dev/sda2)" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd0,msdos2)' search --no-floppy --fs-uuid --set=root 5E9862BA98628FF7 drivemap -s (hd0) ${root} chainloader +1 } menuentry "Microsoft Windows XP Professional (on /dev/sda3)" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd0,msdos3)' search --no-floppy --fs-uuid --set=root 5E9862BA98628FF7 drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/30_os-prober ### Da die beiden WinXP in den NTFS-Partitionen installiert wurden, haben sie keine UUID, dafür aber die VolumeLabels. Die Partition des 1. WinXP (hda2) hatte das Label **wxp_sys**, die des 2. (hda3) - das Label **surfer_w**. Um das Problem zu lösen, habe ich die Zeile: search --no-floppy --fs-uuid --set=root 5E9862BA98628FF7 ...in beiden Abschnitten wie folgt geändert: Im oberen: search --no-floppy --set=root --label wxp_sys --hint hd0,msdos2 Im unteren: search --no-floppy --set=root --label surfer_w --hint hd0,msdos3 Damit die "zu startende" Windows-Partition auch als aktiv markiert wird (es ist eigentlich nicht zwingend notwendig), habe ich vor den o.g. Zeilen zusätzlich das GRUB-Kommando **parttool (hd0,2) boot+** (oben) bzw. **parttool (hd0,3) boot+** (unten) hinzugefügt. Zum Schluss sehen die beiden Abschnitte wie folgt aus: ### BEGIN /etc/grub.d/30_os-prober ### menuentry "MS Windows XP Pro - mOffice (on /dev/sda2)" --class windows --class os { insmod part_msdos insmod ntfs parttool (hd0,2) hidden- parttool (hd0,2) boot+ set root='(hd0,msdos2)' # search --no-floppy --fs-uuid --set=root 5E9862BA98628FF7 search --no-floppy --set=root --label wxp_sys --hint hd0,msdos2 drivemap -s (hd0) ${root} chainloader +1 } menuentry "MS Windows XP Pro - mSurfer (on /dev/sda3)" --class windows --class os { insmod part_msdos insmod ntfs parttool (hd0,2) hidden+ parttool (hd0,3) boot+ set root='(hd0,msdos3)' # search --no-floppy --fs-uuid --set=root 5E9862BA98628FF7 search --no-floppy --set=root --label surfer_w --hint hd0,msdos3 drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/30_os-prober ### Problem gelöst! ---- Stand: 02.08.2013 EOF