PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GRUB soll sich an System anpassen



cPu
17.05.06, 23:16
Hallo!

Ich habe ein Notebook, bei dem ich das CD-ROM-Laufwerk mithilfe eines speziellen Adapters durch eine Festplatte ersetzen kann. Somit hätte ich zwei Festplatten im System (jedoch kein internes CD-ROM-Laufwerk mehr).

Ich möchte nun auf der Hauptfestplatte (hda) Windows benutzen und auf der austauschbaren Festplatte (hdb) Linux installieren.

Mein GRUB sollte danach soweit konfiguriert werden, dass er automatisch Windows lädt, wenn hdb nicht am System angesteckt ist.
Erkennt er jedoch, dass hdb am System dran hängt, soll er das typische bunte Grub-Fensterlein laden, wo ich dann auswählen kann, ob ich Windows oder Linux starten möchte.

Mich würde nun interessieren, wie ich das meinem Bootloader beibringe.
Danke, cPu

kreol
17.05.06, 23:23
Am einfachsten: Du bootest standardmässig Windows mit kurzer timeout-zeit und wählst Linux aus dem boot-menü nur aus, wenn die HD auch angeklemmt ist. Die erforderlichen Einträge in der /boot/grub/menu.lst wären:
...
default 0
timeout 2
...

title Windows
...

title Linux
...Genauer ginge es, wenn du Deine bestehende menu.lst hierher postest.


Kreol

cPu
17.05.06, 23:33
Danke für die rasche Antwort,

Ich habe zurzeit noch kein Linux installiert, ich bin vorher noch auf Informationssuche, bevor ich das realisiere.


... und wählst Linux aus dem boot-menü nur aus, wenn die HD auch angeklemmt ist

Genau das möchte ich eben vermeiden. Der Bootscreen sollte garnicht erst auftauchen, wenn ich eh nichts auswählen kann. Mit einem kleinen if sollte das doch _irgendwie_ zu lösen sein :)

Ich hab mir auch schon folgendes überlegt:
Um dem Ding zu sagen, dass da jetzt die Festplatte dranhängt und kein CD-ROM-Laufwerk, erstell ich einfach eine Datei auf hdb nach der GRUB sucht und wenn er sie findet, weiß er, dass die Platte dranhängt. Es wäre jedoch nicht *sauber* gelößt, da dann bei installiertem CD-ROM-Laufwerk dieses kurz nach dieser Datei sucht. Daher würde sich der Bootdauer unnütz nur verzögern.

cPu

kreol
18.05.06, 00:05
Und von welchem OS wird die Datei ausgeführt? Bzw. wie fängst Du die Fehlermeldung ab, wenn hdb nicht gefunden wird?

Ne, mach es wie beschrieben: Einfach, schlank, funktioniert...


Kreol

MiGo
18.05.06, 03:55
Mit einem kleinen if sollte das doch _irgendwie_ zu lösen sein
Nur dass du zu dem Zeitpunkt des Bootvorgangs mit Vorraussetzungen arbeiten musst, die fast jedes embedded-System hämisch lachen lassen :)
Grub kann viel, aber soviel afaik nicht.

towo2099
18.05.06, 07:46
Das Problem ist nur, /boot/grub müßte sich auf hda befinden, damit das funktioniert.

HEMIcuda
18.05.06, 08:40
BIOS-Bootreihenfolge auf HDD1, HDD0 setzen, fertig.

'cuda

cPu
18.05.06, 08:42
Und von welchem OS wird die Datei ausgeführt? Bzw. wie fängst Du die Fehlermeldung ab, wenn hdb nicht gefunden wird?

Diese Datei wird von keinem OS ausgeführt. Das ist eine leere Datei, damit GRUB checkt, ob die Platte dranhängt...



Das Problem ist nur, /boot/grub müßte sich auf hda befinden, damit das funktioniert.

Ja. Die Anweisung müsste bereits im MBR stehen, da /boot/grub, wenn die Platte abgesteckt ist, nicht vorhanden ist.

Die Sache ist ziemlich kompliziert und ohne einen kleinen Hack wie mir scheint auch garnicht durchführbar...

Weiß jemand, ob das mit dem MBR überhaupt durchführbar ist, da der Speicherplatz im MBR stark begrenzt ist...


Meine Idee klingt vielleicht etwas Utopisch, aber vielleicht schaffen wir es doch noch einen passenden Kompromiss zu finden :)
cPu


------------

edit: Bootreihenfolge. Manchmal sieht man den Wald vorlauter Bäume nicht... gute idee



------------