4 Systemkonfiguration


Bevor man die Fortgeschrittenen Teile des Systems konfigurieren kann, ist es gut zu wiessen, wie das System organisiert ist und welche Befehle zum Suchen und Finden von Programmen genutzt werden können. Ausserdem ist es wichtig, wenn man einen eigenen Kernel kompilieren will und wie man das richtig macht. Dieses Kapitel wird Sie mit der Organisation des Systems und den Konfigurationsdateien bekannt machen. Dann kann man weitergehen um die Fortgeschrittenen Teile des Systems zu konfigurieren.

4.1 Überblick über das System


Es ist wichtig zu verstehen, wie ein Linuxsystem zusammengesetzt ist, bevor man in die verschiedenen Konfigurationsmöglichkeiten eintaucht. Ein Linuxsystem ist ganz anders als DOS, Windows oder ein Macintosh System (abgesehen von der Unix-Grundlage von Mac OS X), aber diese Abschnitte werden ihnen helfen mit dem Layout zurecht zu kommen damit sie möglichst einfach ihr System nach ihren Vorstellungen konfigurieren können.

4.1.1 Aufbau des Dateisystems


Der erste augenscheinliche Unterschied zwischen Slackware Linux und einem DOS oder Windows System ist das Dateisystem. Für Einsteiger, es werden keine Laufwerksbuchstaben für verschiedene Partitionen benutzt. Unter Linux gibt es nur ein Hauptverzeichnis. Man kann es mit c: unter DOS vergleichen. Jede Partition in ihrem System ist in ein Unterverzeichnis des Hauptverzeichnisses eingebunden. Es ist wie eine immer weiterwachsende Festplatte.

Man nennt das Hauptverzeichnis das root Verzeichnis und es wird mit einem einzelnen Slash (/) bezeichnet. Diese Konzept mag merkwürdig erscheinen, aber es macht das leben leichter, wenn man mehr Speicherplatz hinzufügen möchte. Zum Beispiel ist die Festplatte voll, auf der sich /home befindet. Die meisten Leute installieren Slackware und haben ein grosses root Laufwerk. Da man Partitionen in jedem Verzeichnis einhängen kann, kann man einfach eine neue Festplatte kaufen gehen und sie als /home einhängen. Und schon hat man mehr Platz in seinem System. Und das ohne irgendwelche Daten zu verschieben.

Unten finden Sie eine Beschreibung der Hauptverzeichnisse unter Slackware.


/bin
Wichtige Benutzerprogramme sind hier abgelegt. Diese repräsentieren das Minimum an Programmen für einen Benutzer des Systems. Dinge wie die Shell und die Dateisystemkommandos (ls, cp, und so weiter) finden sich hier. Das /bin Verzeichnis wird normalerweise nach der Installation nicht mehr verändert. Wenn doch, dann in der Form eines Upgrades eines unserer Packete.

/boot
Dateien die vom Linux Loader (LILO) benutzt werden. Dieses Verzeichnis bekommt auch kaum Veränderungen nach einer Installation. Der Kernel ist hier seit Slackware 8.1 abgelegt. In früheren Versionen von Slackware, war der Kernel noch einfach unter / abgelegt, aber weit Verbreitet ist es, den Kernel und zugehörige Dateien hier um Dual-boot zu ermöglichen.

/dev
Alles in Linux wird zu einer Datei, auch Hardware wie Serielle Schnittstellen, Festplatten und Scanner. Um diese Geräte ansprechen zu können, muss eine als Geräteknoten "device node" Bezeichnete Datei vorhanden sein. Alle "device nodes" sind im /dev Verzeichnis abgelegt. Sie werden dies in allen Unixähnlichen Betriebssystem finden.

/etc
Dieses Verzeichnis enthält die Systemkonfigurationsdateien. Alles von der X-Windows Konfigurationsdatei, den Benutzerdatenbanke, bis hin zu den Startscripten des Systems. Dem Systemadministrator wird dieses Verzeichnis mit der Zeit immer bekannter.

/home
Linux ist ein Multiuser Betriebssystem. Jedem Benutzer ist ein Account und ein eindeutiges Verzeichnis für persönliche Dateien zugeordnet. Dieses Verzeichnis nennt man das Heimverzeichnis (home directory) des Benutzers. Das /home Verzeichnis ist der vorgegeben Ort für Benutzer Heim Verzeichnisse (home directory).

