Der Bootprozess, Init und Shutdown

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

Interne Abläufe beim i386-Bootprozess

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 im schreibgeschützten 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 Prozess.

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, dass 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.

Beim Booten von Linux bootet LILO zuerst den Kernel, bei dem es sich um eine vmlinuz-Datei (plus Versionsnummer, z.B. vmlinuz-2.2.15-xx) handelt, die sich im Verzeichnis /boot befindet. Dann übernimmt der Kernel den weiteren Bootprozess.

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 Bootprozess.

Init startet alle Prozesse Ihres Linux-System (und wird gleichzeitig zum Elternteil bzw. Großelternteil dieser Prozesse). Zuerst wird /etc/rc.d/rc.sysinit ausgeführt, wodurch Ihr Pfad eingestellt und Swapping gestartet wird, die Dateisysteme überprüft werden usw. rc.sysinit schafft alle Voraussetzungen, die für Ihr System zum Zeitpunkt der Systeminitialisierung erfüllt sein müssen. In einem vernetzten System verwendet rc.sysinit beispielsweise die Informationen in den Dateien /etc/sysconfig/network und /etc/sysconfig/clock, um den Netzwerkprozess und die Uhr zu initialisieren. Außerdem wird rc.serial ausgeführt, falls Sie über serielle Port-Prozesse verfügen, die initialisiert werden müssen.

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 das Standard-Runlevel fest. Diese Datei legt fest, dass /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.

Sobald sich das Runlevel ändert, startet und stoppt /etc/rc.d/rc die 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-Skripten (ihr Dateiname beginnt mit einem K). Dann initialisiert es alle start-Skripten (ihr Dateiname beginnt mit einem S) in dem geeigneten Runlevel-Verzeichnis (so dass alle Dienste und Anwendungen korrekt gestartet werden).

Beispiel für Runlevel 5: rc sucht im Verzeichnis /etc/rc.d/rc5.d und stellt fest, dass 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, dhcpd, ypbind, autofs, keytable, sendmail, gpm und sound. Und so beginnt der ganze Vorgang erneut.

Die Datei /etc/inittab erzeugt mit fork einen Terminalprozess 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, Runlevels 0 und 6 erhalten keine virtuellen Konsolen).

In Runlevel 5 führt /etc/inittab außerdem ein Skript mit dem Namen /etc/X11/prefdm aus. Das Skript prefdm führt den bevorzugten X-Displaymanager aus (gdm, falls Sie GNOME ausführen, kdm, falls Sie KDE ausführen oder xdm, falls Sie AnotherLevel ausführen), basierend auf dem Inhalt des Verzeichnisses /etc/sysconfig/desktop.

Außerdem beschreibt /etc/inittab, wie das System Strg-Alt-Entf in einen Befehl wie /sbin/shutdown -t3 -r now übersetzen soll. 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/apmd

  • /etc/sysconfig/clock

  • /etc/sysconfig/harddisks

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

  • /etc/sysconfig/init

  • /etc/sysconfig/keyboard

  • /etc/sysconfig/mouse

  • /etc/sysconfig/network

  • /etc/sysconfig/pcmcia

  • /etc/sysconfig/sendmail

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

Es folgt eine Beschreibung der einzelnen Dateien.

/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/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 — zeigt an, dass die Uhr auf UTC eingestellt wurde.

    • ARC — (bei Alpha-basierten Systemen) zeigt nur an, dass der 42-Jahre-Zeitoffset der ARC-Konsole wirksam ist.

In neueren Versionen werden nur noch die folgenden Einstellungen verwendet:

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

    • true (wahr) — zeigt an, dass die Uhr auf UTC eingestellt ist. Jeder andere Wert stellt die Uhr auf lokale Zeit.

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

    • true (wahr) — (nur bei Alpha-basierten Systemen) zeigt an, dass der 42-Jahre-Zeitoffset der ARC-Konsole wirksam ist. Jeder andere Wert stellt die Uhr auf normale Unix-Epoche (nur bei Alpha-Systemen).

  • ZONE="Dateiname" — zeigt der Zone-Datei unter /usr/share/zoneinfo an, dass /etc/localtime eine Kopie von beispielsweise folgender Datei ist:

    ZONE="America/New York"

/etc/sysconfig/desktop

Die Datei /etc/sysconfig/desktop legt fest, welcher Desktop-Manager ausgeführt werden soll.

/etc/sysconfig/harddisks

Die Datei /etc/sysconfig/harddisks ermöglicht es Ihnen, Ihre Festplatte(n) abzustimmen.

Folgende Werte können verwendet werden:

  • USE_DMA=1, der Wert 1 aktiviert DMA. Bei einigen Chipsätzen und Festplattenkombinationen kann dies jedoch zu Datenverlusten führen.

  • Multiple_IO=16, die Einstellung 16 lässt mehrere Sektoren pro E/A-Interrupt zu. Ist diese Funktion aktiviert, wird der Verwaltungsaufwand des Betriebssystems um 30-50 % reduziert. Bei der Verwendung nur äußerst vorsichtig vorgehen.

  • EIDE_32BIT=3, aktiviert (E)IDE 32-Bit-E/A-Unterstützung für eine Schnittstellenkarte.

  • LOOKAHEAD=1, aktiviert Lookahead-Lesezugriffe auf das Laufwerk.

  • EXTRA_PARAMS=, ermöglicht das Hinzufügen von zusätzlichen Parametern.

/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. Wenn Sie diese Datei bearbeiten, kann es passieren, dass manche Geräte plötzlich als hinzugefügt oder entfernt angezeigt werden.

