![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
von Andrea Müller
Viel bekommt man nicht mit, wenn Linux hochfährt. Zu schnell huschen die Meldungen über den Bildschirm, SuSE verdeckt sie mit einem blauen Fortschrittsbalken, und auch wer sie mit [F2] einblendet, wird nicht unbedingt schlau draus: Grund genug, den Boot-Vorgang von Linux einmal in Zeitlupe zu verfolgen. Das ist nicht schwer: Linux zeichnet in Log-Dateien auf, was geschieht (siehe Tipp). Gesteuert wird der Vorgang von einem Stapel Textskripte, die Sie in jedem Editor anschauen können.
Nachdem der Boot-Manager Grub den Linux-Kernel geladen hat, geht es los: Die ersten fünf bis zehn Sekunden gehören allein dem Kernel. Er überprüft die Hardware und initialisiert die wichtigsten Treiber. Um zu sehen, welche Hardware der Kernel erkannt hat, geben Sie in einer KDE-Konsole dmesg | less ein. Dort blättern Sie mit [Bild auf] und [Bild ab] durch die Kernel-Meldungen. In den kryptischen Zeilen entdecken Sie oft Altbekanntes, wie etwa das Modell der eingebauten Festplatte oder den CPU-Typ. Ein Beispiel:
Detected 350.803 MHz processor. CPU: Intel Pentium II (Deschutes) stepping 02 hda: WDC WD800JB-00CRA1, ATA DISK drive
Als CPU hat der Kernel korrekt einen Pentium II mit 350 MHz erkannt, und auch die Festplatte (hda) unseres Testrechners ist für Linux keine Unbekannte.
Im nächsten Schritt lädt der Kernel die initrd, die "initial ramdisk". Das ist eine Art temporäre Festplatte im Arbeitsspeicher mit Treibern und Programmen. Damit der Kernel unter SuSE Linux die mit im ReiserFS-Dateisystem formatierte Systempartition mounten kann, stecken beispielsweise in der initrd der ReiserFS-Treiber und das zum Laden nötige Programm insmod.
Jetzt kann's losgehen: Hardware gefunden, Systempartition gemountet -- Zeit fürs erste Programm. Der erste Prozess heißt /sbin/init. Wenn Sie den Befehl pstree in der Shell eingeben, sehen Sie, weshalb man init auch Mutterprozess nennt (Abbildung 1): Alle laufenden Anwendungen haben ihren Ursprung in diesem Programm.
Was init machen soll, erfährt es aus der Datei /etc/inittab. Als erstes ruft es ein Skript zur Systeminitialisierung auf, das einige grundlegende Aufgaben erledigt: /etc/rc.d/rc.sysinit unter Red Hat Linux und /etc/init.d/boot unter SuSE Linux. Das alles können Sie am Bildschirm mitverfolgen:
Setting clock (localtime) Mit Sep 17 19:39:30 CEST 2003: succeeded Setting default font (latarcyrheb-sun16): succeeded Setting hostname chariot.localdomain: succeeded Activating swap partitions: succeeded
Jeder ausgeführte Befehl produziert eine Zeile auf dem Bildschirm. Das succeeded (Red Hat) oder done (SuSE) am Zeilenende meldet, dass die Aktion ohne Fehler abgelaufen ist. In unserem Beispiel wird zuerst die Uhrzeit aus dem BIOS des Rechners ausgelesen und als Systemzeit gesetzt. Danach lädt init die standardmäßig verwendete Schriftart für den Textmodus und setzt den Rechnernamen (chariot.localdomain). Schließlich wird noch die Swap-Partition aktiviert, damit Sie nicht in Bedrängnis kommen, wenn Ihr Arbeitsspeicher knapp wird. Eventuell begegnet Ihnen auch einmal die Meldung:
Checking filesystem ...
gefolgt von einem Fortschrittsbalken. Das ist kein Grund zur Besorgnis: Ab und zu überprüft Linux mit dem Programm fsck die Dateisysteme auf Fehler. Das findet entweder nach einer festgelegten Zeitspanne oder nach einer bestimmten Anzahl von Neustarts statt.
Wie es danach weitergeht, bestimmt wieder die inittab. Die Zahl in der mit id beginnenden Zeile in /etc/inittab definiert den Standard-Runlevel. So nennt man unter Linux die verschiedenen Betriebszustände des Systems. Tabelle 1 bietet eine Übersicht, wofür die einzelnen Runlevel stehen. Normalerweise landen Sie nach dem Start direkt auf der grafischen Oberfläche, d. h. in Runlevel 5.
| Tabelle 1: Die Runlevel | |
| Runlevel | Systemstatus |
|---|---|
| 0 | System wird angehalten (halt) |
| 1 | Wartungsmodus (Single User), nur der Administrator kann arbeiten |
| 2 | Mehrbenutzerbetrieb ohne Netzwerk |
| 3 | Mehrbenutzerbetrieb mit Netzwerk |
| 4 | unbenutzt |
| 5 | Mehrbenutzerbetrieb mit Netzwerk und grafischer Oberfläche |
| 6 | Neustart (reboot) |
Zu jedem Runlevel existiert ein Verzeichnis rcx.d. Das x ist eine Zahl von 0 bis 6, die für den Runlevel steht. Was beispielsweise beim Booten in Runlevel 5 mit grafischer Oberfläche geschieht, hängt von den Dateien im Verzeichnis rc5.d ab (siehe Abbildung 2).
Unter SuSE Linux werfen Sie mit
ls -l /etc/init.d/rc5.d
selbst einen Blick hinein, Red-Hat-Nutzer verwenden
ls -l /etc/rc5.d/
Diese Verzeichnisse sind vergleichbar mit dem Autostart-Ordner unter Windows. Hier liegen Links, d. h. Verknüpfungen, zu den Startskripten der Systemdienste.
Ein Dienst unterscheidet sich von normalen Programmen dadurch, dass er im Hintergrund läuft und darauf wartet, dass eine andere Anwendung ihn kontaktiert. Ein Beispiel dafür ist der Druckerdienst Cups. Haben Sie einen Drucker konfiguriert und geben in einer Anwendung wie Gimp den Befehl, eine Datei auszudrucken, leitet diese den Auftrag an Cups weiter. Er bringt dann die Grafik sicher zu Papier und kümmert sich bei mehreren Druckaufträgen darum, dass die Warteschlange in der richtigen Reihenfolge gedruckt wird.
Da der Aufruf eines Dienstes ganz schön kompliziert sein kann, bringen die Distributionen Start- oder besser Steuerungsskripte für jeden Dienst mit, die die Sache vereinfachen. Damit können Sie jeden Dienst auf die gleiche Weise starten, stoppen oder neu starten, ohne sich unzählige Spezialkommandos merken zu müssen (siehe Kasten "Systemdienste manuell starten").
Um einen Dienst automatisch beim Hochfahren (oder beim Wechsel in einen anderen Runlevel) zu starten oder zu stoppen, muss im passenden rc-Verzeichnis ein Link auf sein Startskript existieren, der mit S (für starten) oder K (für kill=töten), einer Zahl und dem Namen des Dienstes benannt ist. Anhand des S oder K weiß das Startskript, ob es den Dienst starten oder stoppen soll, die Zahlen sorgen dafür, dass alles in der richtigen Reihenfolge abläuft.
Beim Booten arbeitet Linux nun die Links in den rcx.d-Verzeichnissen ab. Auch hier erscheint für jede Aktion eine Bildschirmmeldung, zum Beispiel:
Starten von syslog succeeded Starting keytable succeeded Netzwerkparameter einstellen: succeeded Loopback Interface hochfahren: succeeded Interface eth0 hochfahren: succeeded Starten von crond succeeded Starting cupsd succeeded
syslogd ist der Protokolldienst, der alle wichtigen Systemmeldungen in die Datei /var/log/messages schreibt. keytable sorgt dafür, dass die deutsche Tastaturtabelle geladen wird und Sie das z und das y, die auf einer amerikanischen Tastatur vertauscht sind, an der richtigen Stelle finden. Die nächsten drei Einträge kümmern sich um das Netzwerk. Das so genannte Loopback Interface (127.0.0.1) ist immer vorhanden, auch wenn Sie gar keine Netzwerkkarte haben. Mit eth0 wird schließlich noch die Netzwerkkarte unseres Testrechners konfiguriert. Linux lädt den passenden Treiber und weist ihr eine IP-Adresse zu. Die nächste Boot-Meldung teilt mit, dass der cron-Dienst gestartet wurde, der immer wiederkehrende Aufgaben, wie das Aufräumen im temporären Verzeichnis oder das Komprimieren der Log-Dateien erledigt. Die letzte Zeile protokolliert den Start des Druckerdienstes cupsd.
Welche Aufgabe ein bestimmter Dienst erledigt, erfahren Sie im Runlevel-Editor und in Tabelle 2. Bei Red Hat Linux starten Sie ihn über Servereinstellungen / Dienste (Systemeinstellungen / Servereinstellungen / Dienste bei Red Hat 9.0) des K-Menüs, SuSE-Linux-Anwender sind in YaST bei System / Runlevel-Editor an der richtigen Stelle. Die angekreuzten Dienste starten bei jedem Boot-Vorgang. Markieren Sie einen Eintrag, blenden die Programme eine kurze (leider englische) Erklärung dieses Dienstes ein (Abbildung 3 und 4).
In den meisten Fällen sind die Voreinstellungen, welche Dienste laufen, vernünftig gewählt. Auch dass auf Ihrem System ein Mailserver läuft (postfix bei SuSE, sendmail bei Red Hat Linux) hat einen guten Grund: Oftmals schickt das System Mails an den Administrator, wenn etwas nicht richtig funktioniert. Gedanken um die Sicherheit müssen Sie sich nicht machen. Die Mailserver kümmern sich nur um den lokalen Postversand und sind vom Internet aus nicht erreichbar. Kein Fremder kann Ihren Mailserver nutzen, um über ihn unerwünschte Werbung für Haar- oder sonstige Wuchsmittel zu verschicken.
Läuft beim Systemstart etwas schief, erscheint statt succeeded oder done ein failed (gescheitert) hinter der Meldung. Oft ist die Ursache trivialer Natur: Erhält Ihre Netzwerkkarte beispielsweise eine IP-Adresse über DHCP und läuft der Rechner mit dem DHCP-Server oder der Hardware-Router nicht, während Sie den PC einschalten, kann Linux die Netzwerkkarte nicht initialisieren. Zur Fehlersuche oder um einen Dienst nachträglich zu starten, können Sie das zugehörige Skript von der Kommandozeile aus aufrufen (siehe Kasten "Systemdienste manuell starten").
Als letzten Schritt beim Booten startet Linux die grafische Anmeldemaske und übergibt Ihnen die Kontrolle über das System -- so lange, bis Sie als root in der Shell den Befehl shutdown -h now (sofort herunterfahren) oder reboot (neustart) eingeben oder sich über die grafische Oberfläche abmelden. Dann übernimmt wieder init das Kommando und sorgt dafür, dass alles sauber beendet wird. (eba)
| Systemdienste manuell starten |
|
Bei der Fehlersuche ist der nachträgliche Start eines Dienstes eine große Hilfe. Sie erhalten meistens eine ausführliche Fehlermeldung, mit der Sie sich an einen Support-Mitarbeiter oder eine Suchmaschine wenden können. Zum nachträglichen Aufruf eines Startskripts loggen Sie sich im Terminal mit su und Ihrem root-Passwort als Administrator ein. Um nun beispielsweise das Netzwerk neu zu starten, geben Sie /etc/init.d/network restart ein. Der erste Teil des Befehls ruft das Skript network aus dem Verzeichnis /etc/init.d auf. Das restart ist die Aktion, die es ausführen soll. Jedes Skript kennt die Parameter start, stop und restart. Manche lassen sich auch mit einem angehängten status aufrufen. Damit beeinflussen Sie den Dienst nicht: Die Ausgabe informiert Sie nur, ob der Dienst gerade läuft oder nicht. |
| Tipp |
|
Wollen Sie die Boot-Meldungen in Ruhe durchforsten, lesen Sie sie ganz bequem im Text-Editor oder der Dateivorschau im Konqueror. Unter Red Hat Linux landen alle Bildschirmmeldungen in der Datei /var/log/boot.log, in die Sie allerdings nur als Administrator hineinschauen dürfen. SuSE Linux speichert die Ausgaben -- leider in einer reichlich kryptischen Syntax -- in /var/log/boot.msg. |
| Tabelle 2: Dienste und Ihre Aufgaben | ||||
| Beschreibung | Automatischer Start unter SuSE Linux | Name unter SuSE Linux | Automatischer Start unter Red Hat Linux | Name unter Red Hat Linux |
|---|---|---|---|---|
| Firewall | x | SuSEFirewall2_init/SuSEFirewall_setup (1)/SuSEFirewall2_final | x | iptables |
| Energieverwaltung für Rechner mit ACPI-Bios: Lädt Module zur Batteriekontrolle und kann auf Ereignisse reagieren, wie z.B. das Schließen des Deckels bei einem Notebook. | x (2) | acpid | - | / |
| Alsa-Soundsystem: Lädt das Soundkarten-Modul und stellt gespeicherte Einstellungen wieder her. | x | alsasound | - | / (3) |
| Kümmert sich darum, das regelmäßige Aufgaben (cron-jobs) auch dann abgearbeitet werden, wenn der Computer zur festgelegten Zeit nicht läuft | - | / | x | anacron |
| Energieverwaltung für Rechner mit APM-BIOS | - | / | x (2) | apmd |
| Dienst, der zeitgesteuerte Aufgaben einmalig abarbeitet | x (4) | atd | x | atd |
| Automounter - automatisches Mounten von Dateisystemen | - | autofs | x | autofs |
| Dienst für zeitgesteuerte, in bestimmten Abständen (stündlich, täglich, wöchentlich, monatlich) wiederkehrende Aufgaben, z. B. das Komprimieren der Log-Dateien | x | cron | x | crond |
| Druckerdienst | x | cups | x | lpd (5) |
| Grafikausgabe für den Textmodus | x | fbset | - | / |
| Mausunterstützung für den Textmodus | - (6) | gpm | x | gpm |
| Automatisches Einbinden und Konfigurieren von Hotplug-Geräten, z. B. USB-Kameras oder Speichermodule | x | hotplug | - | / |
| Hardware-Erkennung | x | hwscan | x | kudzu |
| ISDN-Konfiguration, z. B. Laden der passenden Karten-Treiber | x (2) | isdn | x | isdn |
| Tastatur-Einstellungen, Laden des deutschen Tastaturlayouts | x | kbd | x | keytable |
| Netzwerk starten | x | network | x | network |
| NFS-Client zum Mounten von per NFS freigegebenen Verzeichnissen über das Netzwerk | - | nfs | x | netfs (7) |
| NFS-Server, gibt Verzeichnisse für andere Rechner im Netzwerk frei | - | nfsserver | - | nfs |
| Nameserver-Cache für die Zwischenspeicherung von Host-Namen und DNS-Einträgen | x | nscd | - | nscd |
| PCMCIA-Karten konfigurieren | - (2) | / (8) | x | pcmcia |
| Portmapper, notwendig für NFS (Network File System). Unter Red Hat benötigt fam den portmapper | x | portmap | x | portmap |
| Mailserver | x | postfix | x | sendmail |
| Zufallszahlengenerator | x | random | x | random |
| Zuordnung von Raw Devices (Roh-Geräten) zu blockorientierten Geräten, etwa Festplattenpartitionen. Einige Anwendungen, wie z. B. die Oracle-Datenbank benötigen Raw Devices. | x | raw | x | rawdevices |
| Dienst, der den Zugriff normaler Benutzer auf Kameras, Brenner usw. ermöglicht | x | resmgr | - | / |
| Stellt regelmäßig eine Verbindung zum Red Hat Network her und sucht dort nach verfügbaren Updates. | - | / | x | rhnsd |
| Der Authentifizierungsdienst für den lokalen Mailserver | - | saslauthd | - | saslauthd |
| Windows-Freigaben mounten | - | smbfs (9) | x | netfs (7) |
| SuSE Meta PPP Dienst für die Internet-Einwahl | x | smpppd | - | / |
| Grafikmodus auf Textkonsole 1 [Strg-Alt-F1] | x | splash | - | / |
| SSH-Server, der ein Einloggen auf dem System über das Netzwerk erlaubt | x | sshd | x | sshd |
| Protokolldienst, schreibt in die Log-Dateien unterhalb von /var/log | x | syslog | x | syslog |
| Grafischer Anmeldemanager | x | xdm | - (10) | / |
| Fontserver, ein Dienst, der die installierten Schriftarten verwaltet und sie grafischen Anwendungen zur Verfügung stellt | - | xfs | x | xfs |
| Ein oft als Internet-Super-Server bezeichneter Dienst, der andere Dienste, wie z. B. time, finger oder news bei einem Zugriff auf den entsprechenden Port startet. | - | xinetd | x (11) | xinetd |
| Dienst zur Zeitsynchronisierung über das Netzwerk | - | xntpd | - | ntpd |
| Dienst für die Benutzeranmeldung über NIS (Network Information System, auch als "gelbe Seiten" -- yellow pages bekannt). Die Anmeldeinformationen liegen nicht auf dem lokalen System, sondern auf einem zentralen NIS-Server. | - | ypbind | - | ypbind |
(1) sobald Sie die Firewall mit YaST konfigurieren
(2) abhängig von der gefundenen Hardware
(3) Red Hat Linux verwendet das Alsa-Sound-System nicht, wenn ein Kernel-Modul die eingebaute Soundkarte unterstützt
(4) nur bei SuSE Linux 8.2
(5) ab Red Hat 9.0 ebenfalls cups
(6) bei SuSE Linux 9.0 per Default aktiviert
(7) bindet über NFS, Samba und Netware freigegebene Ordner ein
(8) SuSE installiert das Paket nur, wenn PCMCIA-Hardware gefunden wird
(9) nur bei SuSE Linux 9.0
(10) Red Hat Linux startet die grafische Anmeldemaske über die Datei /etc/inittab
(11) Startet den Datei-Überwachungsmonitor fam. Nautilus benötigt ihn, um Änderungen in Verzeichnissen sofort zu aktualisieren (gelöschte oder verschobene Dateien sofort ausblenden)
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-01-25 16:52
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]