KAPITEL 3 Starten und Stoppen von OpenLinux eServer

In diesem Kapitel wird erläutert, wie Ihr OpenLinux eServer System gestartet und gestoppt wird und welche Vorgänge bei der Systeminitialisierung ablaufen. Wenn Sie über Grundlagenwissen zu diesen Themen verfügen, können Sie die entsprechenden Abläufe bei Ihrem System individuell konfigurieren und Probleme beheben.

Booten von Linux

Nachdem der Linux-Kernel durch LILO gestartet wurde, werden durch den Kernel die folgenden Schritte ausgeführt:

  1. Der Kernel initialisiert seine eigenen internen Systeme.
  2. Das Programm init wird gestartet.
  3. init liest die Datei /etc/inittab, um festzustellen, wie das System zum angegebenen Runlevel hochgefahren werden soll.
  4. init liest die Datei /etc/rc.d/rc.modules, um festzustellen, welche Module automatisch geladen werden müssen.
  5. init führt /etc/rc.d/rc.boot aus, um weitere wichtige Systeminformationen zu laden und zu verarbeiten, so z.B. den Hostnamen des Systems.
  6. In Abhängigkeit vom Runlevel, also dem Betriebszustand, den das System nach dem Starten erreichen soll (normalerweise 3 oder 5), werden alle Dienste gelesen und ausgeführt, die im entsprechenden Verzeichnis aufgelistet werden (/etc/rc.d/rc3.d oder /etc/rc.d/rc5.d). Dadurch befindet sich das System nach der Initialisierung im gewünschten Runlevel. Die Skripten, die mit dem Buchstaben S beginnen, werden gestartet, während alle Skripten, die mit dem Buchstaben K beginnen, gestoppt werden.
  7. Das Programm getty wird für jede der in /etc/inittab definierten virtuellen Konsolen gestartet. Bei getty handelt es sich um den Prozess, der das Starten von Terminals verwaltet und den Anmeldeprozess startet.

Eine detailliertere Erklärung von Schritt 6 erhalten Sie im nächsten Abschnitt mit der Bezeichnung Systeminitialisierung.

Systeminitialisierung

Im Verzeichnis /etc/rc.d befinden sich mehrere Unterverzeichnisse, und zwar eines für jeden Runlevel, rc0.d - rc6.d und init.d. Jedes dieser Unterverzeichnisse enthält zahlreiche symbolische Verknüpfungen mit den tatsächlichen Intialisierungsskripten, die im Master-Init-Verzeichnis, init.d,gespeichert werden. Alle Skripten beginnen mit einem S oder einem K, gefolgt von einer zweistelligen Zahl, und akzeptieren die Argumente start oder stop und mitunter auch reload oder restart. Jedes Skript steuert einen einzelnen Dämon oder Dienst im System. Dadurch ist es für den Systemadministrator problemlos möglich, Dämonen oder Dienste von der Befehlszeile aus zu starten, zu stoppen oder neu zu starten.

Wenn nicht direkt von der Befehlszeile aus Anweisungen übergeben werden, d.h. wenn das System gestartet, heruntergefahren oder in einen anderen Runlevel gebracht wird, steuert das Skript /etc/rc.d/rc in Abhängigkeit vom aktuellen und vorherigen Runlevel, welche Dämonen und Dienste auf welche Weise ausgeführt werden müssen. Angenommen, Sie booten in Runlevel 3. Das Skript rc führt alle Skripten im Verzeichnis /etc/rc3.d aus. Zuerst werden die Skripten ausgeführt, die mit dem Buchstaben K beginnen (in aufsteigender Reihenfolge), wodurch alle Prozesse gestoppt werden, die in Runlevel 3 nicht ausgeführt werden sollen. Dann startet das Skript rc alle Skripten, die mit einem S beginnen (und auch das wiederum in aufsteigender Reihenfolge).

Wenn das System heruntergefahren wird, wechselt es entweder bei einem Neustart in Runlevel 6 oder beim Anhalten des Systems in Runlevel 0. Auch hier müssen alle Dienste in der richtigen Reihenfolge heruntergefahren werden. Zu diesem Zweck werden wiederum die Skripten mit K am Anfang in aufsteigender Reihenfolge ausgeführt, gefolgt von den Skripten mit S am Anfang, die in diesem Fall die Skripten zum Neustarten oder Anhalten des Systems "starten".

Wenn Sie neue Prozesse hinzufügen möchten, die beim Booten oder Anhalten des Systems gestartet bzw. beendet werden sollen, stehen Ihnen zwei Optionen zur Verfügung. Die einfachste Methode besteht darin, den zu startenden Prozess in die Datei /etc/rc.d/rc.local einzufügen. Er wird dann automatisch beendet, wenn das System angehalten oder neu gestartet wird.

Alternativ können Sie auch ein Skript in /etc/rc.d/init.d erstellen, mit dessen Hilfe der entsprechende Prozess gestartet oder gestoppt wird. Glücklicherweise müssen Sie das Skript nicht von Grund auf neu schreiben. Statt dessen können Sie die Vorlage mit der Bezeichnung /etc/rc.d/init.d/skeleton verwenden, in der Sie das Wort daemon in der Zeile

NAME=daemon

durch die Bezeichnung des gewünschten Programms ersetzen müssen. Als nächstes müssen Sie festlegen, zu welchem Zeitpunkt das Programm beim Booten oder Herunterfahren des Systems gestartet und gestoppt werden muss. Erstellen Sie schließlich noch in den entsprechenden Unterverzeichnissen in rcX.d in /etc/rc.d eine symbolische Verknüpfung, die mit einem K oder einem S beginnt, gefolgt von einer zweistelligen Zahl, die noch nicht verwendet wird und festlegt, zu welchem Zeitpunkt das Skript in /etc/rc.d/init.d ausgeführt wird.

Verwenden von Webmin für das Steuern der Systeminitialisierung

In diesem Abschnitt wird beschrieben, wie Sie Webmin für das Steuern der Systeminitialisierung verwenden können und wie Webmin gestartet wird.

Um Webmin aufzurufen, starten Sie den Netscape-Browser durch Klicken auf dessen Symbol in der Kontrolleiste (siehe Abbildung 22) oder über das
KMenü->Internet->Communicator. Um die Verbindung mit dem Webmin-Server herzustellen, geben Sie localhost:1000 in das Textfeld Location des Browsers ein und drücken dann die Eingabetaste. Daraufhin wird der Anmeldebildschirm von Webmin angezeigt (siehe Abbildung See Das Symbol für Netscape in der Kontrolleiste von KDE.). Geben Sie den Benutzernamen und das Kennwort ein, das Sie gegen Ende von Kapitel 2 festgelegt haben, und klicken Sie auf OK. Dadurch wird der Hauptbildschirm von Webmin angezeigt, der in Abbildung See Der Hauptbildschirm von Webmin. dargestellt wird.

Das Symbol für Netscape in der Kontrolleiste von KDE
Der Hauptbildschirm von Webmin

Um mit Hilfe der Benutzeroberfläche von Webmin die Einstellungen zur Systeminitialisierung zu ändern, klicken Sie auf das Symbol Bootup and Shutdown Actions (siehe Abbildung See Das Symbol Bootup and Shutdown Actions in Webmin.). Abbildung See Das Modul Bootup and Shutdown. zeigt den anschließend angezeigten Bildschirm.

Das Symbol Bootup and Shutdown Actions in Webmin
Das Modul Bootup and Shutdown

In diesem Fenster werden im Wesentlichen alle aktuell definierten Initialisierungsskripten (die Skripten befinden sich in /etc/rc.d/init.d) und das spezielle Skript /etc/rc.d/rc.local angezeigt. Um eines der Skripten zu bearbeiten, klicken Sie auf dessen Namen. Angenommen, Sie möchten verhindern, dass der Maustreiber für die Konsole, gpm, beim Booten in Runlevel 5 geladen wird. Klicken Sie hierzu auf die Verknüpfung gpm, worauf der in Abbildung See Der Konfigurationsbildschirm für gpm. dargestellte Bildschirm angezeigt wird.

Der Konfigurationsbildschirm für gpm