/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 erzeugt eine neue Bildschirmdarstellung beim Systemstart (verglichen mit Red Hat Linux 6.0).

    • BOOTUP=verbose erzeugt eine Bildschirmdarstellung im herkömmlichen Stil.

    • Alle übrigen Werte erzeugen eine neue Bildschirmdarstellung 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.

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

    • yes — Aktiviert die Key-Überprüfung für den interaktiven Modus.

    • no — Deaktiviert die Key-Überprüfung für den interaktiven Modus.

/etc/sysconfig/i18n

Die Datei /etc/sysconfig/i18n stellt die Standardsprache ein etc.

/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"

  • KEYBOARDTYPE=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/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 — Es sollen drei Maustasten emuliert werden.

    • no — Die Maus verfügt bereits über drei Maustasten.

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

/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 — Das Netzwerk soll konfiguriert werden.

    • no — Das Netzwerk soll nicht konfiguriert werden.

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

    AnmerkungBitte beachten
     

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

  • 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 — Die PCMCIA-Unterstützung soll aktiviert werden.

    • no — Die PCMCIA-Unterstützung soll nicht aktiviert werden.

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

    • i82365 — Der Computer verfügt über einen Chipsatz mit i82365-PCMCIA-Steckplatz.

    • tcic — Der Computer verfügt über einen Chipsatz mit tcic-PCMCIA-Steckplatz.

  • 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/sendmail

Die Datei /etc/sysconfig/sendmail ermöglicht das Versenden von Nachrichten an einen oder mehrere Empfänger, wobei die Nachrichten 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, dass Nachrichten zurückgekommen sind.

Folgende Werte können verwendet werden:

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

    • yesSendmail soll konfiguriert werden, um Port 25 auf eingehende Mails abzufragen. yes bedeutet -bd.

    • noSendmail soll nicht dafür konfiguriert werden, Port 25 auf eingehende Mails abzufragen.

  • 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/soundcard

Die Datei /etc/sysconfig/soundcard wird von sndconfig erstellt und darf nicht verändert werden. Dies hat nur den Zweck, dass 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

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 nur für ältere Systeme gedacht — in zukünftigen Versionen werden sie vermutlich wegfallen, daher sollten derzeit nur /sbin/ifup und /sbin/ifdown verwendet werden.

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 in einer "Alias"- (oder einer 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.

Folgende Werte sind gemeinsame Werte:

  • 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 soll beim Systemstart aktiviert werden.

    • no — Dieses Gerät soll beim Systemstart nicht aktiviert werden.

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

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

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

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

    • none — Es soll kein Protokoll beim Systemstart verwendet werden.

    • bootp — Das BOOTP-Protokoll soll verwendet werden.

    • dhcp — Das DHCP-Protokoll soll verwendet werden.

Folgende Werte sind in allen SLIP-Dateien enthalten:

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

    • yes — Dieses Gerät soll jederzeit aktiv bleiben, selbst wenn es nach einem Auflegen des Modems deaktiviert wurde.

    • no — Dieses Gerät soll nicht jederzeit aktiv sein.

  • 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 — Beim Erstellen/Bearbeiten des Skripts für diese Schnittstelle sollen standardmäßige Abbruch-Strings eingefügt werden.

    • no — Beim Erstellen/Bearbeiten des Skripts für diese Schnittstelle sollen keine standardmäßigen Abbruch-Strings eingefügt werden.

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

Diese Datei ist ein Chat-Skript für SLIP-Verbindungen und dient dazu, die Verbindung herzustellen. Bei SLIP-Geräten erzeugt das Chat-Skript ein DIP-Skript.

/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, von diesem Gerät abhängende Routes und Alias-Namen für dieses Gerät hervorzurufen und richtet den Hostnamen ein, falls er noch nicht eingerichtet wurde — außerdem kann für das IP-Protokoll dieses Gerätes ein Hostname gefunden werden. ifup-post sendet SIGIO an alle Programme, die die Meldung von Netzwerkereignissen angefordert haben.

Diese Datei kann bei Bedarf erweitert werden, um die Konfiguration des Namensdienstes vorzunehmen, freie Skripten aufzurufen u.v.m.

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, dass 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 ein anderes 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, muss 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 muss, können Sie in /etc/rc.d auch die Konfigurationsdatei rc.serial ablegen.

Folgende Ereignisse laufen nacheinander ab:

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 möglich sein, im Einzelbenutzermodus zu booten, so dass Sie inittab noch einmal bearbeiten und wieder auf den früheren Wert einstellen können.

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, dass 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, dass dieses Skript gestartet werden soll. Ein "K" würde bedeuten, dass 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, dass ihnen ein Argument" start" bzw. "stop" übergeben werden kann. Sie können diese Skripten sogar mit einem Befehl wie dem folgenden 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 arbeitet Red Hat Linux in Runlevel 3 — d.h. im vollständigen Mehrbenutzermodus. Folgende Runlevels sind in Red Hat Linux definiert:

  • 0 — Halt

  • 1 — Einzelbenutzermodus

  • 2 — Mehrbenutzermodus, ohne Netzwerk

  • 3 — Vollständiger Mehrbenutzermodus

  • 4 — Nicht verwendet

  • 5 — Vollständiger Mehrbenutzermodus (mit einem X-basierten Anmeldebildschirm)

  • 6 — Reboot

Wenn sich Ihr Computer aufgrund einer fehlerhaften Datei /etc/inittab nicht mehr booten lässt, oder wenn Sie sich nicht mehr anmelden können, weil /etc/passwd beschädigt ist oder weil Sie Ihr Passwort vergessen haben, dann booten Sie Ihren Computer im Einzelbenutzermodus, indem Sie am LILO-Boot-Prompt linux single eingeben. 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 hierzu finden Sie in Abschnitt namens Zugriffskontrolle auf Dienste oder den man-Seiten 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, dass 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.