Kapitel 17. Systemadministration

Inhaltsverzeichnis
Bootloader
Systemzeit
Kernel erzeugen
Kernel Pakete

Bootloader

Vor dem Laden des Linux-Kernels wird mit dem sogenannten Bootloader ein kleines Programm geladen, welches Ihnen eine Auswahl zwischen verschiedenen installierten Betriebssystemen erlaubt. Der unter GNU/Linux gebräuchlichste Bootloader ist lilo.

lilo (i386)

Bei der Installation von Debian GNU/Linux auf Ihrem System wird generell der Bootloader lilo auf Ihrer Festplatte installiert und so eingerichtet, daß das neue Debian GNU/Linux-System gestartet wird.

lilo einrichten

Nach Installation des Basis-Systems und des Master Boot Records, gelangen Sie beim Booten des Rechners automatisch in den LILO und können plötzlich nur noch Linux starten. In diesem Abschnitt wird beschrieben, wie Sie die alten Systeme wieder aktivieren.

LILO ist ein vollständiger Boot-Manager, mit dem nicht nur Linux gebootet werden kann, sondern auch jedes andere System, das sich an die im PC vorherrschenden Konventionen hält. Konfiguriert wird dieser Boot-Manager über die Datei /etc/lilo.conf.

Wann immer Sie diese Datei ändern, müssen Sie das Programm lilo auf der Kommandozeile als Superuser aufrufen, um die Änderungen tatsächlich zu übernehmen. Es reicht nicht, die Konfigurationsdatei zu verändern!

Wichtig in diesem Zusammenhang sind die Zeilen, die mit image und other anfangen, sowie die jeweils nachfolgende Zeile. Diese Schlüsselwörter dürfen mehrfach verwendet werden. Jede so beginnende Zeile bezeichnet ein System, das von LILO gebootet werden kann. Eine solche Partition kann einen Kernel, eine Root-Partition oder ein anderes, Nicht-Linux-System (other), beinhalten. Die Reihenfolge dieser Systeme ist entscheidend, denn das erste wird automatisch gebootet, wenn die Wartezeit (siehe delay) abgelaufen ist und LILO nicht durch Drücken der Shift-Taste angehalten wurde. Nach einer Erstinstallation existiert lediglich ein einziges solches System, welches das aktuelle Debian GNU/Linux-System bootet.

Um ein zweites Linux-System zu booten (z.B. unter Verwendung eines anderen Kernels), müssen Sie die Datei /etc/lilo.conf um folgende Zeilen ergänzen:


image=/boot/vmlinuz.neu
label=neu
append='mcd=0x320,11'
read-only
Lediglich die ersten beiden Zeilen sind erforderlich. Um die Bedeutung der nachfolgenden Zeilen zu erfahren, lesen Sie bitte in der Dokumentation zu LILO.

lilo und fremde Betriebssysteme

Um ein anderes System als Linux zu booten, verwenden Sie das Schlüsselwort other wie folgt:


other=/dev/hda1
label=win

Rufen Sie danach lilo als Superuser auf, um lilo neu zu installieren. Bei einem Neustart des Systems können Sie nun am Bootprompt durch Eingeben von „win“ das Betriebssystem auf der Partition /dev/hda1 starten.

GRUB

GRUB (GRand Unified Bootloader) ist ein weiterer Bootloader, dessen Aufgabe es ist nach dem einschalten des Rechners die weitere Kontrolle an das Betriebssystem (also den Kernel) zu übergeben. Das Betriebsystem initialisiert dann über die geeigneten Treiber alle weitere Hardware im System. GRUB ist in der Lage viele verschiedene Betriebssysteme zu laden. Wird ein Betriebssystem nicht direkt von GRUB unterstützt, so kann dieses dennoch von GRUB über einen sogenannten „Chain-Bootloader“ geladen werden. Für die wichtigsten Betriebssysteme sind diese bereits im GRUB Paket enthalten.

Einer der größten Vorteile von GRUB ist, das GRUB in der Lage ist auf das Dateisystem direkt zuzugreifen. Das bedeutet das GRUB nicht wissen muß wo genau der zu ladende Kernel auf der Festplatte liegt. Sie können also jederzeit einen neuen Kernel erzeugen und müssen hinterher nicht nochmal GRUB im MBR der Festplatte installieren. Es ist ebenfalls nicht notwendig alle Kernelversionen die sich auf der Festplatte befinden in die Konfigurationsdatei einzutragen. Sie können mit GRUB jederzeit auf jeden Kernel auf Ihrer Festplatte zugreifen, wenn auch mit ein wenig Tipparbeit.

Installation

Die Installation von GRUB unter Debian ist wie üblich mit einem einfachen apt-get install grub so gut wie abgeschlossen. Sie sollten danach zunächst das Paket lilo entfernen, dies wird nicht mehr benötigt. Leider ist noch keine Installationsroutine zur kompletten automatischen Installation von GRUB verfügbar.

