mit grub2 funzt meine Dualbootkonfiguration mit Windows XP auf separater Festplatte nicht mehr. Mit grub legacy funktioniert es jedoch.
Hier gibt es dazu auch schon einen Thread: http://forums.debian.net/viewtopic.php? ... 79&start=0
bin hier aktuell wirklich am Verzweifeln! Folgende Situation im Detail:
Ich habe ein System mit 4 SATA Platten /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd und einer IDE Platte (/dev/hda).
Der Linux MBR liegt auf /dev/sdd, /boot liegt auf /dev/sdd1, der Rest des Systems (Debian/Squeeze) auf einem RAID5/Crypt/LVM Verbund, der sich über /dev/sda2, /dev/sdb2, /dev/sdc2, /dev/sdd2 erstreckt.
Windows XP befindet sich auf /dev/hda1, der Windows MBR auf /dev/hda
Im BIOS ist die Bootreihenfolge /dev/sdd, /dev/sda, /dev/sdb, /dev/sdc, /dev/hda. Beim Booten wird also der MBR auf /dev/sdd angesprungen und dann grub mit der Konfiguration von /boot auf /dev/sdd1 gestartet. Im grub Menü kann Man dann auch einen Eintrag für Windows anwählen, der per Chainloader das Windows von /dev/hda1 startet.
Dazu habe ich in der menu.lst von Grub Legacy folgenden Eintrag:
Code: Alles auswählen
title Windows XP
rootnoverify (hd1,0)
map (hd1) (hd0)
map (hd0) (hd1)
savedefault
chainloader +1
- hd0 = /dev/sdd (wird zur ersten Platte, weil von Ihr gebootet wird)
hd1 = /dev/hda (wird zur zweiten Platte, weil danach zuerst die IDE Platten eingefügt werden)
hd2 = /dev/sda
hd3 = /dev/sdb
hd4 = /dev/sdc
Bei grub2, den ich aus grub legacy heraus starten kann, wurde durch os-prober für Windows auch automatisch ein entsprechender Eintrag angelegt:
Code: Alles auswählen
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows NT/2000/XP (loader) (on /dev/hda1)" {
insmod ntfs
set root=(hd0,1)
search --no-floppy --fs-uuid --set 6240bc8e40bc6b05
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
Nachdem ich mir das angesehen hatte und verstanden hatte, das grub2 die Platten weiterhin von 0 zählt und die Partitionen aber von 1, und ich in der grub2 konsole mit search mal nachgeschaut habe und gesehen habe, dass die Windowspartition /dev/hda1 für grub2 jetzt unter (hd1,1) liegt, habe ich noch einen entsprechenden manuellen Eintrag ergänzt:
Code: Alles auswählen
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows NT/2000/XP (loader) (on /dev/hda1)" {
insmod ntfs
set root=(hd0,1)
search --no-floppy --fs-uuid --set 6240bc8e40bc6b05
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Fenster" {
insmod ntfs
set root=(hd1,1)
search --no-floppy --fs-uuid --set 6240bc8e40bc6b05
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/40_custom ###
Ich habe dann irgendwo gelesen, dass ich bei Windows in der boot.ini etwas ändern muss, damit Windows mitkriegt, dass es von der zweiten Platte bootet. Meine boot.ini hat folgendermaßen ausgesehen:
Code: Alles auswählen
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
Code: Alles auswählen
[boot loader]
timeout=60
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="0 Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="1 Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="2 Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(3)partition(1)\WINDOWS="3 Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(4)partition(1)\WINDOWS="4 Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(5)partition(1)\WINDOWS="5 Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
Wenn ich jetzt mit grub2 Windows boote kriege ich entsprechend obiger Einträge in der boot.ini folgende Fehlermeldungen:
- rdisk(0): <Windows root>\system32\ntoskrnl.exe - Datei nicht vorhanden oder korrupt
rdisk(1) bis rdisk(4): <Windows root>\system32\hal.dll - Datei nicht vorhanden oder korrupt
rdisk(5): Die Festplatte wurde nicht gefunden (Klar, die gibts ja auch nicht)
Mit grub legacy kann ich Windows weiterhin ohne Probleme starten, wenn ich den ersten Eintrag rdisk(0) im Windows Bootmenü auswähle. Für die übrigen Einträge gibt es die gleiche Fehlermeldung wie bei grub2.
Jetzt weiß ich eigentlich garnicht mehr weiter. Wer kann mir hier einen Tipp geben, wie ich weiter verfahren kann?