Products
and Services Support
and Docs Training Partner Programs About Red
Hat
  download storecart
red hat logo
redhat.comredhat network

Red Hat Documentation

Der Bootproze, Init und Shutdown

Der Bootprozeß, Init und Shutdown

In diesem Abschnitt werden die Vorgänge beim Starten und Herunterfahren eines Red Hat Linux Systems dargestellt.

Hinter die Kulissen des Bootprozesses geschaut

Wenn ein Computer gestartet wird, sucht der Prozessor am Ende des Systemspeichers nach dem BIOS (Basic Input/Output System) und führt es aus. Das BIOS-Programm ist in schreibgeschütztem Speicher abgelegt und ständig einsatzbereit. Das BIOS stellt die Schnittstelle der untersten Ebene zu den Peripheriegeräten dar und steuert den ersten Schritt des Bootprozesses.

Das BIOS prüft das System, sucht und prüft Peripheriegeräte und sucht dann nach einem Bootlaufwerk. Normalerweise prüft es das Diskettenlaufwerk (oder auf vielen neueren Systemen das CD-ROM-Laufwerk, falls ein solches vorhanden ist) und sucht anschließend auf der Festplatte. Auf der Festplatte sucht das BIOS einen Master Boot Record (MBR), der im ersten Sektor der ersten Festplatte beginnt, und startet den MBR.

Der MBR sucht nach der ersten aktiven Partition und liest den Boot Record der Partition. Der Boot Record enthält Anweisungen zum Laden des Bootloaders LILO ( LInux LOader). Anschließend lädt der MBR dann LILO, und LILO übernimmt den Prozeß.

LILO liest die Datei /etc/lilo.conf, in der festgelegt ist, welche(s) Betriebssystem(e) zu konfigurieren ist/sind bzw. welcher Kernel zu starten ist und wo sich LILO installieren soll (zum Beispiel /dev/hda für Ihre Festplatte). LILO zeigt den LILO: -Prompt auf dem Bildschirm an und wartet eine festgelegte Zeitspanne (ebenfalls in der Datei lilo.conf festgelegt) auf Benutzereingaben. Wenn in Ihrer lilo.conf festgelegt ist, daß mit LILO ein bestimmtes Betriebssystem gewählt werden kann, können Sie am LILO-Prompt die Kennung des Betriebssystems eingeben, das Sie starten möchten.

Nach einer festgelegten Zeitspanne (üblicherweise fünf Sekunden), startet LILO dasjenige Betriebssystem, das zuerst in der Datei lilo.conf aufgeführt ist.

Wenn LILO Linux bootet, wird zuerst der Kernel gestartet, der als Datei vmlinuz (zuzüglich einer Versionsnummer, zum Beispiel vmlinuz-2.2.15-xx) im Verzeichnis /boot abgelegt ist. Dann übernimmt der Kernel den weiteren Bootprozeß.

Der Kernel sucht in mehreren verschiedenen Verzeichnissen nach init (üblicherweise in /sbin abgelegt) und führt das erste gefundene Programm init aus. Init übernimmt den weiteren Bootprozeß.

Init startet alle Prozesse Ihres Linux-System (und wird gleichzeitig zum Elternteil bzw. Großelternteil dieser Prozesse). Zuerst führt init /etc/rc.d/rc.sysinit aus, das Ihren Pfad setzt, das Netzwerk einrichtet (falls erforderlich), die Speicherauslagerung (Swapping) startet, Dateisysteme überprüft usw. Grundsätzlich kümmert sich rc.sysinit um alles, was bei der Systeminitialisierung auf Ihrem System erledigt werden muß. Zum Beispiel verwendet rc.sysinit auf einem System, das in ein Netzwerk eingebunden ist, die Informationen in den Dateien /etc/sysconfig/network und /etc/sysconfig/clock zum Initialisieren der Netzwerkprozesse und der Uhr. Wenn Sie serielle Port-Prozesse haben, die initialisiert werden müssen, kann auch rc.serial ausgeführt werden.

Init wertet die Datei /etc/inittab aus und implementiert die dort vorhandenen Angaben. Die Datei /etc/inittab beschreibt, wie das System auf jedem Runlevel einzurichten ist und legt den Standard-Runlevel fest. Diese Datei legt fest, daß /etc/rc.d/rc und /sbin/update beim Start eines Runlevels ausgeführt werden müssen.

Die Datei /sbin/update gibt fehlerhafte Puffer auf der Festplatte wieder frei.

Bei Änderungen des Runlevels startet und stoppt /etc/rc.d/rc Dienste. Zuerst legt rc die Quellfunktionsbibliothek für das System fest (normalerweise /etc/rc.d/init.d/functions), in der beschrieben ist, wie Programme zu starten/beenden sind und wie die PID eines Programms bestimmt werden kann. Die Datei rc stellt dann fest, in welchem Runlevel sich das System aktuell befindet und in welchem es sich vorher befand, und übergibt diese Informationen an linuxconf.

