# [SOLVED] grub chainloader problem

## sicus

hallo,

bisher kam ich mit grub gut klar, jetzt hab ich allerdings ein mir unverständliches problem. habe meine platten etwas umkonfiguriert und auf einer windows neu installiert. jetzt hab ich ein kleines problem. grub will windows nichtmehr starten. erstamal meine plattenkonfiguration:

ich habe 2 platten drin von denen ich booten will, eine 400 GB platte für win und eine 750 GB für linux. beide platten sind im bios eindeutig zu identifizieren, genaue bezeichung weiß ich jetzt net, aber nennen wir sie mal

HDD400

HDD750

im MBR der HDD750 liegt grub, auf der ersten partition dieser platte liegt /boot mit kernel

auf der HDD400 liegt auf der ersten partition windows und im MBR der windows bootloader.

stelle ich nun im bios HDD750 als first boot device in der boot sequence ein startet grub und dann auch linux wenn ichs auswähle

stelle ich HDD400 als primary boot device ein startet windows. die bootloader sollten also beide passen

grub geht bei der plattenreihenfolge anscheinend nach der reihenfolge der boot sequenz. wenn ich im grub 'e' drücke und 'rootnoverify (hd0' [tab] mache listet er meine linux partitionen auf, mache ich 'rootnoverify (hd1' [tab] kommen meine win partitionen, also dachte ich 

```

rootnoverify (hd1)

chainloader +1

```

müsste passen um den win bootloader anzuschubsen. aber fehlanzeige, boote ich das, passiert nix, steht dann 'GRUB' aufm bildschirm und das wars.

mache ich

```

rootnoverify (hd1,0)

makeactive

chainloader +1

```

bekomme ich nur ein pipsen ausm pc speaker. auf (hd1,0) liegt windows selbst.

Da der win bootloader in der HDD400 offensichtlich funktioniert, verstehe ich nicht, wieso der mit chainloader net tut.

immer die boot sequenz im bios zu ändern um das andere OS zu starten ist blöde. hoffe mir kann jemand helfen.

grub version hab ich 0.97-r6

----------

## Wolle

Wenn ich das richtig sehe, ist dein Problem die Reihenfolge der Platten. Wenn du im BIOS die HDD400 auswählst, hast du:

HDD400 = hd0 (erste Platte)

HDD750 = hd1 (zweite Platte)

Wählst du im BIOS die HDD750 aus, ist es:

HDD750  = hd0 (erste Platte)

HDD400  = hd1 (zweite Platte)

Du willst in deiner jetzigen Konfiguration also Grub von der HDD750 als hd0 booten und dem Windows dann anbieten, es möge aus seiner Sicht von der zweiten Platte starten. Vielleicht geht das, wenn du in der boot.ini (in der Boot-Partition deiner HDD400 ) die "Laufwerksnummer" um eins erhöhst. Bei der Qualitätssoftware vom Weltmarktführer bin ich da aber eher skeptisch.

Ich würde das Problem so lösen:

Grub und /boot auf die HDD400 (Grub kann in den MBR der HDD400, geht aber auch woanders)

Dann hast du zwar mit Linux das selbe Problem mit der Plattenreihenfolge; aber das beschränkt sich (im wesentlichen) auf die /etc/fstab und ist relativ leicht anzupassen. Evtl. kann man auch Linux davon überzeugen, die Device-Namen beizubehalten (udev?) - aber damit kenne ich mich nicht aus.

----------

## Martux

Hallo!

Ich habe ein ganz ähnliches setup wie Du. Folgender grub.conf Eintrag funktioniert bei mir, wenn ich die Linux-Platte als Primary Master angeschlossen und Grub darauf installiert habe:

```

title Windows XP

rootnoverify (hd1,0)

map (hd0,0) (hd1,0)

map (hd1,0) (hd0,0)

makeactive

chainloader +1

```

Hintergrund war glaube ich, daß Windows unbedingt auf der Primary Master Platte installiert werden möchte. Also mußt du das Windows halt "vorlügen", entweder indem Du die Bootreihenfolge im Bios änderst oder halt durch den "map" Befehl.

Map hat auch den Vorteil, wenn Du Windows neuinstallierst, Grub auf der anderen Platte nicht angetastet wird.   :Laughing: 

Hth, Marcus

----------

## sicus

ok, das mit map versuch ich mal.

@wolle:

linux selber (also udev) ändert die plattennamen nicht, egal wie ich im bios die plattenreihenfolge angegeben habe. HDD750 = sda HDD400 = sdb. ist ein grub spezifisches problem.

hab auch schon versucht grub in MBR von HDD400 zu schieben, hab dem dann angegeben daß die config auf HDD750 liegt, das macht der aber net, anscheinend muss /boot auf der selben physikalischen platte liegen wie der grub selber. hatte folgendes versucht

```

# grub

> root (hd1,0)

> setup (hd0)

> quit

```

das wäre die korekkte zuteilung der platten gewesen wenn HDD400 als primär boot und HDD750 als second boot eingetragen wäre. resultat war, grub meldete einen 

GRUB: Hard disk error

auf HDD400 hab ich leider keinen platz für /boot (also keinen unpartitionierten bereich). wäre zwar änderbar, aber halt aufwendig.

----------

## sicus

@Martux:

habs grad ausprobiert, mit map hats funktioniert. hatte zwar selber schon die idee mit map, hatte allerdings falsch angewendet

```

map (hd0) (hd1)

map (hd1) (hd0)

rootnoverify (hd0)

chainloader +1

```

so hats nicht geklappt, habe anscheinend zu früh aufgegeben mit map, deine variante geht, thx

----------

