Grub Bootmanager

Bootmanager

Nachdem nun Linux installiert worden ist sollte man sich mit dem aller ersten Punkt auseinander setzen was ein jedes Betriebsystem tut: booten. Bei Linux ist es sehr hilfreich einen Bootmanager zu verwenden. Wenn sie Knoppix neben einem anderen Betriebsystem auf ihren Computer betreiben ist dies ohnehin notwendig, aber auch so werden Sie spätestens nachdem Sie ihren ersten Kernel erstellt haben die Vorzüge eines Bootmanager zu schätzen wissen.

Grub ist zur Zeit der wohl ausgereifteste Bootmanager da er den Vorteil hat unabhängig vom Linux System laufen zu können. Wenn Sie Kanotix installiert haben und bereits alles gut läuft können Sie dieses Kapitel auf später verlegen wenn Sie sich daran machen einen eigenen Kernel aufzusetzen. Bei Knoppix wird per Standart lilo als Bootmanager installiert dieser jedoch ist nicht so optimal, und wird Sie später noch Nerven kosten nutzen Sie daher die Chance und setzen Grub als Bootmanager auf.

Rettung im Notfall

Sollte zu einem Zeitpunkt etwas schief laufen und sie können weder auf Linux noch auf die anderen Betriebsysteme zugreifen so ist trotzdem nicht alles verloren.

Linux können Sie mit der Startdiskette (welche Sie bei der Installation erstellt haben) laden und somit die Grub Konfiguration jederzeit immer noch korregieren.

Zudem kann man Grub sobald es einmal installiert wurde auch ohne Linux System konfigurieren.

Sollte Sie doch keinen Bootmanager haben wollen so können Sie diesen löschen indem sie z.B.: eine Windows Startdiskette (oder auch jede andere bootbare Diskette/CD welches ein Fesplattenformatierungsprogramm enthält) starten und mit fdisk /mbr (bzw. einem ähnlichem Kommando), den Bootmanager löschen.
Normalerweise sollte dann das Betriebsystem geladen werden welches sich auf der 1 Partition auf der ersten Festplatte befindet (dieses funktioniert auf jedenfall mit Windows 2000 sofern es auf C: installiert ist).

Installation von Grub

Direkt nach der Knoppix Installation starten Sie den PC neu. Nun können Sie Glück haben und das vorkonfigurierte LILO funktioniert und Sie können Linux problemlos starten, oder auch Pech und Lilo ist hat sich automatisch falsch konfiguriert so das Sie nur auf ein unerfreuliches Kernel Panic stoßen. In diesem Fall ist es praktisch das Sie ja eine Bootdiskette angelegt haben, da sich mit dieser das Linux System starten lässt. Legen Sie dazu die Diskette vor dem PC start ein und stellen Sie die Bootreihenfolge so um daß, das Diskettenlaufwerk als erstes in der Bootreihenfolge steht. Warten Sie danach einige Zeit denn booten von Diskette dauert relativ lange. In beiden Fälle egal ob Sie nun mit Lilo oder Bootdiskette gestartet haben dürfte sich Linux laden.

Melden Sie sich an öffnen Sie ein Bash Fenster und geben Sie dort ein:
su #dieses kommando lässt Sie innerhalb dieses Bash Fenster root (systemadministrator) werden

im zweiten Schritt fragt er Sie nach dem Passwort, geben Sie hier das Passwort für den root welchen Sie bei der Installation ein. Nun sollte als erstes in der Zeile root anstatt der Benuzername stehen.

Als erstes muss lilo deinstalliert werden damit es hinterher nicht zu Konflikten kommt.

apt-get remove lilo #dieses deinstalliert lilo, da es ja nun gegen grub ersetzt wird

Und anschliesend wird Grub mithilfe von apt-get installiert:
apt-get update #und warten Sie die ca. 2-5 Minuten bis er fertig ist

apt-get install grub

Über apt-get können Sie später noch mehr erfahren. Nun müssen Sie Grub konfigurieren, dazu müssen Sie Ihre Festplattenbezeichnung herausfinden. Die möglichen sind: hda, hdb, hdc oder hdd. Am einfachsten ist es indem sie auf dem Desktop bei den Festplattensymbolen (links mitte) nachschauen dort dürfte in etwa folgendes stehen: Hard Disk Partition [hda5]. Und genau in den eckigen Klammern steht die benötigte Information. Normalerweise dürfte dieses hda sein jedoch kann dieses auch abweichen, z.B. haben Sata Platten meist die Bezeichnung hdc. Die Nummer hinter dem hda ist später wichtig.
Nun geben Sie also in die Bash ein:


grub-install /dev/hda #bzw. die hd.. bezeichnug die sie eben herausgefunden haben
grub-update

Das letzte Kommando erstellt eine automatische Beispiel Konfiguration, falls Sie bisher keine hatten fragt er nach:
Could not find /boot/grub/menu.lst file. Would you like one generated for you? (y/N)
dieses beantworten Sie selbstverständlich mit y.

So nun haben sie Grub bereits konfiguriert. Da dieses jedoch alles automatisch passiert ist sollen Sie lieber noch einmal selbst die Konfigurationsdatei anschauen: Öffnen Sie dazu einen Editor z.B.: Kedit (wie schon im letzten Abschnitt beschrieben) und laden Sie dort die Beispielkonfiguration: /boot/grub/menu.lst

Als erstes sollten Sie folgende Zeilen am Anfang der Datei hinzufügen (bei Kanotix schon vorhanden): setkey y z
setkey z y
setkey Y Z
setkey Z Y
setkey equal parenright
setkey parenright parenleft
setkey parenleft asterisk
setkey doublequote at
setkey plus bracketright
setkey minus slash
setkey slash ampersand
setkey ampersand percent
setkey percent caret
setkey underscore question
setkey question underscore
setkey semicolon less
setkey less numbersign
setkey numbersign backslash
setkey colon greater
setkey greater bar
setkey asterisk braceright
Als nächstes ist es praktisch das er sich merkt welches System zuletzt gebootet wurde und beim nächsten Start dieses als default system nach ablauf der Zeit bootet. Dazu verändern oder fügen das Kommando
default saved #meist steht hier default 0 dies legt den default Eintrag fest anstatt variabel

In der Zeile mit timeout legen Sie die Anzahl der Sekunden fest bis das default system geladen wird sinnvoll ist etwas zwischen 5 - 10 Sekunden.

Am ende der Datei steht das wichtigste die Einträge der zu ladenden Betriebssystem. Hier können Sie festlegen welche Betriebsystem mit welchen Optionen aufgerufen werden sollen. Als Beispiel dient hier ein Knoppixkernel:

title Knoppix
root (hd0,6)
kernel /boot/vmlinuz-2.4.26 root=/dev/hda7 hda=scsi ramdisk=100000 vga=791
initrd /boot/initrd.img-2.4.26
savedefault
boot

Titel: Gibt wieder den Titel an der beim Grub Menü erscheinen soll.

root (hd0,8): Hier wird wieder angegeben wo die Rootpartition liegt. In diesem Fall also auf der ersten Festplatte auf der 7 Partition. Hier müssen sie natürlich die passenden Partition angeben. Herausfinden können Sie dieses indem Sie nun nocheinmal auf dem Desktop zurückkehren und dort nun die Zahl ablesen welche hinter dem hda steht (kontrollieren Sie bitte ob es sich auch wirklich um die Linuxpartition handelt, klicken Sie auf das Symbol und es müsste das file :/ Verzeichniss anzeigen, in der Regel das unterste Festplattensymbol).
Bedenken sie das sie die Zahl minus eins rechnen müssen steht dort also wie im Bespiel [hda7] so geben sie ein (hd0,6). Merken Sie sich die Bezeichnung ihres Wurzelsystems in diesem Beispiel hda7.

kernel ... : Hier wird nun der Kernel und seine Optionen angegeben:

hinter kernel steht der Pfad welcher zum tasächlichen Kernel führt, in diesem Fall ist es der Knoppix-2.4.26 Kernel, Kernel sollten immer im Verzeichniss /boot/ sein.

root definiert ihr Wurzelverzeichniss in diesem Beispiel also hda7

hda=scsi gibt an das die festplatte (welche eigentlich eine ide Festplatte ist) als pseudo scsi Platte ausgegeben werden soll. Dies ist bis Kernel 2.6 ein notwendige Option.

ramdisk nimmt einen Teil des Rams und gibt ihn als Fesplattenauslagerungsspeicher aus. Falls Sie einen Kernel welcher eine initrd benutzt müssen sie diese Option angeben! Für den Knoppix Kernel mindestens 20000!

Als letztes geht es um den Framebuffer sollte nach dem booten der Bildschirm einfach schwarz bleiben dann ändern Sie die Angabe von vga=791 auf vga=normal.

initrd : Falls Sie den Knoppix Kernel oder einen Kernel mit initrd einsetzen so müssen Sie hier den Pfad zu der initrd angeben, diese muss zum kernel passen!

savedefault: Bewirkt das er sich merkt das sie dieses System zuletzt geladen hat.

boot: Gibt die Anweisung das nun der Kernel gebootet werden soll. Dieses muss am Ende stehen.

Das waren die wohl häufigsten Einstellungen um einen Linux Kernel laden zu können. Wenn sie später einmal ihren eigenen Kernel erstellen so brauchen Sie ihn nur noch in das Verzeichniss /boot/ kopieren und mit einem Namen versehen die entsprechenden Einstellungen in der /boot/grub/menu.lst können Sie nun mithilfe dieser Beispielbeschreibung selbst vornehmen. Beachten sie das Sie nach jeder Änderung in dieser Datei ein update-grub durchführen!

Als zweites betrachten wir uns nun ein System welches mit Hilfe eines Chainloaders (z.B. bei Windows) geladen werden muss: title Windows_2000
root (hd0,0)
makeactive
chainloader (hd0,0)+1
savedefault

Titel :Gibt den Namen an der Später beim Grub Menü anzeigt wird an.

root (hd0,0): Dieser Eintrag gibt das root also den Ort wo der Kernel liegt an, bei Windows in der Regel C: auf der ersten Festplatte. Sollte ihr Windowssystem nicht auf der ersten Fesplatte liegen (sehr selten) so müssen Sie noch mappen wie das geht steht hier:
http://kanotix.com/info/index.php?lang=de

makeactive: Aktiviert die Partiton ist für Windows wichtig.

chainloader (hd0,0)+1: Bewirkt das der chainloader eingestezt wird dieser ist notwendig da grub Windows nicht direkt starten kann, sondern das Kommando an den windowseigenen Bootloader weitergibt. Wieder sehen Sie hier das es sich um die erste Festplatte handelt: hd0,und die 0 nach dem Komma gibt an das es sich hier um die erste Partition auf dieser Festplatte handelt, wenn sie den Windows Kernel nicht auf der ersten Partition haben sollten sondern z.B. auf D:, so geben sie hier die richtige Nummer an. Grub fägt mit dem zählen immer bei 0 an also 0 ist die erste Partition, eins ist die zweite Partition usw.. Standart ist jedoch das Windows auf auf der ersten Partition installiert ist. Die +1 muss aber auf jeden Fall dem chainloader angeben.

savedefault: Bewirkt das er sich merkt das sie dieses System zuletzt geladen hat.

Dies trifft auf alle System zu welche nicht direkt von Grub geladen werden können z.B. Windows.

Um die Änderungen die sie in der Konfigurationsdatei gemacht haben an Grub weiter zu leiten müssen Sie am Ende update-grub durchführen!
update-grub

Aus der Grub shell manuell laden

Eines der grösten Vorteile von Grub ist das es sogar ohne Linux konfiguriert werden kann. Wenn z.B. ein falscher Kernel angegeben wurde ist dies sehr praktisch. Dazu drücken Sie während Sie den Grub Bildschirm sehen die Taste: c
Hiermit gelangen Sie in die Grub Shell, falls c nichts bringt versuchen Sie es mit der Escape Taste. Von diesem Punkt aus können Sie manuell einen Kernel booten. Falls Sie nicht wissen wo sich der Kernel befindet können Sie ihn mit dem Kommando:
find /boot/kernelname

wieder finden. Er gibt hier den Ort an wo sich entsprechende Datei befindet. Um dann diesen Kernel laden zu können müssen Sie wieder wie oben im Linux Teil beschreiben die einzelnen Kommandos (bis auf savedefault) zeilenweise eingeben und jewails nach einer Zeile mit enter bestätigen.

Das wars, nun haben Sie alle nötigen Informationen um mit Grub umzugehen. Spätestens beim erstellen eines eigenen Kernels werden Sie glücklich sein bereits mit Grub umgehen zu können. Weitere Informationen zu Grub finden sie hier:

http://kanotix.com/info/index.php?lang=de

http://geodsoft.com/howto/dualboot/grub.htm