Im Gegensatz zu anderen Betriebssystemen fasst ein Unix-System grundsätzlich alle Partitionen und angeschlossenen Laufwerke zu einem Dateibaum zusammen. Dadurch entfallen die lästigen Laufwerksbuchstaben, die in größeren Netzwerken schnell an die Grenze der Übersichtlichkeit führen.

Physikalisch bleiben die Daten natürlich auf den entsprechenden Partitionen bzw. Laufwerken, logisch wird aber aus all den verschiedenen Partitionen ein einziger Dateibaum zusammengebaut. Das Prinzip ist dabei ganz einfach das, dass mit dem Befehl mount (montiere) die Partitionen an einem bestimmten Punkt des Dateisystems eingehängt werden. Als ein solcher Mountpoint dient jeweils ein leeres Verzeichnis. (Falls das Verzeichnis nicht leer ist, so wird der Inhalt während des Zustands, in dem ein anderes Laufwerk in das Verzeichnis gemountet ist versteckt. Nach dem Wiederabhängen des Laufwerks mit dem Befehl umount wäre der Inhalt des Verzeichnisses wieder unverändert vorhanden).

Dieses Prinzip erfordert logischerweise eine besondere Partition, nämlich die, die die eigentliche Wurzel des ganzen großen Dateibaums enthält. Diese Partition wird als Wurzelpartition (root-partition) bezeichnet und beim booten ins Verzeichnis / gemountet. Alle weiteren Partitionen werden dann in Verzeichnisse gemountet, die ihrerseits entweder auf der Wurzelpartition oder auf schon gemounteten anderen Partitionen liegen. Die Wurzelpartition muß zwingend einige Verzeichnisse enthalten, die nicht auf anderen Partitionen liegen dürfen. Ein simples Beispiel ist das Verzeichnis, das die Bauanleitung enthält, wohin die anderen Partitionen gemountet werden sollen (/etc) oder das Verzeichnis, dass den mount-Befehl selber enthält (/bin).

In der Regel werden die ganzen Partitionen, die verwendet werden sollen bereits während des Bootvorgangs automatisch gemountet. Dazu muß das System aber eine entsprechende Bauanleitung besitzen, die klärt, in welche Verzeichnisse welche Partitionen gehängt werden sollen. Diese Bauanleitung liegt in der Datei /etc/fstab. Diese Datei kann zweckmäßigerweise auch Angaben zu den Partitionen oder Laufwerken beinhalten, die nicht automatisch gemountet werden sollen, wie etwa Wechselplatten oder CDRom-Laufwerke.

Die Datei /etc/fstab

Diese Datei hat einen recht einfachen Aufbau, wie immer bei Unix ist sie eine einfache Textdatei, jede Zeile beschreibt eine Partition bzw. ein Laufwerk. Die einzelnen Felder der Zeile sind durch Tabs oder Leerzeichen voneinander getrennt.

Die Zeilen haben folgendes Format:

Gerätedatei Mountpoint Dateisystemtyp Optionen Dump Reihenfolge

Gerätedatei Hier steht die Gerätedatei des blockorientierten Geräts, das die Partition oder das Laufwerk bezeichnet. Es ist notwendig, den gesamten Pfad zu dieser Datei anzugeben also z.B. /dev/hda3.

Wenn es sich bei dem zu mountenden Dateisystem um ein Netzlaufwerk (NFS) handelt, dann steht in diesem Feld der Rechnername des Dateiservers, gefolgt von einem Doppelpunkt und dem Pfad zu dem freigegebenen Verzeichnis, z.B. hal.mydomain.de:usr/publicMountpoint Hier steht das Verzeichnis, in das die Partition oder das Laufwerk eingehängt werden soll. Notwendig ist der absolute Pfad (mit führendem /) Dateisystemtyp Hier wird der Typ des Dateisystems angegeben, das diese Partition bzw. dieses Laufwerk enthält. Der Kernel muß das jeweilige Dateisystem unterstützen, sonst kann es nicht gemountet werden. Typische Angaben sind hier: minix Das Dateisystem des Minix-Systems. Wird manchmal noch für Disketten benutzt, für Festplatten ist es nicht mehr üblich. ext Das erweiterte Minix-System, das von frühen Linux-Versionen benutzt wurde. Hat keine Bedeutung mehr und wird wahrscheinlich bald komplett aus dem Kernel entfernt. ext2 Das heute übliche Linux-Dateisystem. Wird für alle Dateisysteme von Festplatten und Wechselmedien (Zip o.ä.) benutzt. ext2 ist das Dateisystem mit der besten Performance, das für Linux zur Verfügung steht. xiafs Ein weiteres Linux-Dateisystem, wird nicht mehr benutzt, seit ext2 sich durchgesetzt hat. Aus Kompatibilitätsgründen noch im System enthalten. msdos Das MSDOS Dateisystem. Damit können auch DOS-Platten unter Linux angesprochen werden. Achtung, es handelt sich hier um das alte DOS-Dateisystem mit der Dateinamenbeschränkung auf das 8.3 Prinzip. umsdos Das Dateisystem von Linux, wenn Linux auf DOS-Partitionen betrieben werden soll. Nur nötig, wenn DOS und Linux auf einer Partition zusammen laufen sollen. vfat Das moderne Windows Dateisystem, das schon lange Dateinamen kennt. Vorsicht FAT32 wird noch nicht unterstützt. proc Ein Pseudo Dateisystem, das als Schnittstelle zum Kernel dient. Die Dateien, die hier zu finden sind benutzen physikalisch keinen Platz auf irgendwelchen Platten sondern sind direkte Ausgaben des Kernels. iso9660 Das Dateisystem von CD-ROM Laufwerken. Es werden neben dem ursprünglichen ISO System auch die sogenannten Rock Ridge Extensions unterstützt, die ein Dateisystem mit langen Dateinamen, Eigentümer und Gruppenzugehörigkeit wie unter Unix üblich ermöglichen. hpfs Das High Performance Filesystem von OS/2. Weil es dazu keine ausreichenden Dokumentationen von IBM gibt, kann dieser Dateisystemtyp nur als Read-Only System gemountet werden. sysv Das Dateisystem der Unix System V Version. Für Platten, die aus solchen Systemen ausgebaut wurden… nfs Das Network File System, die unter Unix übliche Art, Dateisysteme übers Netz freizugeben.

