Inhaltsverzeichnis
Als Systemadministrator sollten Sie grob wissen, wie das Debian-System gestartet und konfiguriert wird. Obwohl die genauen Details in den Quelldateien der installierten Pakete und deren Dokumentation zu finden sind, ist dies für die meisten von uns ein bisschen viel.
Ich habe mein bestes gegeben, um einen schnellen Überblick über die wichtigsten Themen des Debian-Systems und dessen Konfiguration als Referenz für Sie bereitzustellen, basierend auf aktuellem und früherem Wissen von mir und anderen. Da das Debian-System sich ständig verändert, könnte sich die Situation teilweise verändert haben. Bevor Sie irgendwelche Änderungen an dem System vornehmen, sollten Sie die aktuellste Dokumentation der jeweiligen Pakete zu Rate ziehen.
![]() |
Warnung |
---|---|
This chapter is getting outdated since this is based on Debian 7.0
( |
Das Computer-System durchläuft verschiedene Phasen des Bootstrap-Prozesses vom Einschalten bis zur Bereitstellung des funktionalen Betriebssystems an den Benutzer.
Der Einfachheit halber beschränke ich meine Betrachtung auf die weit verbreitete PC-Plattform mit einer Standardinstallation.
Der typische Bootstrap-Prozess ist wie eine 4-stufige Rakete. Jede Stufe übergibt die Systemkontrolle an die jeweils nachfolgende Stufe:
Natürlich können diese unterschiedlich konfiguriert werden. Wenn Sie zum Beispiel Ihren eigenen Kernel kompilieren, werden Sie unter Umständen den Schritt mit dem Mini-Debian-System überspringen. Gehen Sie daher nicht davon aus, dass dies alles in Ihrem Fall zutrifft, solange Sie es nicht selbst überprüft haben.
![]() |
Anmerkung |
---|---|
Bei ungewöhnlichen Computer-Plattformen wie dem SUN- oder dem Macintosh-System könnten das BIOS im ROM und die Partitionen auf der Festplatte sich stark von dem hier beschriebenen unterscheiden (Abschnitt 9.5.2, „Konfiguration der Plattenpartitionen“). Bitte suchen Sie in solch einem Fall an anderer Stelle nach Plattform-spezifischer Dokumentation. |
Das BIOS ist die erste Stufe des Boot-Prozesses und wird durch das Einschalten des Rechners aufgerufen. Es liegt im Nur-Lese-Speicher (read only memory/ROM) und wird von einer speziellen Speicheradresse ausgeführt, auf die die CPU durch den Einschaltvorgang verwiesen wird.
Das BIOS führt die grundsätzliche Initialisierung der Hardware durch (POST: power on self test / Selbsttest nach dem Einschalten) und übergibt die Systemkontrolle an die nächste Stufe. Das BIOS wird üblicherweise mit der Hardware geliefert.
Im BIOS-Startbildschirm wird für gewöhnlich angezeigt, welche Taste(n) Sie drücken müssen, um das BIOS-Setup zu erreichen, in dem das Verhalten des BIOS konfiguriert werden kann. Typisch hierfür sind F1, F2, F10, Esc, Einfg und Entf. Wenn Ihr BIOS-Startbildschirm durch eine hübsche grafische Anzeige versteckt wird, müssen Sie eventuell eine oder mehrere Tasten wie z.B. Esc drücken, um diese Grafik auszublenden. Die hierzu benötigten Tasten sind je nach Hardware sehr unterschiedlich.
Die Hardware und die Reihenfolge des Codes, der durch das BIOS gestartet wird, kann über das BIOS-Setup ausgewählt werden. Typischerweise werden die ersten paar Sektoren des ersten gefundenen, vorgewählten Gerätes (Festplatte, Diskette, CD-ROM, …) in den Speicher geladen und dieser initiale Code wird dann ausgeführt. Das kann folgendes sein:
ein Bootloader-Code;
der Kernel-Code eines Ursprungs-Betriebssystems wie z.B. FreeDOS;
der Kernel-Code des Ziel-Betriebssystems, falls er in diesen kleinen Speicherbereich passt.
Gewöhnlich wird das System von der angegebenen Partition der primären Festplatte gestartet. Die ersten zwei Sektoren der Festplatte enthalten auf normalen PC-Systemen den Master Boot Record (MBR). Die Partitionsinformationen inklusive der Boot-Auswahl sind am Ende des MBR gespeichert. Der in der ersten Stufe vom BIOS ausgeführte Bootloader-Code liegt im Rest des MBR.
Der Bootloader ist die zweite Stufe des Boot-Prozesses und wird durch das BIOS gestartet. Er lädt das System-Kernel-Image und das initrd-Image in den Speicher und übergibt diesen die Kontrolle. Das initrd-Image ist ein Abbild des Wurzeldateisystems und seine Unterstützung hängt von dem verwendeten Bootloader ab.
Das Debian-System nutzt normalerweise den Linux-Kernel als Standard-System-Kernel. Das initrd-Image des aktuellen 2.6/3.x-Linux-Kernels ist technisch gesehen ein initramfs-Image (initial RAM filesystem). Das initramfs-Image ist ein mit gzip komprimiertes cpio-Archiv der Dateien im Wurzeldateisystem.
![]() |
Warnung |
---|---|
The above is no longer true with the new multi-segment initramfs. See Bug #790100. |
Eine Standardinstallation des Debian-Systems auf der PC-Plattform legt den ersten Teil des GRUB-Bootloaders (stage 1) im MBR ab. Es sind allerdings viele weitere Bootloader und Konfigurationsoptionen verfügbar.
Tabelle 3.1. Liste der Bootloader
Paket | Popcon | Größe | initrd | Bootloader | Beschreibung |
---|---|---|---|---|---|
grub-legacy | V:0, I:2 | 710 | Unterstützt | GRUB Legacy | Intelligenter Bootloader, der Festplattenpartitionen und Dateisysteme wie vfat, ext3 … unterstützt. |
grub-pc | V:35, I:879 | 542 | Unterstützt | GRUB 2 | Intelligenter Bootloader, der Festplattenpartitionen und Dateisysteme wie vfat, ext4 … unterstützt. (Debian-Standard) |
grub-rescue-pc | V:0, I:2 | 5226 | Unterstützt | GRUB 2 | Dies ist das boot-fähige Rettungs-Image von GRUB 2 (CD und Diskette) (PC/BIOS-Version). |
lilo | V:1, I:5 | 685 | Unterstützt | Lilo | Beruht auf den Sektorbereichen der Daten auf der Festplatte (alt). |
syslinux | V:7, I:67 | 294 | Unterstützt | Isolinux | Unterstützt das ISO9660-Dateisystem. Dies wird von Boot-CDs verwendet. |
syslinux | V:7, I:67 | 294 | Unterstützt | Syslinux | Unterstützt das MSDOS-Dateisystem FAT. Dies wird von Boot-Disketten verwendet. |
loadlin | V:0, I:1 | 82 | Unterstützt | Loadlin | Das gewünschte Betriebssystem wird aus dem laufenden FreeDOS-/MSDOS-System heraus gestartet. |
mbr | V:1, I:12 | 72 | Nicht unterstützt | MBR von Neil Turton | Dies ist freie Software, die den MSDOS-MBR ersetzt. Unterstützt nur Festplattenpartitionen. |
![]() |
Warnung |
---|---|
Spielen Sie nicht mit Bootloadern herum, ohne boot-fähige Rettungsmedien (CD
oder Diskette) zur Hand zu haben, die von Images im
|
Bei GRUB Legacy ist die Datei zur Konfiguration des Menüs unter
"/boot/grub/menu.lst
" abgelegt. Sie enthält zum Beispiel
Einträge wie den folgenden:
title Debian GNU/Linux root (hd0,2) kernel /vmlinuz root=/dev/hda3 ro initrd /initrd.img
Bei GRUB 2 ist die Datei zur Konfiguration des Menüs unter
"/boot/grub/grub.cfg
" gespeichert. Sie wird automatisch
durch "/usr/sbin/update-grub
" unter Verwendung von
Vorlagen aus "/etc/grub.d/*
" und Einstellungen aus
"/etc/default/grub
" erzeugt. Die Einträge sehen aus wie
folgt:
menuentry "Debian GNU/Linux" { set root=(hd0,3) linux /vmlinuz root=/dev/hda3 initrd /initrd.img }
Die GRUB-Parameter in diesen Beispielen haben folgende Bedeutungen:
Tabelle 3.2. Bedeutung der GRUB-Parameter
GRUB-Parameter | Bedeutung |
---|---|
root
|
Verwendung der dritten Partition auf der primären Festplatte, welche bei
GRUB Legacy über "(hd0,2) " angegeben wird und bei GRUB 2
über "(hd0,3) ".
|
kernel
|
Verwendung des Kernels unter "/vmlinuz " mit den
Parametern "root=/dev/hda3 ro "
|
initrd
|
Verwendung des initrd/initramfs-Images unter
"/initrd.img "
|
![]() |
Anmerkung |
---|---|
Der Wert der Partitionsnummer, wie er von GRUB Legacy verwendet wird, ist um 1 kleiner als der normal durch den Linux-Kernel und andere Werkzeuge genutzte. Das GRUB-2-Programm behebt dieses Problem. |
![]() |
Tipp |
---|---|
Die UUID-Kennung (lesen Sie dazu Abschnitt 9.5.3, „Zugriff auf Partitionen über die UUID-Kennung“) kann statt dem Gerätenamen
(z.B. " |
![]() |
Tipp |
---|---|
Bei der Nutzung von GRUB sind die
Kernel-Boot-Parameter in |
![]() |
Tipp |
---|---|
Sie können über einen Bootloader einen weiteren Bootloader starten, diese Technik nennt man Chain loading. |
Weitere Infos finden Sie unter "info grub
" und
grub-install(8).
Das Mini-Debian-System ist die dritte Stufe des Boot-Prozesses und wird durch den Bootloader gestartet. Es lässt den System-Kernel mit seinem eigenen Wurzeldateisystem im Speicher laufen. Dies ist ein optionaler, vorbereitender Schritt des Boot-Prozesses.
![]() |
Anmerkung |
---|---|
Der Begriff "Mini-Debian-System" wurde von dem Autor erfunden, um diese dritte Stufe des Boot-Prozesses in diesem Dokument zu beschreiben. Dieses System wird normalerweise initrd- oder initramfs-System genannt. Ein ähnliches System wird im Speicher auch durch den Debian Installer verwendet. |
Das "/init
"-Skript wird als erstes Programm in diesem
Wurzeldateisystem im Speicher ausgeführt. Es ist ein Shellskript, das den
Kernel im Userspace initialisiert und die Kontrolle an die nächste Stufe
übergibt. Dieses Mini-Debian-System bietet Flexibilität für den
Boot-Prozess, um zum Beispiel Kernel-Module vor dem Hauptteil des
Boot-Prozesses hinzuzufügen oder um das Wurzeldateisystem als
verschlüsseltes Dateisystem einzubinden.
Sie können diesen Teil des Boot-Prozesses unterbrechen, um eine root-Shell
zu bekommen, indem Sie "break=init
" usw. zu den
Kernel-Boot-Parametern hinzufügen. Informationen zu weiteren
Unterbrechungsmöglichkeiten finden Sie im
"/init
"-Skript. Diese Shell-Umgebung ist ausgeklügelt
genug, um eine gute Überprüfung der Hardware Ihrer Maschine zu ermöglichen.
Die verfügbaren Befehle in diesem Mini-Debian-System gehen auf ein GNU-Werkzeug namens busybox(1) zurück und werden auch hauptsächlich von diesem bereitgestellt.
![]() |
Achtung |
---|---|
Sie müssen die Option " |
Das normale Debian-System ist die vierte Stufe des Boot-Prozesses und wird von dem Mini-Debian-System gestartet. Der System-Kernel des Mini-Debian-Systems läuft in dieser Umgebung weiter. Das verwendete Wurzeldateisystem wird von dem im Arbeitsspeicher umgeschwenkt zu dem auf der echten Festplatte.
Das Programm init wird als erstes Programm mit
PID=1 ausgeführt und erledigt die eigentliche Hauptarbeit beim Booten, das
Starten verschiedener Programme. Der Standardpfad zum init-Programm ist
"/sbin/init
", aber er kann über einen
Kernel-Boot-Parameter wie "init=/pfad/zum/init-programm
"
auch geändert werden.
Das Standard-Init-Programm hat sich im Laufe der Zeit verändert:
Vor Squeeze
verwendete Debian das einfache SysV-artige Init.
Debian Wheezy
verbesserte das SysV-ähnliche Init durch
Sortierung der Boot-Reihenfolge mittels LSB-Header und parallelen Start der
Boot-Skripte.
Debian Jessie
schwenkt um auf systemd, ein ereignisbasiertes Init-System mit
paralleler Initialisierung.
![]() |
Tipp |
---|---|
Alle Boot-Mechanismen sind durch die Skripte
" |
![]() |
Tipp |
---|---|
Mittels " |
Tabelle 3.3. Liste von Boot-Hilfsprogrammen für das Debian-System
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
initscripts
|
V:870, I:992 | 207 | Skripte zur Initialisierung und zum Herunterfahren des Systems |
sysvinit-core
|
V:19, I:25 | 221 | System-V-ähnliche init(8)-Werkzeuge |
sysv-rc
|
V:870, I:992 | 122 123 | System-V-ähnlicher Mechanismus zum Wechsel des Runlevels |
sysvinit-utils
|
V:874, I:999 | 106 | System-V-ähnliche Werkzeuge (startpar(8), bootlogd(8), …) |
lsb-base
|
V:876, I:999 | 49 | Zur Linux Standard Base 3.2 konforme init-Skript-Funktionalität |
insserv
|
V:816, I:968 | 139 | Werkzeug, um die Boot-Reihenfolge unter Verwendung von LSB-konformen init.d-Skript-Abhängigkeiten zu organisieren |
systemd
|
V:577, I:664 | 8962 |
Ereignis-basierter
init(8)-Daemon
für gleichzeitige Ausführung (Alternative zu sysvinit )
|
uswsusp
|
V:5, I:15 | 493 | Werkzeuge, um das durch Linux bereitgestellte Userspace-Software-Suspend zu verwenden |
kexec-tools
|
V:1, I:7 | 258 | Werkzeug für kexec(8)-Neustarts (Warmstarts) |
bootchart
|
V:0, I:0 | 46 | Performance-Analyseprogramm für den Boot-Prozess |
bootchart-view
|
V:0, I:0 | 211 | Performance-Analyseprogramm für den Boot-Prozess (Visualisierung) |
mingetty
|
V:0, I:3 | 24 | getty(8) nur für die Konsole |
mgetty
|
V:0, I:2 | 289 | Intelligenter getty(8)-Ersatz für Modems |
![]() |
Tipp |
---|---|
Unter Debian Wiki: BootProcessSpeedup finden Sie aktuelle Tipps zur Beschleunigung des Boot-Prozesses. |
![]() |
Achtung |
---|---|
The current default Debian system doesn't use SysV-style init. Please read other resources for the modern systemd based init. See The Debian Administrator's Handbook |
Dieser Abschnitt beschreibt, wie das gute alte SysV-ähnliche init-Programm das System startet. Ihr Debian-System funktioniert nicht exakt genauso wie hier beschrieben, aber es ist ziemlich lehrreich, diese Grundlagen zu kennen, da das neuere init-System tendenziell ähnliche Funktionalitäten bieten wird.
Der SysV-ähnliche Boot-Prozess läuft grundsätzlich wie folgt ab:
Das Debian-System schaltet in den Runlevel
N (eigentlich kein Runlevel), um das System gemäß der Festlegung
in "/etc/inittab
" zu initialisieren.
Das Debian-System schaltet in den Runlevel S, um das System zwecks Vervollständigung der Hardware-Einrichtung etc. im Einzelbenutzer-Modus zu initialisieren.
Das Debian-System schaltet in einen der festgelegten Mehrbenutzer-Runlevel (2 bis 5), um die Systemdienste zu starten.
Der anfängliche Runlevel für den Mehrbenutzer-Modus wird über den
Kernel-Boot-Parameter "init=
" oder über die
"initdefault"-Zeile der "/etc/inittab
" festgelegt. Ein
Debian-System mit Standardkonfiguration startet im Runlevel 2.
Alle Skript-Dateien, die durch das init-System ausgeführt werden, sind in
dem Verzeichnis "/etc/init.d/
" abgelegt.
Unter
init(8),
inittab(5)
und "/usr/share/doc/sysv-rc/README.runlevels.gz
" finden
Sie detaillierte Informationen.
Jeder Runlevel nutzt ein Verzeichnis für seine Konfiguration und hat folgende spezielle Bedeutung:
Tabelle 3.4. Liste der Runlevel und Beschreibung ihrer Verwendung
Runlevel | Verzeichnis | Beschreibung der Runlevel-Verwendung |
---|---|---|
N
|
kein |
System-Start-Level (kein Runlevel; kein
"/etc/rcN.d/ "-Verzeichnis)
|
0
|
/etc/rc0.d/
|
Herunterfahren des Systems |
S
|
/etc/rcS.d/
|
Einzelbenutzer-Modus beim Start (Alias: "s ")
|
1
|
/etc/rc1.d/
|
Einzelbenutzer-Modus, wenn von Mehrbenutzer-Modus umgeschaltet wird |
2
|
/etc/rc2.d/
|
Mehrbenutzer-Modus |
3
|
/etc/rc3.d/
|
,, |
4
|
/etc/rc4.d/
|
,, |
5
|
/etc/rc5.d/
|
,, |
6
|
/etc/rc6.d/
|
Neustart des Systems (Reboot) |
7
|
/etc/rc7.d/
|
gültiger Mehrbenutzer-Modus, aber normalerweise nicht genutzt |
8
|
/etc/rc8.d/
|
,, |
9
|
/etc/rc9.d/
|
,, |
Sie können den Runlevel von der Konsole aus ändern, z.B. wie folgt auf Runlevel 4:
$ sudo telinit 4
![]() |
Achtung |
---|---|
Das Debian-System macht standardmäßig keine besonderen Unterschiede zwischen den Runlevel 2 bis 5. Der Systemadministrator des Debian-Systems kann dies jedoch ändern (d.h. Debian ist weder Red Hat Linux noch Solaris von Sun Microsystems oder HP-UX von Hewlett Packard oder AIX von IBM oder …) |
![]() |
Achtung |
---|---|
Das Debian-System erstellt keine Verzeichnisse für die Runlevel 7 bis 9 während der Installation. Traditionelle Unix-Varianten nutzen diese Runlevel nicht. |
Wenn der init(8)- oder telinit(8)-Befehl den Runlevel auf "<n>" ändert, führt das System grundsätzlich die Initialisierungsskripte wie folgt aus:
Die Skripte in "/etc/rc<n>.d/
", deren Namen mit
einem "K
" beginnen, werden in alphabetischer Reihenfolge
mit dem einfachen Argument "stop
" ausgeführt (Dienst
beenden, K steht für kill).
Die Skripte in "/etc/rc<n>.d/
", deren Namen mit
einem "S
" beginnen, werden in alphabetischer Reihenfolge
mit dem einfachen Argument "start
" ausgeführt (Dienst
starten).
Wenn Sie zum Beispiel die Links "S10sysklogd
" und
"S20exim4
" in einem Runlevel-Verzeichnis haben, würde
"S10sysklogd
" (als symbolischer Link auf
"../init.d/sysklogd
") vor "S20exim4
"
ausgeführt (was ein symbolischer Link auf
"../init.d/exim4
" ist).
Diese einfache, nacheinander ablaufende Initialisierung ist das klassische
System V-artige Boot-System und wurde bis
Debian Lenny
verwendet.
Das jetzige Debian-System ist darauf optimiert, die Initialisierungsskripte stattdessen gleichzeitig auszuführen.
Der insserv(8)-Befehl nutzt die LSB-konformen Paketabhängigkeitsinformationen und berechnet die Abhängigkeiten zwischen all diesen Skripten.
Lesen Sie dazu "/usr/share/doc/insserv/README.Debian
".
Die Paketabhängigkeitsinformationen, die im Kopf der init-Skripte abgelegt sind, stellen die Verfügbarkeit von benötigten Ressourcen sicher.
Weiteres finden Sie unter Linux Standard Base Core Specification 3.1, VII. System Initialization.
Hier die Ankündigung, dass die parallele Ausführung der init-Skripte jetzt standardmäßig aktiviert ist" (engl.)
![]() |
Warnung |
---|---|
Es ist nicht empfehlenswert, irgendwelche Änderungen an den symbolischen
Links in " |
Lassen Sie uns im folgenden beispielhaft ein Runlevel-System ähnlich dem von Red Hat Linux einrichten:
init
startet das System standardmäßig in Runlevel 3.
init
startet
gdm3(1)
nicht in Runlevel 0, 1, 2 und 6.
init
startet
gdm3(1)
in Runlevel 3, 4 und 5.
Dazu muss mit einem Editor in der Datei "/etc/inittab
"
der zu startende Runlevel geändert werden; dann können mit
benutzerfreundlichen Werkzeugen zur Verwaltung der Runlevel (zum Beispiel
sysv-rc-conf
oder bum
) die einzelnen
Runlevel bearbeitet werden. Falls Sie stattdessen nur die Befehlszeile
verwenden möchten, erfahren Sie hier, wie Sie dazu vorgehen (nach der
Standardinstallation von gdm3
und dessen Auswahl als
Displaymanager):
# cd /etc/rc2.d ; mv S21gdm3 K21gdm3 # cd /etc ; perl -i -p -e 's/^id:.:/id:3:/' inittab
Please note the "/etc/X11/default-display-manager
" file
is checked when starting the display manager daemons:
xdm
, gdm3
, sddm
,
and wdm
.
![]() |
Anmerkung |
---|---|
Sie können X nach wie vor von jeglicher Konsolen-Shell aus mit dem Befehl startx(1) starten. |
Die Standard-Parameter für jedes init-Skript in
"/etc/init.d/
" werden in der zugehörigen Datei in
"/etc/default/
" festgelegt, welche nur Definitionen für Umgebungsvariablen enthält. Es
ist grob das Gegenstück des
"/etc/sysconfig
"-Verzeichnisses unter Red Hat Linux und anderen Distributionen. Zum
Beispiel kann "/etc/default/cron
" genutzt werden, um zu
steuern, wie "/etc/init.d/cron
" arbeitet.
Die "/etc/default/rcS
"-Datei kann verwendet werden, um
beim Systemstart die Standardwerte für
motd(5),
sulogin(8)
usw. anzupassen.
Falls Sie nicht das gewünschte Verhalten erreichen, indem Sie solche Variablen verändern, müssen Sie möglicherweise die init-Skripte selbst modifizieren. Dies sind Konfigurationsdateien, die durch den Systemadministrator editiert werden können.
Der Kernel verwaltet den Rechnernamen (hostname) des Systems. Das init-Skript in Runlevel
S, was ein symbolischer Link auf
"/etc/init.d/hostname.sh
" ist, setzt den Rechnernamen
beim Systemstart mittels des Befehls hostname
auf den in
"/etc/hostname
" gespeicherten Wert. Diese Datei sollte
nur den Rechnernamen des Systems
enthalten, nicht einen vollqualifizierten Domänennamen.
Um den derzeitigen Rechnernamen auszugeben, führen Sie hostname(1) ohne ein Argument aus.
Obwohl das Wurzeldateisystem durch den Kernel eingebunden wird, wenn dieser startet, werden andere Dateisysteme im Runlevel S durch die folgenden init-Skripte eingebunden:
"/etc/init.d/mountkernfs.sh
" für Kernel-Dateisysteme in
"/proc
", "/sys
" usw.;
"/etc/init.d/mountdevsubfs.sh
" für virtuelle Dateisysteme
in "/dev
";
"/etc/init.d/mountall.sh
" für normale Dateisysteme unter
Verwendung von "/etc/fstab
";
"/etc/init.d/mountnfs.sh
" für Netzwerk-Dateisysteme unter
Verwendung von "/etc/fstab
".
Die Optionen zum Einbinden von speziellen Kernel-Dateisystemen (procfs,
sysfs und tmpfs für /proc
, /sys
,
/tmp
, /run
, usw.) werden in
"/etc/default/rcS
" gesetzt. Lesen Sie dazu
rcS(5).
Die Optionen zum Einbinden normaler Festplatten- und Netzwerkdateisysteme
werden in "/etc/fstab
" festgelegt. Näheres finden Sie in
Abschnitt 9.5.7, „Optimierung von Dateisystemen über mount-Optionen“.
![]() |
Anmerkung |
---|---|
Das eigentliche Einbinden von Netzwerk-Dateisystemen wird bis zum Start der Netzwerkschnittstelle verzögert. |
![]() |
Warnung |
---|---|
Bei jedem Systemstart werden nach dem Einbinden aller Dateisysteme temporäre
Dateien in " |
Netzwerkschnittstellen werden im Runlevel S durch init-Skripte
initialisiert, die symbolische Links auf
"/etc/init.d/ifupdown-clean
" und
"/etc/init.d/ifupdown
" sind. Lesen Sie Kapitel 5, Netzwerkkonfiguration bezüglich weiterer Infos, wie Sie diese
konfigurieren.
Viele Netzwerkdienste (lesen Sie Kapitel 6, Netzwerkapplikationen)
werden im Mehrbenutzer-Modus durch das init-Skript direkt als Daemon-Prozess
gestartet, wie z.B. durch "/etc/rc2.d/S20exim4
" (für
Runlevel 2), was ein symbolischer Link auf
"/etc/init.d/exim4
" ist.
Einige Netzwerkdienste können über den Super-Server inetd
(oder
dessen Ersatz) auch bei Bedarf gestartet werden. inetd
selbst wird beim Systemstart durch "/etc/rc2.d/S20inetd
"
(für Runlevel 2) gestartet, was ein symbolischer Link auf
"/etc/init.d/inetd
" ist. Im wesentlichen ermöglicht es
inetd
, nur einen Daemon laufen zu haben, der verschiedene
andere bei Bedarf aufruft; dies reduziert die Last auf dem System.
Wann immer eine Diensteanfrage den Super-Server inetd
erreicht,
werden deren Protokoll und Dienst über eine Abfrage der Datenbank in
"/etc/protocols
" und "/etc/services
"
ermittelt. Dann sucht inetd
einen normalen
Internet-Dienst in der "/etc/inetd.conf
"-Datenbank oder
einen Open Network Computing
Remote Procedure Call (ONC RPC)/Sun RPC-basierten Dienst in
"/etc/rpc.conf
".
Manchmal startet inetd
den jeweiligen Server nicht
direkt, sondern das TCP-Wrapper-Programm
tcpd(8)
mit dem jeweiligen Server als Argument in
"/etc/inetd.conf
". In diesem Fall wird der passende
Server von tcpd
ausgeführt, nachdem die Anfrage
protokolliert und einige zusätzliche Überprüfungen mittels
"/etc/hosts.deny
" und
"/etc/hosts.allow
" durchgeführt wurden.
Zum Zwecke der Systemsicherheit sollten Sie so viele Netzwerkdienste wie möglich deaktivieren. Weiteres dazu in Abschnitt 4.6.4, „Den Zugriff auf einige Server-Dienste einschränken“.
Lesen Sie
inetd(8),
inetd.conf(5),
protocols(5),
services(5),
tcpd(8),
hosts_access(5),
hosts_options(5),
rpcinfo(8),
portmap(8)
und "/usr/share/doc/portmap/portmapper.txt.gz
".
Die Systemmeldungen können über "/etc/default/rsyslog
"
und "/etc/rsyslog.conf
" sowohl für die Protokolldatei wie
auch für die Bildschirmanzeige angepasst werden. Lesen Sie dazu
rsyslogd(8)
und
rsyslog.conf(5)
sowie auch Abschnitt 9.2.2, „Analyseprogramme für Logdateien“.
Die Kernel-Meldungen können über "/etc/default/klogd
"
sowohl für die Protokolldatei wie auch für die Bildschirmanzeige angepasst
werden. Setzen Sie in dieser Datei "KLOGD='-c 3'
" und
führen Sie "/etc/init.d/klogd restart
" aus. Lesen Sie
dazu
klogd(8).
Sie können wie folgt die Anzeigestufe der Fehlermeldungen auch direkt ändern:
# dmesg -n3
Tabelle 3.5. Liste der Anzeigestufe für Kernel-Fehler
Wert der Anzeigestufe | Name der Anzeigestufe | Bedeutung |
---|---|---|
0 | KERN_EMERG | System ist unbenutzbar |
1 | KERN_ALERT | es ist unverzüglich eine Aktion erforderlich |
2 | KERN_CRIT | Zustände mit kritischen Fehlern |
3 | KERN_ERR | Zustände mit Fehlern |
4 | KERN_WARNING | Zustände mit Warnungen |
5 | KERN_NOTICE | normale, aber erwähnenswerte Zustände |
6 | KERN_INFO | rein informativ |
7 | KERN_DEBUG | Nachrichten zur Fehlersuche/-eingrenzung |
Für Linux-Kernel der 2.6-Reihe und neuer bietet das udev-System Mechanismen für automatische Hardware-Erkennung und -initialisierung (lesen Sie dazu udev(7)). Nach der Erkennung eines Gerätes durch den Kernel startet das udev-System einen User-Prozess. Dieser verwendet Informationen aus dem sysfs-Dateisystem (Näheres in Abschnitt 1.2.12, „procfs und sysfs“), lädt über den Befehl modprobe(8) benötigte Kernel-Module, die die Hardware unterstützen (Details in Abschnitt 3.3.1, „Die Kernel-Modul-Initialisierung“), und erstellt die zugehörigen Geräteknoten (device nodes).
![]() |
Tipp |
---|---|
Falls " |
Die Namen der Geräteknoten können über udev-Regel-Dateien in
"/etc/udev/rules.d/
" konfiguriert werden. Aktuelle
Standardregeln neigen dazu, dynamisch generierte Namen zu erzeugen, was
(außer bei CD- und Netzwerkgeräten) dazu führt, dass sich die Gerätenamen
von Mal zu Mal ändern. Indem Sie Ihre eigenen Regeln hinzufügen (ähnlich
denen für CD- und Netzwerkgeräte), können Sie auch für andere Geräte wie
z.B. USB-Memory-Sticks fest zugeordnete Gerätenamen vergeben. Lesen Sie dazu
"Writing udev rules" oder
"/usr/share/doc/udev/writing_udev_rules/index.html
".
Da das udev-System immer ein wenig im Wandel ist, überlasse ich die Details anderen Dokumenten und beschränke mich hier auf das Nötigste.
![]() |
Tipp |
---|---|
Für die Regeln zum Einbinden von Dateisystemen in
" |
Das modprobe(8)-Programm erlaubt es, einen laufenden Linux-Kernel über einen User-Prozess zu konfigurieren, indem Kernel-Module hinzugefügt und entfernt werden. Das udev-System (Näheres in Abschnitt 3.3, „Das udev-System“) automatisiert dessen Aufruf, um bei der Initialisierung des Kernel-Moduls zu helfen.
Es gibt Module, die nicht zu bestimmter Hardware gehören, sowie spezielle
Hardware-Treibermodule wie die folgenden, die im Voraus geladen werden
müssen, indem Sie in die Datei "/etc/modules
" eingetragen
werden (Details in
modules(5)):
TUN/TAP-Module, die ein virtuelles Point-to-Point Netzwerkgerät (TUN) und ein virtuelles Ethernet-Netzwerkgerät (TAP) bereitstellen;
netfilter-Module, die Netfilter-Firewall-Funktionalitäten bereitstellen (lesen Sie dazu iptables(8) und Abschnitt 5.9, „Die Netfilter-Infrastruktur“);
watchdog timer-Treibermodule.
Die Konfigurationsdateien für das
modprobe(8)-Programm
sind unterhalb des "/etc/modprobes.d/
"-Verzeichnisses
abgelegt, wie in
modprobe.conf(5)
beschrieben. (Falls Sie vermeiden möchten, dass einige Kernel-Module
automatisch geladen werden, sollten Sie erwägen, diese in die Datei
"/etc/modprobes.d/blacklist
" einzutragen.)
Die Datei "/lib/modules/<version>/modules.dep
"
(erzeugt durch das Programm
depmod(8))
beschreibt Abhängigkeiten zwischen den Modulen; diese Abhängigkeiten werden
von
modprobe(8)
genutzt.
![]() |
Anmerkung |
---|---|
Wenn Sie Probleme beim Laden von Modulen feststellen, entweder während des
Systemstarts oder beim Nachladen mit
modprobe(8),
kann " |
Der Befehl modinfo(8) zeigt Informationen über ein Linux-Kernel-Modul an.
Das
lsmod(8)-Programm
formatiert den Inhalt von "/proc/modules
" zu einer
hübschen Ausgabe, um anzuzeigen, welche Kernel-Module gerade geladen sind.
![]() |
Tipp |
---|---|
Sie können die Hardware in Ihrem System exakt identifizieren. Lesen Sie dazu Abschnitt 9.4.3, „Hardware-Identifikation“. |
![]() |
Tipp |
---|---|
Möglicherweise wollen Sie Hardware während des Systemstarts konfigurieren, um bestimmte erwartete Hardware-Funktionalitäten zu aktivieren. Näheres finden Sie in Abschnitt 9.4.4, „Hardware-Konfiguration“. |
![]() |
Tipp |
---|---|
Unterstützung für spezielle Geräte können Sie unter Umständen durch Neukompilieren des Kernels hinzufügen. Details finden Sie in Abschnitt 9.9, „Der Kernel“. |