grub

Lutz Willek lutz.willek at belug.de
Mit Jul 30 09:17:46 BST 2008


Luise Kunkle schrieb:
> On Thu, 24 Jul 2008, Lutz Willek wrote:
>> Luise Kunkle schrieb:

Hallo,

>>> Ich konnte die beiden auswechseln, jetzt ist also die Platte, wo xubuntu
>>> (und wohl auch der bootloader) drauf sind 1st master, /hdb ist 1st 
>>> slave.
>>
>> Hast Du die Anschlüsse der Platten getauscht, oder in den Einstellungen
>> des Bios die Reihenfolge der Platten geändert?
> 
> Ich habe die Einstellung des BIOS geändert. Es hat dafür eine 
> spezifische Abteilung.

Das folgende zum Verständnis was da passiert, wenn Du die Platten im 
Bios tauscht und warum das heutzutage Probleme bringt.

Das Bios tauscht quasi virtuell die Anschlüsse der beiden Festplatten 
aus. Es ist also so, als wenn Du den Rechner aufschrauben würdest, die 
Platten von Master auf Slave und viaversa jumpern würdest und die 
Platten wieder einbaust.
Diese Einstellungen im Bios wurden erfunden, als es Betriebssysteme gab, 
die nur von der ersten angeschlossenen Festplatte booten konnten. Mit 
Hilfe dieser Einstellung war es möglich das Betriebssystem dann doch von 
der zweiten Platte zu starten und zu betreiben.

Diese Einstellungen sind heutzutage problematisch, da sie nur gelten, 
solange das Bios noch die Kontrolle über die angeschlossene Hardware hat.
Jedes moderne Betriebssystem greift inzwischen direkt mit speziell auf 
die jeweilige Hardware angepassten Treibern direkt auf die Hardware zu, 
dann funktioniert die "Schummelei" des Bios nicht mehr.

Nur direkt beim starten des Betriebssystems, also dann wenn 
beispielsweise grub den Betriebssystemkern lädt, sind diese 
Einstellungen gültig. Wenn das Betriebssystem und das Bios die gleiche 
Sichtweise haben ist alles ok und niemanden störts, wenn dem nicht so 
ist, dann gibt es regelmäßig Probleme. Beim Installieren des Bootloaders 
auf so einem System mit zwei im Bios vertauschten Platten passiert 
folgendes, hier einmal die Sichtweise gegenübergestellt:

  "Betriebssystem == Anwender == Grub"

Das OS sieht die wahre Belegung der Platten, es greift ja direkt zu:

controller1/platte1/partition1 == /dev/hda1 == (hd0,0)
controller1/platte2/partition1 == /dev/hdb1 == (hd1,0)

Du installierst grub auf hd1 (also die zweite Platte, Grub beginnt seine 
Zählung bei 0) und startest das System neu. Beim Starten vertauscht das 
Bios Platte0 und Platte1, jedoch *nur* im real-mode. Moderne Bootloader 
bekommen dann Würganfälle, weil jetzt ist alles anders:

controller1/platte2/partition1 == /dev/hdb1 == (hd0,0)
controller1/platte1/partition1 == /dev/hda1 == (hd1,0)

Das ist durch Prinzip bedingt und lässt sich nicht ändern. Noch 
schlimmer wird es, wenn Du mehrere Controller im Rechner verbaut hast 
und das Bios auch noch die Controller unterschiedlich zum Betriebssystem 
durchnummeriert. Beispielsweise bei Raidcontrollern, SCSI-oder SATA- 
Controllern ist das manchmal der Fall. Das trifft für Dich zwar jetzt 
nicht zu, ich wollte es nur der Vollständigkeit wegen erwähnen.

Abhilfe aus dem Chaos schafft die Datei /boot/grub/device.map, die dem 
laufendem System sagt, wie das Bios die Reihenfolge der eingebauten 
Platten und controller sieht. Du trägst in diese Datei also die 
Sichtweise "vor dem starten des Systems" ein.

Bei der ersten automatischen Erstellung der Datei wird wirklich nur 
geraten, was das Bios für eine Sichtweise haben könnte, nicht mehr. Im 
Normalfall steht dann in etwa so was drin:
/dev/hda (hd0)
/dev/hdb (hd1)

Wenn das Bios die Platten tauscht, dann wird falsch geraten. Die Datei 
wäre also anzupassen:
/dev/hdb (hd0)
/dev/hda (hd1)

Nach dem Laden des Betriebssystemkerns ist der ganze Zauber wieder 
vorbei, es gilt immer die wahre Schnittstelle der Festplatten. Dennoch 
ist dieser Vorgang sehr verwirrend, wenn man nicht weiß wo die Ursachen 
liegen dann sucht man sich wirklich tot.

So viel erst einmal als Hintergrundinformation für Dich und alle 
interessierten Mitleser.

> ...[viel Konfiguration und Tests mit Grub]...
Danke dafür, das hat geholfen zu verstehen. Auf Deine konkreten Probleme 
antworte ich heute Abend, jetzt muss ich erst einmal Geld verdienen gehen.


> Grüße
> 
> Luise


-- 
Freundliche Grüße / Best Regards

         Lutz Willek

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~        Have you tried turning it off and on again?             ~
~ Bitte denken Sie an die Umwelt bevor Sie diese Mail ausdrucken ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~