Welche Dateisysteme vom Kernel aktuell unterstützt werden kann in der Datei /proc/filesystems nachgesehen werden. Sollten die benötigten Systeme hier nicht zu finden sein, so können sie als Modul nachgeladen werden oder es muß ein neuer Kernel kompiliert werden. Es ist mit speziellen Mount-Befehlen auch möglich, smb und ncpfs Dateisysteme zu mounten, experimentell existieren auch schon Treiber für ntfs.

Wenn in diesem Feld statt einem Dateisystemtyp ignore angegeben ist, wird der Eintrag ignoriert. Dies ist nützlich, wenn unbenutzte Partitionen angezeigt werden sollen. Optionen Hier können verschiedene Optionen gesetzt werden, die von Dateisystem zu Dateisystem unterschiedlich sein können. Dieses Feld enthält eine durch Kommas (ohne Leerzeichen) getrennte Liste von solchen Optionen. Welche Optionen zur Verfügung stehen ist für nicht NFS-Dateisysteme auf der Handbuchseite von mount(8) nachzulesen, für NFS-Dateisysteme unter nfs(5)

Ein paar wichtige Optionen werden hier genauer dargestellt: defaults Benutzt die voreingestellten Optionen rw, suid, dev, exec, auto, nouser, und async. dev Erlaubt es, Gerätedateien auf der Partition zu nutzen nodev Erlaubt es nicht, Gerätedateien auf der Partition zu nutzen exec Erlaubt es, binäre Programme auf der Partition auszuführen noexec Erlaubt es nicht, binäre Programme auf der Partition auszuführen. Das kann praktisch sein, wenn zwei unterschiedliche Unix-Systeme installiert sind, deren Binärdateien nicht kompatibel sind. So kann es zu keinen Verwechslungen kommen. auto Partition wird automatisch beim Booten gemountet noauto Partition wird nicht automatisch beim Booten gemountet user Erlaubt es einem Normaluser das Dateisystem zu mounten. Normalerweise darf nur der Systemverwalter Dateisysteme mounten, für Wechselplatten, CD-ROM- und Diskettenlaufwerke ist es aber häufig nötig, dass auch Normaluser sie mounten können. rw Mountet das Dateisystem zum Lesen und Schreiben ro Mountet das Dateisystem ReadOnly

Jedes Dateisystem hat selbst noch einige spezielle Optionen für individuelle Einstellungen. Diese speziellen Optionen können in den jeweiligen Handbuchseiten und den Kernelquellen nachgelesen werden. Dump Hier steht eine Ziffer, entweder 0 oder 1. Das Feld beschreibt, ob der Unix-Befehl dump das Dateisystem sichern soll oder nicht. Wird heute selten gebraucht, als Anhaltspunkt kann man sagen, dass alle Partitionen mit Unix-Dateisystemen (minix, ext, ext2, xiafs, sysv) hier eine 1 stehen haben sollten, alle anderen eine 0. Reihenfolge Auch hier stehen Ziffern, entweder 0, 1 oder größer . Es handelt sich um die Angabe, in welcher Reihenfolge der Dateisystemcheck beim Booten vor sich gehen muß. Eine 0 bedeutet grundsätzlich keinen Dateisystemcheck, die 1 steht für die Wurzelpartition,die immer als erstes überprüft werden sollte, die anderen Ziffern legen die Reihenfolge der weiteren Überprüfung fest. Meist haben alle anderen Dateisysteme hier die 2 stehen, weil sie dann parallel überprüft werden.

Auch hier kann man vereinfacht sagen, dass für alle Dateisysteme, bei denen im vorherigen Feld eine 0 steht, auch hier eine 0 stehen sollte, die Partition, die die Wurzel des Dateisystems enthält bekommt eine 1, alle anderen eine 2.

Die Datei /etc/mtab

Jedesmal, wenn ein Dateisystem mit mount in den Dateibaum gehängt wurde, trägt der mount-Befehl dieses Dateisystem in die Datei /etc/mtab ein. Auch hier handelt es sich um eine reine Textdatei, die aber nicht geeignet ist, manuell verändert zu werden.

Diese Datei enthält also immer eine Liste der Dateisysteme, die gemountet sind. Wird der Befehl mount ohne jeden Parameter eingegeben, so ließt er diese Datei und gibt den Inhalt in etwas aufbereiteter Form auf dem Bildschirm (genauer der Standard-Ausgabe) aus.

Wichtig ist diese Datei auch für das umount-Kommando, wenn es mit der Option -a angewandt wird, wenn also alle gemounteten Dateisysteme abgehängt werden sollen. Meist ist das nur beim Herunterfahren des Systems notwendig und sinnvoll. Hier findet umount die Informationen, welche Dateisysteme gemountet sind, welche also abgehängt werden müssen.

Natürlich werden die entsprechenden Einträge in dieser Datei bei jedem umount auch modifiziert, d.h., wenn ein Dateisystem per umount abgehängt wird, so löscht umount den entsprechenden Eintrag in der Datei /etc/mtab.