Die Datei rc startet alle Hintergrundprozesse, die für die Ausführung des Systems erforderlich sind, und sucht nach einem rc-Verzeichnis für dieses Runlevel (/etc/rc.d/rc<x>.d , wobei das <x> eine Zahl zwischen 0 und 6 sein kann). rc beendet alle kill-Skripte (ihr Dateiname beginnt mit einem K) in /rc.d/. Anschließend werden alle Startskripten (ihr Dateiname beginnt mit einem S ) im entsprechenden Runlevel-Verzeichnis initialisiert (damit alle Dienste und Anwendungen korrekt gestartet werden).

Beispiel für Runlevel 5: rc sucht im Verzeichnis /etc/rc.d/rc5.d und stellt fest, daß rusersd, rwalld, rwhod, mcserv, mars-nwe, apmd und pcmcia beendet werden müssen. Danach sucht rc im selben Verzeichnis nach Startskripten und findet Startskripten für kmod , network, nfsfs, randomc, syslog, atd, crond, portmap, snmpd, inet, xntpd, lpd, nfs.rpmsave, dhcpd, ypbind, autofs, keytable, sendmail, gpm, sound und smb.rpmsave. Und so beginnt der ganze Vorgang erneut.

Die Datei /etc/inittab erzeugt mit fork einen Terminalprozeß für jede virtuelle Konsole (Anmelde-Prompts) für jedes Runlevel (die Runlevels 2-5 verfügen über sechs solcher Konsolen, Runlevel 1 (Einzelbenutzermodus) nur über eine Konsole, die Runlevels 0 und 6 haben keine virtuelle Konsolen). /etc/inittab gibt außerdem an, daß gdm, der X-Anmeldemanager, in Runlevel 5 gestartet werden muß.

/etc/inittab gibt auch an, wie das System die Tastenkombination Strg-Alt-Entf in einen Befehl wie /sbin/shutdown -t3 -r now umsetzt. Schließlich gibt /etc/inittab an, wie das System bei einem Stromausfall zu reagieren hat.

Wenn das System an dieser Stelle angelangt ist, sollten Sie einen Anmelde-Prompt auf dem Bildschirm sehen. Diese Aufgaben werden innerhalb weniger Sekunden ausgeführt.

Im nächsten Abschnitt werden die Dateien im Verzeichnis /etc/sysconfig beschrieben.

Sysconfig

Im folgenden werden die verschiedenen Dateien in /etc/sysconfig, ihre Funktion und ihr Inhalt beschrieben.

Dateien in /etc/sysconfig

In der Regel enthält /etc/sysconfig die folgenden Dateien:

  • /etc/sysconfig/clock

  • /etc/sysconfig/hwconf (sollte beim Bearbeiten ignoriert werden)

  • /etc/sysconfig/mouse

  • /etc/sysconfig/sendmail

  • /etc/sysconfig/apmd

  • /etc/sysconfig/init

  • /etc/sysconfig/keyboard

  • /etc/sysconfig/network

  • /etc/sysconfig/pcmica

  • /etc/sysconfig/soundcard (wird von sndconfig erstellt)

Es folgt eine Beschreibung der einzelnen Dateien.

/etc/sysconfig/clock

In der Datei /etc/sysconfig/clock wird festgelegt, wie die Systemuhr zu interpretieren ist. In früheren Red Hat Linux Versionen wurden die folgenden Werte verwendet (in dieser Version bitte nicht mehr verwenden):

  • CLOCKMODE=Modus, wobei Modus die folgenden Werte annehmen kann:

    • GMT - Die Uhr ist auf UTC eingestellt.

    • ARC - Der 42-Jahre-Zeitversatz der ARC-Konsole ist aktiviert (nur bei Alpha-Systemen).

In neueren Versionen werden nur noch die folgenden Einstellungen verwendet:

  • UTC=boolean, wobei boolean einen der folgenden Werte annehmen kann:

    • true - Die Uhr ist auf UTC eingestellt. Jeder andere Wert stellt die Uhr auf lokale Zeit.

  • ARC=boolean, wobei boolean einen der folgenden Werte annehmen kann:

    • true - Der 42-Jahre-Zeitversatz der ARC-Konsole ist aktiviert. Jeder andere Wert stellt die Uhr auf normale Unix-Epoche. (nur bei Alpha-Systemen)

  • ZONE="Dateiname" - zeigt der Zonendatei in /user/share/zoneinfo an, daß /etc/localtime eine Kopie ist, beispielsweise von:

    ZONE="US/Eastern"
    		  

/etc/sysconfig/hwconf

In der Datei /etc/sysconfig/hwconf sind alle Hardware-Komponenten aufgeführt, die kudzu in Ihrem System erkannt hat, außerdem Informationen zu den verwendeten Treibern, Anbieter-ID und Geräte-ID. Diese Datei darf nicht verändert werden. Falls Sie die Datei dennoch ändern, kann es sein, daß Geräte plötzlich als hinzugefügt oder entfernt angezeigt werden.