/lib
Systembibliotheken die für grundlegende Operationen gebraucht werden, sind hier abgelegt. Die C Bibliothek, der dynamische Lader, die ncurses Bibliothek, und die Kernel Module sind die wichtigsten Dinge hier.

/mnt
Dieses Verzeichnis enthält Verzeichnisse zum temporären einhängen von Datenträgern oder ähnlichem, sogenannte "mount points". Hier findet man die Verzeichnisse für CD-Rom und Diskettenlaufwerke.

/opt
Optionale Softwarepakete. Die Idee hinter /opt ist, dass jedes Softwarepaket unter /opt/sofware-paket installiert wird, was das spätere entfernen einfacher macht. Slackware liefert einige Dinge in /opt (wie z. B. KDE in /opt/kde), aber sie können in /opt hinzufügen was sie wollen.

/proc
Dies ist ein einmaliges Verzeichnis. Es ist nicht wirklich ein Teil des Dateisystems, aber doch ein virtuelles Dateisystem, das Zugriff auf Kernelinformationen bietet. Verschieden Teile der Informationen die der Kernel mitteilen kann werden ihnen durch Dateien im /proc Verzeichnis präsentiert. Sie können auch dem Kernel durch diese Dateien informationen geben. Versuchen sie mal cat /proc/cpuinfo

/root
Den Systemadministrator nennt man root. Das Heimatverzeichnis von root ist in /root anstatt in /home/root. Der Grund ist einfach. Was ist, wenn /home auf einer anderen Partition liegt als / und nicht eingehängt werden kann? root meldet sich normalerweise an um das Problem zu beheben. Wenn das Heimatverzeichnis auf dem beschädigten Dateisystem ist, würde es schwer für ihn sich am System anzumelden.

/sbin
Essentielle Programme, welche von root (dem Administrator) benutzt werden und während des Startvorgangs gebraucht werden sind hier abgelegt. Normale Benutzer dürfen keine Programme aus diesem Verzeichnis ausführen.

/tmp
Der Ort für temporäre Daten. Alle Benutzer haben lese- und schreibzugriff in diesem Verzeichnis

/usr
Das ist das grösste Verzeichnis in einem Linuxsystem. Das Meiste landet hier, Programme, Dokumentationen, Kernel source code und das X Windows System. In dieses Verzeichnis werden Sie die meisten Programme installieren.

/var
Systemprotokolldateien, Cache Daten und "program lock files" sind hier gespeichert. Dies ist das Verzeichnis für regelmässig sich ändernde Dateien.

Sie sollten jetzt eine Vorstellung darüber haben, welche Verzeichnisse, was im Dateisystem enthalten. Genauere Informationen über den Dateisystemaufbau finden sie in der hier(7) man Seite. Das nächste Kapitel wird Ihnen helfen bestimmte Dateien leicht zu finden ohne die selbst suchen zu müssen.

4.1.2 Dateien finden


Sie wissen jetzt was jedes Hauptverzeichnis enthält, aber das Hilft Ihnen noch nicht wirklich weiter. Sie können natürlich in jede Verzeichnis schauen, aber es gibt schnellere Wege. Es gibt vier wichtige Suchbefehle in Slackware.

4.1.2.1 which


Das erste ist der Befehl which(1), welcher normalerweise zur schnellen Suche eines Programms benutzt wird. Es sucht einfach in ihrem Pfad (PATH) und gibt das erste Ergebnis und den Verzeichnispfad aus. Nehmen wir diese Beispiel:

% which bash
/bin/bash


Sie sehen, dass bash im Verzeichnis /bin ist. Dies ist ein sehr eingeschränkter Befehl, da er nur in ihrem Pfad (PATH) sucht.

4.1.2.2 whereis


Der Befehl whereis(1) arbeitet ähnlich wie which, sucht aber auch nach man-Seiten und source-Dateien. Eine whereis Suche nach bash sollte dies ausgeben:

% wheris bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz


Dieser Befehl sagt uns nich nur wo man das Programm findet, sondern auch wo man die Online-Dokumentation dazu findet. Dennoch ist dieser Befehl sehr eingeschränkt. Was ist, wenn sie eine bestimmte Konfigurationsdatei suchen? Hier können sie weder which noch whereis benutzen.

4.1.2.3 find


Der Befehl find(1) erlaubt dem Benutzer eine umfangreiche Suche im Dateisystem. Der Benutzer kann einen Dateinamen mit wildcards angeben, Bereiche von Erstellungs- oder Änderungsdatum von Dateien oder andere forteschrittene Eigenschaften. Zum Beispiel um nach der standard xinitrc Datei des Systems zu suchen, könnte folgender Befehl benutzt werden:

% find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc


find braucht einige Zeit, da es den kompletten Verzeichnisbaum durchsucht. Und wenn dieser Befehl als normaler Benutzer ausgeführt wird, wird es Zugriffsberechtigungsfehler geben für Verzeichnis dem dem Administrator vorbehalten sind. Aber find hat unsere Datei gefunden und das zählt. Wenn es nur noch schneller ginge...

4.1.2.4 slocate


Der Befehl slocate(1) sucht im gesamten Dateisystem wie find das auch macht, aber es sucht in einer Datenbank im gegensatz zum tatsächlichen Dateisystem. Die Datenbank wird automatisch jeden Morgen aktualisiert, so das man immer einen frischen Datei-Index von seinem System hat. Man kann auch updatedb(1) manuell zur akutalisierung der slocate-Datenbank ausführen (vor dem manuellen Ausführen von updatedb muss mit su zum root Benutzer gewechselt werden). Hier ein Beispiel für slocate in Aktion:

% slocate xinitrc  # ohne das wir zu root wechseln müssen
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm


Wir bekommen auch schneller, mehr als das wonach wir gesucht haben. Mit diesen Befehlten sollten Sie in der Lage sein alles zu finden, was sie in Ihrem Linuxsystem suchen.

4.1.3 Das /etc/rc.d Verzeichnis


Die Startdateien für das System sind im /etc/rc.d Verzeichnis abgelegt. Slackware benutzt den BSD-Stil für seinen Start im gegensatz zu den System V init Sctipen, welche Konfigurationsänderungen schwieriger machen ohne ein Programm das auf diese Aufgabe abgestimmt ist, zu benutzen. In BSD-init Scripten, ist jedem runlevel eine eigene rc-Datei zugeordnet. In System V gibt es für jeden runlevel ein eigenes Verzeichnis, jedes mit einer Anzahl von Scripten. Das bietet eine organisierte Struktur die einfach zu Verwalten ist.

Es gibt mehrer Kategorien von Startdateien. Diese sind Systemstart, runlevels, Netzwerk initialisierung und System V kompatibilität. Traditionell wird alles andere in eine andere Kategorie einsortiert.

4.1.3.1 Systemstart


Das erste Programm das nach dem Linuxkernel gestartet wird, ist init(8). Diese Programm list die /etc/inittab(5) Datei um zu sehen wie das System laufen soll. Es startet das /etc/rc.d/rc.S Script um das System auf den Start des gewünschten runlevels vorzubereiten. Das rc.S Script aktiviert den virtuellen Speicher, hängt Ihre Dateisysteme ein, säubert verschiedene Protokollverzeichnisse, initialisiert "Plug & Play" Geräte, lädt Kernelmodule, konfiguriert PCMCIA Geräte, richtet Serielle Schnittstellen ein und startet System V init Scripte (wenn welche gefunden werden). Die meiste Arbeit erledigt rc.S, aber es gibt noch andere Scripte in /etc/rc.d die rc.S startet um seine Arbeit zu beenden.

rc.S
Dies ist das aktuelle Systemstart Script.

rc.modules
Lädt Kernel Module. Dinge wie Ihre Netzwerkkarte, PPP unterstützung und andere Dinge werden hier geladen. Wen das Script rc.netdevice finde, wird dieses ausgeführt.

rc.pcmcia
Sucht und konfiguriert PCMCIA Geräte die in Ihrem System stecken. Dies ist am nützlichsten für Laptop Benutzer die warscheinlich eine PCMCIA Netzwerkkarte oder Modem haben.