In der oberen Hälfte des Bildschirms wird das tatsächliche Initialisierungsskript angezeigt, das Sie hier direkt bearbeiten können. In der unteren Bildschirmhälfte können Sie hingegen festlegen, in welchen Runlevels gpm gestartet und gestoppt wird. Wie Sie erkennen können, ist gpm momentan so konfiguriert, dass der Konsolenmaustreiber in den Runlevels 3, 4 und 5 gestartet und in den Runlevels 0, 1, 2 und 6 gestoppt wird. Die Zahlen 75 und 25 legen fest, in welcher Reihenfolge der Dämon jeweils gestartet bzw. gestoppt wird. So wird gpm in Runlevel 5 deaktiviert:

  1. Deaktivieren Sie das Kontrollkästchen Start at für Runlevel 5.
  2. Klicken Sie auf die Schaltfläche Stop Now, um den Dämon anzuhalten (falls er gerade ausgeführt wird).
  3. Klicken Sie auf die Verknüpfung Return to action im folgenden Bildschirm.
  4. Klicken Sie auf die Schaltfläche Save.

Nachdem Sie auf Save geklickt haben, kehren Sie zum Bildschirm Bootup and Shutdown Actions von vorhin zurück. Um zu überprüfen, ob gpm jetzt in Runlevel 5 nicht mehr gestartet wird, klicken Sie auf die Verknüpfung gpm. Sie werden daraufhin feststellen, dass Ihre Änderungen gespeichert wurden.

Mit Hilfe des Hauptbildschirms von Bootup and Shutdown Actions können Sie auch neue Aktionen für das Booten und Herunterfahren des Systems festlegen. Gehen Sie hierzu wie folgt vor:

  1. Klicken Sie auf die Verknüpfung Create a new bootup or shutdown action.
  2. Füllen Sie die Eingabemaske Create Action aus (siehe Abbildung 27).
  3. Schreiben Sie das eigentliche Skript mit Hilfe der Eingabemaske Action Details. Webmin erstellt das Skript automatisch und verwendet dabei die von Ihnen hier eingegebenen Informationen. Die erforderlichen Elemente werden in Tabelle See Die Felder in Action Details. aufgelistet.
  4. Legen Sie die Runlevels fest, in denen das neue Skript gestartet und gestoppt werden soll. Geben Sie zudem die Zahlenwerte an, mit denen die Reihenfolge für die Ausführung festgelegt wird. Üblicherweise werden Bootaktionen in den Runlevels 3, 4 und 5 gestartet und in den Runlevels 0, 1, 2 und 6 gestoppt. HINWEIS: Wenn Sie versehentlich einen Skriptnamen auswählen, der bereits verwendet wird, speichert Webmin die neue Aktion nicht.
  5. Klicken Sie auf die Schaltfläche Create.

Ein Beispiel für das Erstellen eines neuen Initialisierungsskripts wird in Abbildung See Erstellen eines neuen Initialisierungsskripts. dargestellt.

Erstellen eines neuen Initialisierungsskripts
Die Felder in Action Details

Feld

Beschreibung

Name

Name des Skripts

Beschreibung

Kurze Beschreibung des Skripts

Befehle zum Starten

Die Befehle, die zum Starten des Dämons oder Programms ausgeführt werden, einschließlich möglicher Argumente oder Optionen

Befehle zum Beenden

Die Befehle, die zum Beenden des Dämons oder Programms ausgeführt werden, einschließlich möglicherweise erforderlicher Argumente oder Optionen

Um ein Skript zum Starten oder Beenden von Dämonen oder Diensten zu löschen, klicken Sie zuerst auf die Verknüpfung für dieses Skript im Hauptfenster Bootup and Shutdown und dann auf die Schaltfläche Delete unten rechts im Bildschirm.

Verwenden von LILO

In diesem Abschnitt erhalten Sie grundlegende Informationen über die Konfiguration und Verwendung von LILO. Dadurch erwerben Sie das nötige Vorwissen für den nächsten Abschnitt, in dem die Vorgehensweise zum Booten mehrerer Kernel erläutert wird. Das Modul von Webmin für das Bearbeiten von LILO und der Datei /etc/lilo.conf (durch die das Verhalten von LILO festgelegt wird) wird durch Klicken auf das Symbol Linux Bootup Configuration aufgerufen (siehe Abbildung See Das Symbol Linux Bootup Configuration.). Dadurch wird der Bildschirm in Abbildung See Das Modul Linux Bootup Configuration. mit der Bezeichnung Linux Bootup Configuration angezeigt.

Das Symbol Linux Bootup Configuration
Das Modul Linux Bootup Configuration

Über diesen Bildschirm können Sie mehrere Aktivitäten vornehmen:

Modifizieren des aktuellen Kernels

Um die Bootoptionen des aktuellen Kernels zu ändern, klicken Sie auf eines der Symbole in der oberen Bildschirmhälfte. In Abbildung See Der Bildschirm Edit Boot Kernel. wurde beispielsweise das Symbol mit der Bezeichnung linux gewählt. Abbildung See Der Bildschirm LILO Global Options von Webmin. zeigt den Bildschirm, der daraufhin erscheint. Tabelle See Beschreibung der Felder in der Maske Boot Options. beschreibt die einzelnen Felder.

Beschreibung der Felder in der Maske Boot Options

Feld

Beschreibung

Name

Die Kennung, die am Bootprompt von LILO eingegeben wird.

Kernel to boot

Vollständiger Pfad für das zu bootende Kernel-Image.

Kernel options

Parameter, die beim Booten an den Kernel unter Verwendung der Option append übergeben werden.

Root device

Das Gerät, auf dem sich das Rootdateisystem befindet.

Root mount mode

Das Rootgerät sollte beim Booten immer im Lesemodus (also ohne Schreibzugriff) gemountet werden.

VGA text mode

Der standardmäßige Grafikmodus. Entspricht der vga-Option von LILO.

Remember options?

Wählen Sie Yes, wenn die Kerneloptionen in den Kernel geschrieben werden sollen.

Skip if kernel does not exist?

Wählen Sie Yes, wenn LILO diesen Bereich übergehen soll, falls der angegebene Kernel nicht existiert.

Boot password

Vor dem Booten des angegebenen Kernels erwartet LILO die Eingabe dieses Kennworts.

Password needed for

Legt die Bedingungen fest, unter denen ein Kennwort angegeben werden muss.

Der Bildschirm Edit Boot Kernel

Nachdem Sie diese Optionen geändert haben, klicken Sie auf die Schaltfläche Save, um Ihre Änderungen zu speichern. Klicken Sie dann auf die Schaltfläche Apply Configuration, damit Ihre Änderungen übernommen werden. Wenn Sie Ihre Änderungen hingegen wieder rückgängig machen möchten, klicken Sie auf die Verknüpfung Return to kernels and partitions.

Erstellen eines neuen Bootkernels

Ihr OpenLinux eServer System kann für die Verwendung mehrerer Kernel konfiguriert werden. Diese Funktion bietet sich an, wenn Sie spezielle Hardwarekonfigurationen unterstützen oder bestimmte Dienste zur Verfügung stellen möchten oder einen neu kompilierten Kernel testen wollen. Vor allem beim Testen eines neuen Kernels ist es besonders wichtig, mehrere Kernel booten zu können, da der neue Kernel möglicherweise nicht stabil ist oder nicht über alle gewünschten Funktionen verfügt. Beachten Sie bitte, dass Sie vor dem Erstellen eines neuen Kernels den alten Kernel sichern müssen und auch ein Eintrag für den alten Kernel in Ihrer Bootkonfigurationsdatei, /etc/lilo.conf, erhalten bleiben sollte. Die für das Neukompilieren des Kernels erforderlichen Schritte werden in Kapitel 4, Verwalten des Kernels, näher erläutert.