Sie finden alle von GRUB benötigten Dateien nach der Installation im Verzeichnis /usr/share/grub. Je nach verwendeter Hardwarearchitektur befindet sich in diesem Verzeichnis ein weiteres Verzeichnis mit dem Namen der Architektur, also Beispielsweise i386. Legen Sie nun unter /boot das Verzeichnis grub an und kopieren Sie die Dateien aus /usr/lib/grub/$(HWARCH) dorthin.

debian:~# mkdir /boot/grub
debian:~# cp /usr/lib/grub/i386/* /boot/grub/

Um die notwendigen Daten (die Stage 1 und 2 Bootloader) in den Masterboot-Record der Festplatte zu schreiben, benutzen Sie das Programm „grub-install“. Wenn Sie „grub-install“ zunächst ohne Optionen aufrufen bekommen Sie eine kurze Übersicht der möglichen Optionen angezeigt:

debian:~# grub-install 
install_device not specified.
Usage: grub-install [OPTION] install_device
Install GRUB on your drive.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --root-directory=DIR    install GRUB images under the directory DIR
                          instead of the root directory.
  --grub-shell=FILE       use FILE as the grub shell.
  --force-lba             force GRUB to use LBA mode even for a buggy
                          BIOS.
  --recheck               probe a device map even if it already exists.

INSTALL_DEVICE can be a GRUB device name or a system device filename.

Reports bugs to <bug-grub@gnu.org>.

In den meisten Fällen ist es ausreichend lediglich das gewünschte Device anzugeben auf dem die Daten installiert werden sollen. Dies wird bei einer IDE-Festplatte meist /dev/hda sein.

GRUB ist nun funktionsfähig installiert, Sie sollten aber noch ein Menü einrichten um nicht bei jedem Systemstart die Parameter für das Root-Device und den Kernel von Hand eingeben zu müssen. Kopieren Sie hierzu am besten das mitgelieferte Beispiel an die entsprechende Stelle.

Konfiguration

Wenn Sie im Verzeichnis /boot/grub/ eine Datei eine Datei menu.lst erzeugen, so wird GRUB beim nächsten Start aus dieser Datei ein Menü erstellen und Sie können dann aus den verschiedenen Einträgen dieses Menüs den gewünschten auswählen. Ein Beispiel für ein solches Menü finden Sie unter /usr/share/doc/grub/menu.lst.


debian:~# cp /usr/share/doc/grub/menu.lst /boot/grub/

In dem Beispiel finden Sie einige Einträge für die verschiedensten Betriebssysteme, sowie einige andere Goodies die Sie mit GRUB anstellen können. Eine funktionsfähige Minimalkonfiguration könnte wie folgt aussehen:

timeout 10
default 0

# For booting Linux
title  Debian GNU/Linux
root (hd0,0)
kernel /vmlinuz root=/dev/hda1


Hardwarebezeichnungen

Vielleicht haben Sie sich schon über die etwas ungewohnten Bezeichnungen der Laufwerke in der Konfigurationsdatei gewundert. GRUB benutzt die von HURD-Kernel verwendeten Bezeichnungen für Gerätedateien, die Umstellung ist aber für den geübten Linux-Admin nicht sehr groß.

Zunächst ist zu bemerken das alle Bezeichnungen für Geräte in Klammern () geschrieben werden. Statt der unter Linux üblichen Buchstaben (z.B. hda) werden die einzelnen Platten mit fortlaufenden Zahlen ab 0 bezeichnet. hda entspricht also hd0. Die einzelnen Partitionen einer Platten werden wie unter Linux mit Zahlen bezeichnet, allerdings beginnend mit 0 und getrennt mit einem Komma. Somit entspricht /dev/hda1 also (hd0,0).

Weitere Geräte werden als (fd0) (Diskette) und (sd0) (SCSI Platten) bezeichnet. Sie können GRUB auch zum booten übers Netz einsetzen oder das Root-Filesystem per NFS mounten. Die Bezeichnung des Netzwerkdevices lautet (nd).

Kommandozeile

GRUB verfügt auch über eine sehr leistungsfähige Kommandozeile, bedenken Sie dabei das zu dieser Zeit noch kein komplettes Betriebssystem oder gar ein Kernel geladen ist! Sollte es Ihnen nicht gelungen sein ein funktionsfähiges Menü zu erstellen, so landen Sie automatisch auf der GRUB-Kommandozeile. Sie können hier alle Kommandos, Laufwerksbezeichnungen und Dateinamen mit der TAB-Taste automatisch vervollständigen lassen, diese Feature kennen Sie sicher schon aus der Shell.

Wenn jedoch ein Menü angezeigt wird, können Sie dieses mit der Taste c verlassen und auf der Kommandozeile zum Beispiel von Hand einen anderen Kernel starten. Fehlerhafte Einträge im Menü lassen sich aus dem Menü mit der Taste e temporär verändern. Vergessen Sie nicht diese Änderungen später in die Datei /boot/grub/menu.lst einzutragen.

weitere Informationen

Weitere Informationen zu GRUB finden Sie auf Ihrem System unter file:///usr/share/doc/grub/grub.html und auf der Webseite des Projektes unter http://www.gnu.org/software/grub/grub.en.html.