/etc/sysconfig/mouse

Die Datei /etc/sysconfig/mouse enthält Informationen über die angeschlossene Maus. Folgende Werte können verwendet werden:

  • MOUSETYPE=Typ, wobei Typ einen der folgenden Werte annehmen kann:

    • microsoft - Eine Microsoft-Maus.

    • mouseman - Eine MouseMan-Maus.

    • mousesystems - Eine Mouse Systems-Maus.

    • ps/2 - Eine PS/2-Maus.

    • msbm - Eine Microsoft-Bus-Maus.

    • logibm - Eine Logitech-Bus-Maus.

    • atibm - Eine ATI-Bus-Maus.

    • logitech - Eine Logitech-Maus.

    • mmseries - Eine ältere MouseMan-Maus.

    • mmhittab - Eine mmhittab-Maus.

  • XEMU3=Emulation, wobei Emulation einen der folgenden Werte annehmen kann:

    • yes - Drei Maustasten emulieren.

    • no - Die Maus verfügt bereits über drei Tasten.

Außerdem ist /dev/mouse ein symbolischer Link, der auf das eigentliche Mausgerät zeigt.

/etc/sysconfig/sendmail

Die Datei /etc/sysconfig/sendmail ermöglicht das Versenden von Nachrichten an einen oder mehrere Empfänger, wobei die Nachricht je nach den Erfordernissen über beliebige Netzwerke geroutet werden können. In der Datei sind die Standardwerte für die Ausführung des Programms sendmail festgelegt. Standardmäßig läuft das Programm als Dämon im Hintergrund und prüft seine Warteschlange pro Stunde einmal für den Fall, daß Nachrichten zurückgekommen sind.

Folgende Werte können verwendet werden:

  • DAEMON=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Sendmail soll konfiguriert werden. yes bedeutet -bd.

    • no - Sendmail soll nicht konfiguriert werden.

  • QUEUE=1h, wird an sendmail als -q$QUEUE übergeben. Die Option -q wird nicht an sendmail übergeben, wenn /etc/sysconfig/sendmail vorhanden ist und QUEUE leer oder nicht definiert ist.

/etc/sysconfig/apmd

Die Datei /etc/sysconfig/apmd wird von apmd zur Konfiguration verwendet, welche Prozesse nach den Befehlen suspend bzw. resume gestartet/gestoppt/geändert werden sollen. In ihr ist festgelegt, ob apmd beim Startvorgang aktiviert oder deaktiviert wird, je nachdem, ob Ihre Hardware Advanced Power Management (apm) unterstützt bzw. ob Sie diese Funktionalität verwenden wollen.

/etc/sysconfig/init

In der Datei /etc/sysconfig/init ist die Art der Bildschirmdarstellung beim Systemstart festgelegt.

Folgende Werte können verwendet werden:

  • BOOTUP=<Startmodus>, wobei <Startmodus> einen der folgenden Werte annehmen kann:

    • BOOTUP=color für die neue Bildschirmdarstellung (ab Red Hat Linux 6.0).

    • BOOTUP=verbose für die alte Bildschirmdarstellung.

    • Jeder andere Wert bedeutet neue Bildschirmdarstellung, jedoch ohne ANSI-Formatierung.

  • LOGLEVEL=<Zahl>, wobei <Zahl> den anfänglichen Konsolenanmeldelevel für den Kernel bestimmt. Die Standardeinstellung ist 7. Der Wert 8 aktiviert alles (einschließlich Debugging). 1 deaktiviert alles außer Kernel-Panik. syslogd hebt diese Einstellungen auf, nachdem es gestartet ist.

  • RES_COL=<Zahl>, wobei <Zahl> eine Spalte des Bildschirms ist, wo Statuskennungen beginnen. Die Standardeinstellung ist 60.

  • MOVE_TO_COL=<Befehl>, wobei <Befehl> den Cursor auf $RES_COL bewegt. Die Standardeinstellung ist die Ausgabe von ANSI-Sequenzen durch echo -e.

  • SETCOLOR_SUCCESS=<Befehl>, wobei <Befehl> die Farbe für die Anzeige von erfolgreichen Vorgängen bestimmt. Die Standardeinstellung ist die Ausgabe von ANSI-Sequenzen mit echo -e, wobei die Farbe grün eingestellt wird.

  • SETCOLOR_FAILURE=<Befehl>, wobei <Befehl> die Farbe für die Anzeige von nicht erfolgreichen Vorgängen bestimmt. Die Standardeinstellung ist die Ausgabe von ANSI-Sequenzen mit echo -e, wobei die Farbe rot eingestellt wird.

  • SETCOLOR_WARNING=<Befehl>, wobei <Befehl> die Farbe für die Anzeige von Warnungen bestimmt. Die Standardeinstellung ist die Ausgabe von ANSI-Sequenzen mit echo -e, wobei die Farbe gelb eingestellt wird.

  • SETCOLOR_NORMAL=<Befehl>, wobei <Befehl> die Farbe auf 'normal' einstellt. Die Standardeinstellung ist die Ausgabe von ANSI-Sequenzen durch echo -e.

  • MAGIC_SYSRQ=Antwort, wobei Antwort folgende Werte annehmen kann:

    • yes - Aktiviert die sysrq-Taste.

    • no - Deaktiviert die sysrq-Taste sowie Stop-A (Abbruch auf serieller Konsole) auf SPARC-Systemen.

  • PROMPT=Antwort, wobei Antwort folgende Werte annehmen kann:

    • yes - Aktiviert die Tastenprüfung für interaktiven Modus.

    • no - Deaktiviert die Tastenprüfung für interaktiven Modus.

/etc/sysconfig/keyboard

Die Datei /etc/sysconfig/keyboard bestimmt das Verhalten der Tastatur. Folgende Werte können verwendet werden:

  • KEYTABLE=Datei, wobei Datei der Name der keytable-Datei ist, zum Beispiel: KEYTABLE="/usr/lib/kbd/keytables/us.map"

  • KEYBOARD=sun|pc, wird nur auf SPARC-Systemen verwendet. sun bedeutet, eine Sun-Tastatur ist an /dev/kbd angeschlossen, pc bedeutet, eine PS/2-Tastatur ist am PS/2-Port angeschlossen.

/etc/sysconfig/network

Die Datei /etc/sysconfig/network enthält Informationen über die gewünschte Netzwerkkonfiguration. Folgende Werte können verwendet werden:

  • NETWORKING=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Netzwerk konfigurieren.

    • no - Netzwerk nicht konfigurieren.

  • HOSTNAME=Rechnername, wobei als Rechnername der vollständige Domänenname (FQDN, Fully Qualified Domain Name) angegeben werden muß. Sie können aber jeden gewünschten Rechnernamen eintragen.

    AnmerkungBitte beachten:
     

    Um die Kompatibilität mit älteren Programmen (z.B. trn) sicherzustellen, muß die Datei /etc/HOSTNAME denselben Wert enthalten, der hier verwendet wird.

  • FORWARD_IPV4=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - IP-Weiterleitung aktivieren.

    • no - IP-Weiterleitung nicht aktivieren.

    (Die aktuelle Red Hat Linux Installation trägt hier standardmäßig "no" ein [RFC-konform]. Wenn aber FORWARD_IPV4 überhaupt kein Wert zugewiesen wird, ist die IP-Weiterleitung aktiviert , um die Kompatibilität mit Konfigurationsdateien für Red Hat Linux Versionen bis einschließlich 4.2 zu gewährleisten.)

  • GATEWAY=Gateway-IP, wobei Gateway-IP die IP-Adresse des Netzwerk-Gateways ist.

  • GATEWAYDEV=Gateway-Gerät, wobei Gateway-Gerät der Gerätename für die Netzwerkkarte ist (z.B. eth0).

  • NISDOMAIN=Domänenname, wobei Domänenname der Name der NIS-Domäne ist.

/etc/sysconfig/pcmcia

Die Datei /etc/sysconfig/pcmcia enthält Informationen über die PCMCIA-Konfiguration. Folgende Werte können verwendet werden:

  • PCMCIA=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - PCMCIA-Unterstützung aktivieren.

    • no - PCMCIA-Unterstützung nicht aktivieren.

  • PCIC=PCIC-Typ, wobei PCIC-Typ einen der folgenden Werte annehmen kann:

    • i82365 - Der Computer ist mit einem i82365-Chipsatz für den PCMCIA-Steckplatz ausgerüstet.

    • tcic - Der Computer ist mit einen tcic-Chipsatz für den PCMCIA-Steckplatz ausgerüstet.

  • PCIC_OPTS=Option, wobei Option die Timing-Parameter für den Steckplatztreiber angibt (i82365 oder tcic).

  • CORE_OPTS=Option, wobei Option die Liste der pcmcia_core-Optionen ist.

  • CARDMGR_OPTS=Option, wobei Option die Liste der Optionen für den PCMCIA-Kartenmanager cardmgr ist (z.B. -q keine Meldungsausgabe (quiet mode), -m sucht ladbare Kernelmodule im angegebenen Verzeichnis usw. Weitere Informationen finden Sie in der man-Seite zu cardmgr).

/etc/sysconfig/soundcard

Die Datei /etc/sysconfig/soundcard wird von sndconfig erstellt und darf nicht verändert werden. Sie wird von /etc/rc.d/init.d/sound zur Einrichtung Ihres Systems verwendet. Dies hat den einzigen Zweck, daß festgelegt wird, welcher Karteneintrag im Menü standardmäßig geöffnet werden soll, wenn sndconfig das nächste Mal ausgeführt wird.

Folgende Werte können verwendet werden:

  • CARDTYPE=<Karte>, wobei <Karte> zum Beispiel als CARDTYPE=SB16 angegeben wird.

Dateien in /etc/sysconfig/network-scripts/

In der Regel enthält /etc/sysconfig/network-scripts die folgenden Dateien:

  • /etc/sysconfig/network-scripts/ifup

  • /etc/sysconfig/network-scripts/ifdown

  • /etc/sysconfig/network-scripts/network-functions

  • /etc/sysconfig/network-scripts/ifcfg-<Schnittstellenname>

  • /etc/sysconfig/network-scripts/ifcfg-<Schnittstellenname>- <Klonname>

  • /etc/sysconfig/network-scripts/chat-<Schnittstellenname>

  • /etc/sysconfig/network-scripts/dip-<Schnittstellenname>

  • /etc/sysconfig/network-scripts/ifup-post

  • /etc/sysconfig/network-scripts/ifdhcpc-done

Es folgt eine Beschreibung der einzelnen Dateien.

/etc/sysconfig/network-scripts/ifup, /etc/sysconfig/network-scripts/ifdown

Es handelt sich um symbolische Links auf /sbin/ifup bzw. /sbin/ifdown. In diesem Verzeichnis dürfen nur diese beiden Skripten direkt aufgerufen werden. Die anderen Skripten werden von diesen beiden Skripten nach Bedarf aufgerufen. Diese symbolischen Links sind aus historischen Gründen vorhanden - in zukünftigen Versionen werden sie wahrscheinlich entfallen. Verwenden Sie daher nur /sbin/ifup und /sbin/ifdown.

Diesen Skripten wird in der Regel nur ein Argument übergeben: der Name des Geräts (z.B. " eth0"). Beim Booten werden sie mit einem zweiten Argument "boot" aufgerufen, damit Geräte, die nicht schon beim Booten eingerichtet werden sollen (ONBOOT=no, [siehe unten]), in dieser Phase ignoriert werden können.

/etc/sysconfig/network-scripts/network-functions

Dies ist eigentlich keine öffentliche Datei. Sie enthält Funktionen, die von den Skripten für das Einrichten und Entfernen von Schnittstellen verwendet werden. Sie enthält insbesondere den größten Teil des Codes für die Verwaltung alternativer Schnittstellenkonfigurationen und Schnittstellenänderungsmeldungen durch netreport.

/etc/sysconfig/network-scripts/ifcfg-<Schnittstellenname>, /etc/sysconfig/network-scripts/ifcfg-<Schnittstellenname>-<Klonname>

Die erste Datei definiert eine Schnittstelle, während die zweite Datei nur die Teile der Definition enthält, die bei einer "Klon-" (oder alternativen) Schnittstelle anders sind. Zum Beispiel können sich die Netzwerknummern unterscheiden, während alle anderen Definitionen gleich sind. In diesem Fall enthält die Klondatei nur die Netzwerknummern, während alle Geräteinformationen in der zugrundeliegenden ifcfg-Datei stehen.

Die in der Datei ifcfg definierbaren Einträge hängen vom Schnittstellentyp ab.

Die folgenden Werte sind in allen Basisdateien enthalten:

  • DEVICE=Name, wobei Name der Name des physikalischen Geräts ist (mit Ausnahme von dynamisch eingerichteten PPP-Geräten, bei denen hier der "logische Name" eingetragen wird).

  • IPADDR=Adresse, wobei Adresse die IP-Adresse ist.

  • NETMASK=Maske, wobei Maske der Wert für die Netzmaske ist.

  • NETWORK=Adresse, wobei Adresse die Netzwerkadresse ist.

  • BROADCAST=Adresse, wobei Adresse die Broadcast-Adresse ist.

  • GATEWAY=Adresse, wobei Adresse die Gateway-Adresse ist.

  • ONBOOT=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Dieses Gerät beim Booten aktivieren.

    • no - Dieses Gerät beim Booten nicht aktivieren.

  • USERCTL=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Benutzer, die nicht Root sind, dürfen dieses Gerät steuern.

    • no - Benutzer, die nicht Root sind, dürfen dieses Gerät nicht steuern.

  • BOOTPROTO=Protokoll, wobei Protokoll einen der folgenden Werte annehmen kann:

    • none - Beim Booten kein Protokoll verwenden.

    • bootp - Beim Booten das bootp-Protokoll verwenden.

    • dhcp - Beim Booten das dhcp-Protokoll verwenden.

Die folgenden Werte sind in allen PPP- und SLIP-Dateien enthalten:

  • PERSIST=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Dieses Gerät soll immer aktiv bleiben, auch nachdem das Modem aufgelegt hat.

    • no - Dieses Gerät muß nicht immer aktiv bleiben.

  • MODEMPORT=Port, wobei Port der Gerätename des Modemports ist (z.B. " /dev/modem").

  • LINESPEED=Baud, wobei Baud die Leitungsgeschwindigkeit des Modems ist (z.B. " 115200").

  • DEFABORT=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Standardabbruchzeichenkette beim Erstellen/Bearbeiten des Skripts für diese Schnittstelle einfügen.

    • no - Keine Standardabbruchzeichenkette beim Erstellen/Bearbeiten des Skripts für diese Schnittstelle einfügen.

Die folgenden Werte sind in allen PPP-Dateien enthalten:

  • DEFROUTE=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Diese Schnittstelle als Standardroute verwenden.

    • no - Diese Schnittstelle nicht als Standardroute verwenden.

  • ESCAPECHARS=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Die vorgegebene asyncmap verwenden.

    • no - Die vorgegebene asyncmap nicht verwenden.

    (Es handelt sich hier um eine vereinfachte Schnittstelle, die keine Angabe von auszusparenden Zeichen zuläßt. Allerdings kann sowieso fast jeder eine asyncmap von 00000000 verwenden. Es ist auch möglich, PPPOPTIONS so einzustellen, daß auf Wunsch eine beliebige asyncmap verwendet werden kann.)

  • HARDFLOWCTL=Antwort, wobei Antwort einen der folgenden Werte annehmen kann:

    • yes - Verwendung der Hardware-Flußkontrolle aktivieren.

    • no - Verwendung der Hardware-Flußkontrolle nicht aktivieren.

  • PPPOPTIONS=Optionen, wobei Optionen eine beliebige Optionszeichenkette ist. Sie wird in der Befehlszeile zuletzt angegeben, damit andere, vorher angegebene Optionen (z.B. asyncmap) überschrieben werden können.

  • PAPNAME=Name, wobei Name als Teil von "name $PAPNAME" in der pppd-Befehlszeile verwendet wird.

    Beachten Sie, daß die Option "remotename" immer als logischer Gerätename angegeben wird, z.B. " ppp0" (was eventuell dem physikalischen Gerät ppp1 entspricht, wenn zuvor ein anderes PPP-Gerät eingerichtet wurde...). Dadurch wird die Verwaltung der PAP/CHAP-Dateien vereinfacht - Name/Paßwort-Paare sind mit logischen PPP-Geräten verknüpft, damit sie gemeinsam verwaltet werden können.

    Im Prinzip spricht nichts dagegen, das logische PPP-Gerät "Weltnetz" oder " meinISP" anstelle von "ppp0" bis "pppN" zu nennen.

  • REMIP=Adresse, wobei Adresse die IP-Adresse des Remote-Computers ist (die normalerweise nicht angegeben wird).

  • MTU=Wert, wobei Wert der Wert ist, der als MTU verwendet wird.

  • MRU=Wert, wobei Wert der Wert ist, der als MRU verwendet wird.

  • DISCONNECTTIMEOUT=Wert, wobei Wert angibt, wie viele Sekunden mit dem Wiederaufbau der Verbindung gewartet werden soll, nachdem eine erfolgreich verbundene Sitzung beendet wurde.

  • RETRYTIMEOUT=Wert, wobei Wert angibt, wie viele Sekunden bis zu einem erneuten Verbindungsversuch gewartet werden soll, nachdem ein vorangegangener Versuch fehlgeschlagen ist.

/etc/sysconfig/network-scripts/chat-<Schnittstellenname>

Diese Datei ist ein Chat-Skript für PPP- und SLIP-Verbindungen und dient dem Aufbau der Verbindung. Bei SLIP-Geräten erzeugt das Chat-Skript ein DIP-Skript. Bei PPP-Geräten wird das Chat-Skript direkt verwendet.

/etc/sysconfig/network-scripts/dip-<Schnittstellenname>

Dieses Write-only-Skript wird von netcfg aus dem Chat-Skript erzeugt. Es darf nicht bearbeitet werden. Möglicherweise wird diese Datei später nicht mehr verwendet und vom Chat-Skript zum Zeitpunkt der Verwendung neu erzeugt.

/etc/sysconfig/network-scripts/ifup-post

Diese Datei wird aufgerufen, wenn ein Netzwerkgerät (mit Ausnahme eines SLIP-Geräts) eingerichtet wird. Sie ruft /etc/sysconfig/network-scripts/ifup-routes auf, um statische Routen einzurichten, die von diesem Gerät abhängig sind, und richtet Aliase für das Gerät ein. Wenn der Rechnername nicht bereits gesetzt wurde und für die IP-Adresse dieses Geräts ein Rechnername gefunden werden kann, wird der Rechnername gesetzt. An alle Programme, die die Meldung von Netzwerkereignissen angefordert haben, wird SIGIO gesendet.

Diese Datei kann bei Bedarf erweitert werden, so daß noch die Nameservice-Konfiguration untergebracht werden kann, beliebige Skripten aufgerufen werden können usw.

/etc/sysconfig/network-scripts/ifdhcpc-done