rc.serial
Konfiguriert Ihre Seriellen Schnittstellen indem es die nötigen setserial Befehle ausführt.

rc.sysvinit
Schaut nach System V init Scripten für den gewünschten runlevel und führt sie aus. Dies wir unten näher erläutert.

4.1.3.2 Runlevel Startscripte


Nachdem die Systeminitialisierung abgeschlossen ist, initialisiert init den runlevel. Ein runlevel beschreibt den Zustand in dem Ihr Gerät läuft. Hört sich merkwürdig an? Also der runlevel teilt init mit, ob es Mehrbenutzer Anmeldungen akzeptiert oder nur Einzelbenutzer, ob Netzwerkdienste gestartet werden oder nicht, ob das X Windows System gestartet wird oder agetty(8) zur Verwaltung der Benutzeranmeldungen verwendet wird. Die nachfolgend genannten Dateien definieren die verschiedenen runlevel in Slackware Linux.

rc.0
Halten das System an (runlevel 0). Standardmässig ist dieses gegen rc.6 symbolisch gelinkt.

rc.4
Mehrbenutzer Start (runlevel 4), aber mit X und KDM, GDM oder XDM als Anmeldungsmanager.

rc.6
Startet das System neu (runlevel 6)

rc.K
Startet den Einzelbenutzer Modus (runlevel 1)

rc.M
Mehrbenutzer Modus (runlevel 2 und 3), aber mit Standard Textanmeldung. Dies ist der standardmässige runleven für Slackware.

4.1.3.3 Netzwerkinitialisierung


Runlevel 2, 3 und 4 starten die Netzwerkdienste. Die nachfolgenden Dateien sind für die Netzwerkinitialisierung verantwortlich:

rc.inet1
Erstellt von netconfig. Diese Datei ist zuständig für das Konfigurieren der aktuellen Netzwerk Schnittstellen.

rc.inet2
Läuft nach rc.inet1 und startet grundlegende Netzwerkdienste.

rc.atalk
Startet AppleTalk Dienste.

rc.httpd
Startet den Apache Webserver. Wie ein paar andere rc Scripte, kann dieses auch zum stoppen, neustarten des Dienstes genutzt werden. rc.httpd nimmt die Argumente stop, start oder restart an.

rc.news
Startet den Newsserver.

4.1.3.4 System V Kompatibilität


System V init kompatibilität wurde in Slackware 7.0 eingeführt. Viele andere Linux Distributionen verwenden diesen Stil anstatt den BSD-Stil. Grundsätzlich hat jeder runlevel ein Unterverzeichnis für seine init-Scripte, wo der BSD-Stil nur ein init-Script für jeden runlevel hat.

Das rc.sysvinit Script such nach System V init-Scripten die sich in /etc/rc.d finden und führt sie aus, wenn der passende runlevel gestartet wird. Dies ist für einige Kommerzielle Programmpakete nötig, die System V init Scripte installieren.

4.1.3.5 Weitere Dateien


Die unten beschriebenen Dateien sind die anderen Systemstartdateien. Sie werden normalerweise von einem der oben genannten Hauptscripte gestartet, soddass nur ihr Inhalt bearbeitet werden muss.

rc.gpm
Startet die universellen Mausdienste. Sie erlauben Ihnen "copy & paste" in der Linuxkonsole zu nutzen. Manchmal verursacht gpm Probleme, wenn es mit X Windows verwendet wird. Wenn Sie Probleme mit der Maus unter X haben versuchen Sie die Ausführungsberechtigung weg zu nehmen und den gpm-Server anzuhalten.

rc.font
Lädt die Benutzerdefinierten Fonts für die Konsole

rc.local
Enthält jeden beliebigen Startbefehl für Ihr System. Diese Datei ist nach einer frischen Installation leer, da es für Administratoren vorbehalten ist. Dieses Script wird nach allen anderen Startscripten ausgeführt.

Um ein Script zu aktivieren müssen sie ihm nur die Ausführungsberechtigung mit dem chmod Befehl geben. Um ein Script abzuschalten nur die Ausführungsberechtigung wegnehmen. Wenn Sie mehr Informationen über chmod brauchen schauen Sie in Kapitel 9.2.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki