ich habe auf meiner zweiten Platte (hdb) drei Partitionen für LINUX/UNIX
vorgesehen: auf hdb1 liegt eine SUSE LINUX 8.1, auf hdb2 liegt UnitedLINUX,
und auf hdb3 liegt FreeBSD - hda hat ein von hda1 startendes WindowsXP.
Ich habe zuerst die SUSE installiert, danach UnitedLINUX - bei beiden bin
ich auf YAST2 als Installationstool leider angewiesen, und bei beiden kann
ich während der "Erstinstallation" nicht angeben, welchen Bootloader ich
haben möchte und wo er hin soll (im laufenden System kann ich einiges
korrigieren). Die Folge: ich habe zwar wie gewünscht GRUB im MBR, aber weil
ich zuerst die SUSE und danach UnitedLINUX installiert habe, liest GRUB die
/boot/grub/menu.lst von hdb2, obwohl er eigentlich die Menüliste von hdb1
auslesen soll
Ich habe fleißig studiert, was ich mit "man grub" bzw. "info grub" angezeigt
bekomme und auch bissel umhergegoogled, finde aber keine brauchbare
Erklärung dafür, wie ich meinem GRUB nun beibringen kann, daß er die
Menüliste von hdb1 bzw (hd1,0) lesen soll
Ich habe zum Beispiel die /dev/hdb2/boot/grub/menu.lst, die er unbedingt
auslesen möchte, mal schnell umbenannt - Ergebnis: beim reboot des
Rechners lande ich an einem "grub-prompt". Wäre an sich ganz prima, wenn
ich an diesem "grub-prompt" wüßte, was ich da einzugeben habe, um von hdb1
(SUSE) oder hdb2 (UnitedLINUX) oder hdb3 (FreeBSD) oder eben von hda1
(WinXP) aus mein jeweiliges System zu starten.
GRUB soll unbedingt die menulist von hdb1 auslesen, weil hdb2 eine
"Experimentierpartition" ist, auf der ich immer mal zum Kennenlernen
irgendwas installiere oder wieder rauswerfe. Daß es dort grade mal eine
/boot/grub/menu.lst gibt, ist eher ein Zufall
Hat jemand nen Hinweis, wie ich GRUB beibringe, welche Menüliste er lesen
soll?
Christoph S.
Kurz und schmerzlos: SuSE booten, grub-install /dev/hda aufrufen.
--
This line intentionally left blank.
erstmal danke für die rasche Antwort. Allerdings isses das nicht. Wenn ich
das so auf der Konsole (ich bin grade auf meiner SUSE, also auf hdb1)
eingebe, kriege ich den Inhalt von /dev/hdb1/boot/grub/device.map
angezeigt. Und der ist korrekt. Das Problem ist damit in keiner Weise
gelöst.
Ich mache folgendes: ich benenne die Menüliste auf hdb2, die er unbedingt
lesen will, um in "menu.list-hdb2". Ergebnis: Wenn ich den Rechner neu
boote, kriege ich ein "GRUB-Prompt", das so aussieht:
grub>
mit dem Tabulator kann ich mir ein paar Befehle anzeigen lassen, auch
verbose ... Aber wenn ich da nun
grub> install /dev/hda
tippe, passiert gar nix. Ok, auf hda liegt ja auch mein WindowsXP, also kann
nix passieren. Aber wenn ich angebe:
grub> install /dev/hdb1
oder auch nur
grub> install /dev/hdb
kriege ich ne Fehlermeldung, daß er die angegebene Partition nicht mounten
kann. Dasselbe passiert, wenn ich sage
grub> setup [option]
Ich muß also von Diskette oder CD starten, um an eins meiner Systeme
heranzukommen, und das kann eigentlich nicht Sinn und Zweck der Übung sein.
Weiterführende Hinweise?
Gruß
Christoph S.
ein Booten von einer Diskeete mit grub ist nicht so schlimm, weil von
der Diskette nur wenige Daten (ein paar kB) gelesen werden müssen und
ziemlich schnell der Kernel auf der Festplatte angesprungen wird. Es
gibt andere Startdisketten z.B. mit syslinux, da muss deutlich mehr von
Diskette gelesen werden. Auf Manchen ist sogar der ganze Kernel der eine
Diskette ca. zu einem Drittel füllen kann. Ein Start von einer
GrubStartDiskette dauert damit nur Sekunden länger als ein Start von der
Festplatte. Gerade auch für debugging-Zwecke ist eine solche
Startdiskette hervorragend geeignet.
HTH
Bernd Mayer
--
Signaturen die sich wiederholen werden schnell langweilig
Wenn ich auf der Konsole grub-install /dev/hda eingebe, erhalte ich
folgende Ausgabe:
,-------------------------------------------------------------------
| Installation finished. No error reported.
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| This is the contents of the device map /boot/grub/device.map.
| Check if this is correct or not. If any of the lines is incorrect,
| fix it and re-run the script `grub-install'.
|
| (fd0) /dev/fd0
| (hd0) /dev/hda
| (hd1) /dev/hdb
`--------------------------------------------------------------------
Damit wurde grub im MBR der ersten Platte neu installiert. Seine
menu.lst wird er sich beim nächsten Booten von der Platte und aus dem
Verzeichnis holen, das bei der Ausführung von grub-install als
/boot/grub gemounted war.
grub-install /dev/hdb oder /dev/hdb1 machen an der Stelle keinen Sinn,
da grub dann versucht, sich in den MBR bzw. den Bootrecord der
1. Partition der *zweiten* Platte zu schreiben.
Ich habe hier ein System mit zwei Platten, einem Debian auf der
2. Platte und einem SCO auf der ersten. Installiert war grub unter
SCO, erkennbar an dem grafischen Display. Nach dem Booten von Debian
und Aufruf von grub-install /dev/hda wurde der grub von Debian
installiert (ohne grafisches Display) und auch die menu.lst der
Debian-Rootpartition benutzt.
Sieh Dir bitte die Ausgabe von grub-install /dev/hda unter Deiner SuSE
genau an und poste die Ausgabe, wenn sie sich von der obigen
unterscheidet.
hi ;-)
hast ja recht, so, wie du es sagst, sollte das alles sein. Hat jetzt auch
nach dem vierten oder fünften reboot geklappt.
Ich weiß nicht (hab ich nicht gleich mitgepostet) ob es eine Rolle spielt,
daß ich mit einer Zusatzkarte insgesamt 6 (sechs) IDE-Controller habe. Die
brauche ich, weil ich mehrere CD-ROM- und DVD-Laufwerke sowie ZIP-Laufwerk
und mehrere Platten im System habe.
*BSD hat damit kein Problem, WinXP auch nicht, und die SUSE hatte bis
Version 7.3 auch keines. Version 8.0 und 8.1 sowie UnitedLINUX mögen das
nicht, ich muß boot-Parameter übergeben, um starten zu können.
Jedenfalls hats jetzt, nach mehreren reboots, erstmal mit deinen Hinweisen
funktioniert. Die Fehler, die ich jetzt noch kriege, liegen an nicht ganz
korrekten Vorgaben in der menu.lst, und das sollte ich alleine beheben
können, solange ich sicher bin, daß GRUB jetzt tatsächlich die Liste
ausliest, an der ich herumkorrigiere.
btw: den Befehl "grub-install" (den du mir genannt hast) habe ich in der
manpage und an den anderen mir inzwischen bekannten Stellen nicht gefunden.
Zu "install" und "setup" gibts einiges, aber zu "grub-install" finde ich
nix. Wo kann ich das nachlesen?
Grüße
Christoph S.
naja, das meinte ich nicht. Du magst recht haben, und immerhin hab ich ja
meine Systeme über die Diskette ansprechen können - aber ich möchte halt,
daß ich beim Rechnerstart ein Menü angezeigt bekomme, in dem ich schnell
wählen kann, ob ich nun heute FreeBSD, SUSE oder UnitedLINUX (oder BEOS
oder ein andres *BSD) fahren möchte - _ohne_ daß ich über Diskette oder
CD gehen muß. Mich hat verunsichert, daß ich _wußte_, daß GRUB das kann
(LILO kanns ja auch), aber daß ich ihm scheinbar nicht beibringen konnte,
die korrekte Liste zu lesen.
Hat sich inzwischen erledigt. Es klappt, allerdings hab ich mehrere reboots
fahren müssen. Was jetzt noch "klemmt", hat nix mehr mit dem Bootvorgang
als solchem zu tun, sondern nur noch damit, daß ich in die menu.lst die
korrekten Einträge schreiben muß.
erfolgreiches Wochenende !
Christoph S.
Für grub-install sollte auch eine manpage existieren (man 8
grub-install). Ansonsten :
http://www.gnu.org/manual/grub/html_mono/grub.html#Invoking%20grub-install
> Weiterführende Hinweise?
In meiner alten menu.lst gefunden:
title Setup /dev/hda
lock
root (hd0,7)
setup (hd0)
title Setup /dev/hdb
lock
root (hd1,2)
setup (hd0)
Must du natürlich anpassen.