Diese Datei wird von dhcpcd aufgerufen, wenn die dhcp-Konfiguration komplett ist. Sie erstellt /etc/resolv.conf aus der Version, die von dhcpcd in /etc/dhcpc/resolv.conf abgelegt wurde.

Systemstart mit SysV-Init

In diesem Abschnitt werden die internen Vorgänge beim Bootvorgang kurz beschrieben. Es wird im einzelnen dargestellt, wie der Computer mit SysV init bootet. Darüber hinaus werden die Unterschiede zwischen init in älteren Linux-Versionen und SysV init beschrieben.

Init wird beim Booten vom Kernel ausgeführt. Es ist für das Starten aller normalen Prozesse verantwortlich, die beim Booten ausgeführt werden müssen: die getty-Prozesse zum Anmelden am System, NFS-Dämonen, FTP-Dämonen und alle weiteren Prozesse, die Sie beim Booten Ihres Computers ausführen möchten.

SysV init setzt sich in der Linux-Welt immer mehr als Standard für die Steuerung des Startvorgangs durch. Der Grund: Es ist leichter bedienbar sowie leistungsfähiger und flexibler als das herkömmliche BSD-init.

SysV init unterscheidet sich von BSD init auch darin, daß die Konfigurationsdateien in einem Unterverzeichnis von /etc liegen und nicht direkt in /etc. Dieses Verzeichnis heißt /etc/rc.d. Es enthält rc.sysinit und die folgenden Verzeichnisse:

init.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
        

init.d enthält eine ganze Reihe von Skripten. Grundsätzlich brauchen Sie ein Skript für jeden Dienst, den Sie beim Booten oder beim Wechsel in einen anderen Runlevel starten müssen. Zu den Diensten gehören Netzwerkdienste wie nfs, sendmail, httpd usw. Programme wie setserial, die nur einmal ausgeführt werden müssen und dann beendet werden, zählen nicht zu diesen Diensten. Solche Programme sollten in rc.local oder rc.serial abgelegt werden.

Wenn Sie rc.local verwenden möchten, muß diese Datei in /etc/rc.d abgelegt werden. Obwohl die Datei rc.local kaum Aktionen auslöst, ist sie in den meisten Systemen enthalten. Wenn beim Booten des Systems der serielle Port bestimmte Aufgaben wahrnehmen muß, können Sie in /etc/rc.d auch die Konfigurationsdatei rc.serial ablegen.

Folgende Ereignisse laufen nacheinander ab:

  • Der Kernel sucht an verschiedenen Stellen nach init und führt das init-Programm aus, das er zuerst findet.

  • init führt /etc/rc.d/rc.sysinit aus.

  • rc.sysinit kümmert sich um die meisten Bootloader-Prozesse und führt dann rc.serial aus (falls vorhanden).

  • init führt alle Skripten für den Standard-Runlevel aus.

  • init führt rc.local aus.

Der Standard-Runlevel wird in /etc/inittab festgelegt. Dort sollte in einer der ersten Zeilen etwa folgendes stehen:

id:3:initdefault:
        

Wie Sie sehen, ist in der zweiten Spalte der Standard-Runlevel auf 3 eingestellt. Sie können /etc/inittab von Hand bearbeiten und einen anderen Wert als 3 eintragen. Vorsicht bei Änderungen an inittab. Falls die Datei nicht mehr funktionsfähig ist, können Sie sie reparieren, indem Sie einen Neustart einleiten und folgendes eingeben:

LILO boot:  linux single
        

Damit sollte es Ihnen gelingen, den Computer im Einzelbenutzermodus zu starten und in inittab wieder die vorherigen Werte einzutragen.

Wie führt init nun die richtigen Skripten aus? Wenn Sie im Verzeichnis rc3.d ls -l eingeben, wird folgendes angezeigt:

lrwxrwxrwx 1 root root 17 3:11 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 3:11 S30syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 14 3:32 S40cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 3:11 S50inet -> ../init.d/inet
lrwxrwxrwx 1 root root 13 3:11 S60nfs -> ../init.d/nfs
lrwxrwxrwx 1 root root 15 3:11 S70nfsfs -> ../init.d/nfsfs
lrwxrwxrwx 1 root root 18 3:11 S90lpd -> ../init.d/lpd.init
lrwxrwxrwx 1 root root 11 3:11 S99local -> ../rc.local
        

Es fällt Ihnen sicher auf, daß es in diesem Verzeichnis keine "echten" Dateien gibt. Alle Einträge sind Verweise auf eines der Skripten im Verzeichnis init.d. Außerdem steht am Beginn der Verweisnamen ein "S" und danach eine Zahl. Das "S" bedeutet, daß dieses Skript gestartet werden soll. Ein "K" würde bedeuten, daß es gestoppt werden soll. Die Zahl im Dateinamen dient nur der Festlegung einer Reihenfolge. Init startet die Dienste entsprechend ihrer Reihenfolge. Sie können Zahlen mehrfach verwenden, was allerdings zu Verwechslungen führen kann. Eine aus zwei Ziffern bestehende Zahl in Verbindung mit einem großen "S" oder "K" reicht aus, um die von Ihnen benötigten Dienste zu starten oder zu stoppen.