Um von mehreren Kerneln booten zu können (nur ein Kernel kann jeweils gleichzeitig geladen und ausgeführt werden), benötigt OpenLinux eServer Informationen zum Speicherort und zu den Ladeoptionen für jeden Kernel. LILO (LInux LOader) übergibt diese Informationen über den auszuführenden Kernel an den Computer. Webmin erleichtert das Konfigurieren Ihres Systems zum Booten mehrerer Kernel ganz beträchtlich. Klicken Sie zuerst auf die Verknüpfung Create a new boot kernel. Der daraufhin angezeigte Bildschirm sieht ähnlich wie in Abbildung See Der Bildschirm Edit Boot Kernel. aus, allerdings müssen Sie noch alle Felder ausfüllen. Klicken Sie auf die Schaltfläche Save, wenn Sie mit dem Ausfüllen fertig sind. Nachdem Sie wieder in den Bildschirm Linux Bootup Configuration zurückgekehrt sind, klicken Sie auf die Schaltfläche Apply Configuration, um Ihre Änderungen zu aktivieren.

Um einen Bootkernel zu löschen, wählen Sie dessen Symbol aus und klicken dann auf die Schaltfläche Delete, die sich in der unteren rechten Ecke des Bildschirms Edit Boot Kernel befindet.

Ändern der globalen Bootoptionen

Im ersten Abschnitt der Konfigurationsdatei zu LILO, /etc/lilo.conf, wird eine Reihe von Optionen für alle Kernel und das allgemeine Verhalten von LILO festgelegt. Wenn Sie diese Optionen anzeigen, erweitern oder ändern möchten, klicken Sie auf die Schaltfläche Edit Global Options. Der entsprechende Bildschirm wird in Abbildung See Der Bildschirm LILO Global Options von Webmin. dargestellt.

Der Bildschirm LILO Global Options von Webmin

In Abbildung See Der Bildschirm LILO Global Options von Webmin. hat Webmin die bereits in der Datei /etc/lilo.conf vorhandenen globalen Optionen eingelesen. Die wichtigsten Optionen werden in Tabelle See Globale Optionen in LILO. behandelt.

Globale Optionen in LILO

Feld

Beschreibung

Write boot loader to

Gibt den Ort für die Installation des Bootloaders an.

Display LILO prompt?

Soll das Prompt "boot:" angezeigt werden oder nicht?

Time to wait at LILO prompt

Für welchen Zeitraum soll das Bootprompt angezeigt werden, bevor das Booten fortgesetzt wird?

Time to wait before booting

Wie lang soll LILO warten, bevor der standardmäßige Kernel gebootet wird, falls keine Alternative angegeben wird?

Die weiteren Felder wurden in Tabelle 5 aufgelistet und erläutert. Nachdem Sie die gewünschten Änderungen vorgenommen haben, können Sie diese durch Klicken auf die Schaltfläche Save speichern. Klicken Sie dann wie im vorigen Abschnitt auf die Schaltfläche Apply Configuration, um Ihre Änderungen zu aktivieren.

Analysieren von /etc/lilo.conf

Im vorherigen Abschnitt wurde erläutert, wie Webmin für das Konfigurieren von LILO verwendet wird. In diesem Abschnitt wird nun am Beispiel einer konkreten LILO-Konfigurationsdatei erklärt, wie diese Datei aufgebaut ist und was sie im System bewirkt. In der folgenden Auflistung sehen Sie zunächst den Inhalt der vollständigen Datei. Danach wird die Datei Zeile für Zeile detailliert untersucht, und die Verwendung der einzelnen Befehle und Optionen wird erläutert. Zeilen, die mit dem Gatterzeichen # beginnen, enthalten Kommentare, die von LILO ignoriert werden.

# /etc/lilo.conf

# Beispiel für eine LILO Konfigurationsdatei

 

boot = /dev/hda

install = /boot/boot.b

prompt

delay = 50

timeout = 50

message = /boot/message

default = linux-2.2.13

 

image = /boot/vmlinuz-2.3.25

label = new-kernel

root = /dev/hda3

via = 274

read-only

append = "debug=2 noapic nosmp"

 

other = /dev/hda2

label = win

 

boot = /dev/hda

install = /boot/boot.b

Das Schlüsselwort boot gibt das Laufwerk an, von dem der Computer bootet. Das Schlüsselwort install übergibt an den Computer Informationen zur Geometrie des Bootlaufwerks und zum genauen Speicherort des Kernels auf der Festplatte.