Wie startet und stoppt init Dienste? Ganz einfach: Die Skripten sind so geschrieben, daß ihnen ein Argument" start" bzw. "stop" übergeben werden kann. Sie können diese Skripten sogar mit einem Befehl wie den folgendem manuell ausführen:
/etc/rc.d/init.d/httpd stop
          
Dadurch wird der httpd -Server gestoppt. init liest den Namen ein. Beginnt er mit einem "K," ruft init das Skript mit dem Argument " stop" auf. Bei einem "S" ruft init das Skript mit dem Argument "start " auf.

Warum gibt es verschiedene Runlevels? Manche Systemadministratoren möchten Computer ohne großen Aufwand für verschiedene Zwecke nutzen. Ein "Server"-Runlevel könnte z.B. nur httpd, sendmail, Netzwerkunterstützung usw. ausführen. Weiterhin könnte ein "User"-Runlevel gdm, Netzwerkunterstützung usw. ausführen.

Init-Runlevels

Im allgemeinen wird Red Hat Linux mit Runlevel 3 betrieben - dem uneingeschränkten Mehrbenutzermodus. Folgende Runlevels sind in Red Hat Linux definiert:

  • 0 - Systemhalt

  • 1 - Einzelbenutzermodus

  • 2 - Mehrbenutzermodus ohne NFS

  • 3 - Uneingeschränkter Mehrbenutzermodus

  • 4 - Nicht benutzt

  • 5 - Uneingeschränkter Mehrbenutzermodus (mit X-basiertem Anmeldebildschirm)

  • 6 - Neustart

Booten Sie im Einzelbenutzermodus durch Eingabe von linux single am LILO Boot-Prompt, wenn Ihr Computer aufgrund einer beschädigten Datei /etc/inittab nicht booten kann oder wenn Sie sich nicht anmelden können, weil die Datei /etc/passwd beschädigt ist oder Sie Ihr Paßwort vergessen haben. Es wird ein sehr einfaches System gestartet, bei dem Ihnen eine Shell angeboten wird, mit der Sie Reparaturen durchführen können.

Initscript-Dienstprogramme

Das Dienstprogramm chkconfig ist ein einfaches Befehlszeilentool für die Pflege der /etc/rc.d -Verzeichnishierarchie. Es erspart den Systemadministratoren, die zahlreichen symbolischen Links in /etc/rc.d direkt bearbeiten zu müssen.

Außerdem gibt es das Dienstprogramm ntsysv. Im Gegensatz zur befehlszeilenorientierten Oberfläche von chkconfig wird hier eine bildschirmorientierte Oberfläche verwendet.

Weitere Informationen finden Sie in den man-Seiten zu chkconfig und ntsysv.

Ausführen von Programmen beim Systemstart

Die Datei /etc/rc.d/rc.local wird beim Systemstart ausgeführt, nachdem alle anderen Initialisierungen abgeschlossen sind, sowie bei jedem Wechsel des Runlevels. Dieser Datei können Sie zusätzliche Initialisierungsbefehle hinzufügen. Zum Beispiel könnten Sie zusätzliche Dämonen starten oder einen Drucker initialisieren. Wenn Sie zusätzlich einen seriellen Port einrichten müssen, können Sie die Datei /etc/rc.d/rc.serial bearbeiten. Beim Systemstart wird der Port dann automatisch eingerichtet.

Die Standarddatei /etc/rc.d/rc.local erstellt nur eine einfache Meldung beim Booten, die Ihre Kernel-Version und den Computertyp ausgibt.

Herunterfahren

Um Red Hat Linux herunterzufahren, geben Sie den Befehl shutdown ein. In der man-Seite zu shutdown finden Sie alle Einzelheiten. Die zwei am häufigsten verwendeten Befehlsvarianten sind:

shutdown -h now
shutdown -r now
        

Beide Varianten fahren das System ordnungsgemäß herunter. Bei Verwendung der Option -h wird das System nach dem Herunterfahren angehalten, bei Verwendung der Option -r wird das System nach dem Herunterfahren neu gestartet.

Obwohl die Befehle reboot und halt mittlerweile so "intelligent" sind, daß diese shutdown aufrufen, wenn sie in den Runlevels 1-5 ausgeführt werden, sollten Sie sich diese beiden Befehle nicht angewöhnen, da nicht alle Linux-ähnlichen Betriebssysteme über dieses Leistungsmerkmal verfügen.

 

 


 
© 2001 Red Hat, Inc. All rights reserved.
About Red Hat  :  Legal statement  :  Privacy statement  :  Y2K statement  :  Contact Red Hat