prompt

delay = 50

timeout = 50

message = /boot/message

default = linux-2.2.13

In diesem Abschnitt der Konfigurationsdatei werden die Optionen für das Booten aufgelistet. Der Eintrag prompt gibt beispielsweise an, dass ein Bootprompt angezeigt werden soll. Die Option delay weist den Computer an, den angegebenen Zeitraum (in Zehntelsekunden) zu warten, bevor der standardmäßige Kernel gebootet wird. Das Schlüsselwort default enthält den Namen des Kernels, der geladen werden soll, falls vor dem Ablaufen der voreingestellten Zeitspanne am Bootprompt keine alternative Kennung eingegeben wird. Die Option timeout übergibt dem Computer die Information, wie lang dieser warten soll, bevor die weiteren Standardeinstellungen für das Booten verwendet werden. Die Angaben unter message enthalten den Speicherort von Meldungen, die Sie den Benutzern anzeigen möchten.

image = /boot/vmlinuz-2.3.25

label = new-kernel

root = /dev/hda3

vga = 274

read-only

append = "debug=2 noapic nosmp"

Dabei handelt es sich um den ersten Abschnitt, der in englischen Fachtexten häufig auch als Stanza bezeichnet wird und Anweisungen für das Laden eines speziellen Kernels enthält. Das Schlüsselwort image gibt an, welches Kernel-Image geladen werden soll, wie der Name dieses Images lautet und wo dieser in Bezug auf die Rootpartition gespeichert ist, in der Linux installiert ist. label ist ein Name oder Alias für das angegebene Kernel-Image. Bei dieser Kennung ("label") handelt es sich um den Begriff, den der Benutzer am Bootprompt eingeben muss. root wiederum legt fest, welche Partition auf dem Bootlaufwerk die Rootpartition enthält.

Die Einträge unterhalb dem Schlüsselwort root in jedem Stanza enthalten zusätzliche Parameter, die Sie an den Kernel vor dem Booten übergeben möchten. vga bezieht sich auf den Grafikmodus, in dem das Betriebssystem gestartet wird. Bei der Einstellung 274 in unserem Beispiel handelt es sich um den speziellen LIZARD Bootmodus. Das Schlüsselwort read-only weist den Kernel an, die Rootpartition beim Booten im Lesemodus zu mounten. Der Prozess init mountet das Rootdateisystem dann nach dem Booten des Kernels neu und ermöglicht dadurch auch Schreibzugriffe. Bei der Option in der Zeile append handelt es sich um eine von doppelten Anführungszeichen umschlossene Zeichenkette mit zusätzlichen Parametern, die beim Booten an den Kernel übergeben werden müssen. Diese Parameter unterstützen den Kernel beim Erkennen von Hardware und vermeiden dadurch beispielsweise Probleme, die durch das fehlerhafte Erkennen der tatsächlichen Hardwarekonfiguration entstehen könnten. Außerdem legen diese Parameter fest, welche Module geladen oder nicht geladen werden sollen u.ä.

other = /dev/hda2

label = win

Dieses Stanza enthält Anweisungen für das Laden von anderen Betriebssystemen als Linux, was durch das Schlüsselwort other bereits angedeutet wird. In diesem Beispiel verweist diese Zeile auf die zweite primäre Partition auf der ersten IDE-Festplatte. Für die Kennung ("label") können Sie einen beliebigen Begriff festlegen. Es empfiehlt sich jedoch, einen Begriff auszuwählen, aus dem klar hervorgeht, welches Betriebssystem durch das Stanza geladen werden soll.

Alle Änderungen an der Datei /etc/lilo.conf müssen in den Master Boot Record (falls Sie nur LILO verwenden) oder in den Bootsektor Ihrer Linux-Partition geschrieben werden, falls Sie einen Bootloader eines anderen Anbieters wie System Commander oder BootMagic verwenden. Um die Änderungen zu aktivieren, führen Sie den Befehl /sbin/lilo -v aus. LILO zeigt dann die hinzugefügten neuen Kernel an.

Go to Main Go to Previous Go to Next