23.8Verwaltung des Dateisystems (mount und /etc/fstab)
Nach der Installation von Linux müssen Sie sich normalerweise nicht um die Verwaltung des Dateisystems kümmern: Über diverse Verzeichnisse können Sie auf alle oder zumindest die meisten Datenpartitionen der Festplatte zugreifen. Beim Einlegen von DVDs bzw. beim Anschließen externer Datenträger werden deren Dateisysteme automatisch in den Verzeichnisbaum integriert. Alles funktioniert gleichsam wie von Zauberhand.
Dieser Abschnitt wirft einen Blick hinter die Kulissen und beschreibt die Kommandos mount und umount sowie die Datei /etc/fstab:
-
mount bzw. umount werden immer dann ausgeführt, wenn eine Partition oder ein Datenträger in den Verzeichnisbaum integriert bzw. wieder daraus gelöst wird. Selbstverständlich können Sie diese Kommandos als root auch selbst ausführen, wenn die Automatismen versagen bzw. wenn Sie ohne ein grafisches Desktop-System arbeiten.
-
Die Konfigurationsdatei /etc/fstab steuert, welche Dateisysteme beim Rechnerstart automatisch in den Verzeichnisbaum integriert werden und welche Optionen dabei gelten. /etc/fstab wird während der Linux-Installation vorkonfiguriert. Wenn Sie mit dieser Konfiguration nicht zufrieden sind bzw. wenn sich später Ihre Anforderungen ändern, müssen Sie die Datei mit einem Editor verändern. Dieser Abschnitt beschreibt die Syntax dieser Datei.
Überraschenderweise gibt es nur wenige grafische Konfigurationswerkzeuge, die beim mount-Vorgang bzw. bei einer Änderung von /etc/fstab helfen. Zu den wenigen Ausnahmen zählen das im vorigen Abschnitt kurz vorgestellte Programm gnome-disks sowie das YaST-Modul System • Partitionieren (SUSE).
Einen Sonderfall stellen externe Datenträger wie USB-Memorysticks oder Firewire-Festplatten dar: Die meisten Distributionen binden solche Datenträger automatisch in das Dateisystem ein, sobald sie mit dem Rechner verbunden werden. Details zum Umgang mit externen Datenträgern folgen in Abschnitt 23.15.
Aktuellen Zustand des Dateisystems ermitteln
Wenn Sie wissen möchten, wie Ihr Linux-System zurzeit organisiert ist, führen Sie am einfachsten das Kommando df -h aus. Dieses Kommando zeigt an, an welcher Stelle im Dateisystem Festplatten, Datenträger etc. eingebunden sind und wie viel Platz auf den einzelnen Festplatten noch frei ist.
Das Kommando mount ohne weitere Optionen liefert noch detailliertere Informationen über die eingebundenen Dateisysteme. Außerdem zeigt das Kommando alle aktiven mount-Optionen. Leider gehen die wirklich interessanten Einträge im Ergebnis oft zwischen unzähligen virtuellen Dateisystemen unter. Im folgenden Beispiel wurde die Ausgabe spaltenweise eingerückt, um die Lesbarkeit zu verbessern.
Ähnliche Informationen wie mount liefern auch die Dateien /etc/mtab und /proc/mounts. Sie enthalten jeweils eine Liste aller Datenträger, die momentan eingebunden sind, zusammen mit dem Dateisystemtyp und den verwendeten mount-Optionen. /etc/mtab ändert sich jedes Mal, wenn ein Dateisystem in den Verzeichnisbaum eingebunden oder aus ihm gelöst wird. Die Syntax in mtab ist dieselbe wie in /etc/fstab (siehe unten). /proc/mounts enthält darüber hinaus auch Optionen, die in /etc/fstab bzw. beim mount-Kommando nicht explizit angegeben wurden.
Dateisysteme manuell einbinden und lösen (mount und umount)
Nach der Installation einer aktuellen Linux-Distribution ist das System so konfiguriert, dass Sie mount nur sehr selten benötigen: Alle Linux-Dateisysteme sind in den Verzeichnisbaum eingebunden. Beim Einlegen von CDs/DVDs oder beim Anschließen externer Datenträger erscheint automatisch ein neues Fenster des KDE- oder Gnome-Dateimanagers. Auch wenn es vielleicht so aussieht, als würde das Ganze wie von Zauberhand funktionieren, wird hinter den Kulissen immer wieder das Kommando mount ausgeführt, um Dateisysteme in den Verzeichnisbaum einzubinden bzw. wieder daraus zu lösen.
Die Syntax von mount sieht folgendermaßen aus:
mount [optionen] device verzeichnis
In den Optionen wird unter anderem der Dateisystemtyp angegeben (-t xxx). Der Device-Name bezeichnet die Partition bzw. das Laufwerk. Als Verzeichnis kann ein beliebiges Verzeichnis des aktuellen Dateisystems angegeben werden. Dieses Verzeichnis muss bereits existieren. Erzeugen Sie es gegebenenfalls mit mkdir!
mount kann im Regelfall nur von root ausgeführt werden. Es besteht aber die Möglichkeit, dass /etc/fstab für einzelne Partitionen allen Benutzern erlaubt, mount auszuführen (Option user bzw. users).
Am einfachsten ist mount anhand einiger Beispiele zu verstehen: Das erste Beispiel ermöglicht den Zugriff auf die Daten einer Windows-Partition über das Verzeichnis /windows:
Das folgende Kommando bindet eine Daten-CD (ISO-9660-Dateisystem) im Verzeichnis /media/cdrom in das Dateisystem ein. Je nach Distribution müssen Sie statt /dev/sdc0 das Device /dev/sr0 angeben.
Mit mount -o remount können Sie Optionen eines bereits eingebundenen Dateisystems verändern. Das folgende Kommando aktiviert beispielsweise die exec-Option für eine DVD, sodass darauf enthaltene Programme ausgeführt werden können:
Falls beim Einbinden der Systempartition während des Rechnerstarts Probleme auftreten, wird die Partition nur read-only eingebunden. Um die Fehlerursache – etwa einen falschen Eintrag in /etc/fstab – zu beheben, ist es aber oft erforderlich, Änderungen im Dateisystem durchzuführen. Dazu führen Sie das folgende Kommando aus. Mit ihm wird die Systempartition neu eingebunden, wobei jetzt auch Schreibzugriffe möglich sind.
Um ein Dateisystem aus dem Verzeichnisbaum zu lösen, führen Sie umount aus:
Dateisysteme automatisch einbinden (/etc/fstab)
Es wäre sehr mühsam, wenn Sie nach jedem Systemstart diverse Partitionen neu einbinden müssten, bei jedem DVD-Wechsel mount mit allen Optionen angeben müssten etc. Der Schlüssel zur Arbeitserleichterung heißt /etc/fstab: Diese Datei gibt an, welche Datenträger beim Systemstart in das Dateisystem aufgenommen werden. Auf jeden Fall muss fstab die Systempartition sowie alle zur internen Verwaltung notwendigen Dateisysteme enthalten.
Je nach Distribution kann eine minimale fstab-Datei wie folgt aussehen:
Durch die erste Zeile wird die zweite Partition der ersten Festplatte als Systemverzeichnis genutzt. Je nachdem, auf welcher Festplattenpartition Sie Linux installiert haben, müssen Sie statt sda2 natürlich den Device-Namen Ihrer Linux-Partition angeben!
Mit der zweiten Zeile wird das System zur Prozessverwaltung in das Dateisystem eingebunden. Die Dateien und Verzeichnisse des /proc-Verzeichnisses existieren nicht tatsächlich auf der Festplatte; es handelt sich nur um ein Abbild von Daten, die kernelintern verwaltet werden.
Die Syntax in /etc/fstab
Aus den obigen Beispielen geht bereits das prinzipielle Format von fstab hervor: Jede Zeile beschreibt in sechs Spalten einen Datenträger (eine Partition, ein Dateisystem).
Die erste Spalte enthält den Device-Namen des Datenträgers. Statt des Device-Namens können Sie auch den Volume Name oder die ID-Nummer des Dateisystems angeben. Die korrekte Syntax lautet in diesem Fall LABEL=zeichenkette oder UUID=nnn-nnn. Mit blkid ermitteln Sie den Partitionsnamen und die UUID einer Partition. Um diese Daten zu ändern, setzen Sie je nach Dateisystem unterschiedliche Werkzeuge ein, beispielsweise tune2fs.
Der Vorteil von Labels oder UUIDs im Vergleich zu Device-Namen besteht darin, dass die Angabe selbst dann noch korrekt ist, wenn sich der Device-Name geändert hat. Das kann insbesondere bei USB-Datenträgern leicht passieren: Je nachdem, welche Datenträger vorher verwendet wurden, kann es durchaus sein, dass die externe Festplatte einmal unter /dev/sdc und das nächste Mal unter /dev/sde angesprochen wird.
Leider wird fstab insbesondere bei der Verwendung von UUIDs sehr unübersichtlich. Probleme kann es auch geben, wenn mehrere Linux-Distributionen parallel installiert werden. In der Regel werden bei jeder Installation einzelne Partitionen neu formatiert. Sie erhalten bei dieser Gelegenheit neue UUIDs. Die bisher installierten Distributionen kennen diese Partitionen nun nicht mehr, und fstab muss mühsam an die neuen UUIDs angepasst werden.
Die zweite Spalte gibt an, bei welchem Verzeichnis der Datenträger in den Dateibaum eingebunden wird. Die in der zweiten Spalte angegebenen Verzeichnisse müssen bereits existieren. Die Verzeichnisse müssen nicht leer sein, allerdings können Sie nach dem Einbinden des Dateisystems auf die darin enthaltenen Dateien nicht mehr zugreifen, sondern nur auf die Dateien des eingebundenen Datenträgers.
Die dritte Spalte gibt das Dateisystem an. Tabelle 23.4 listet in alphabetischer Reihenfolge die wichtigsten Dateisysteme auf.
Dateisystem |
Verwendung |
---|---|
auto |
Dateisystem automatisch erkennen |
btrfs |
btrfs-Dateisystem |
cifs |
Windows-Netzwerkverzeichnis (Samba) |
ext2, -3, -4 |
ext-Dateisystem Version 2, 3 und 4 |
iso9660 |
Daten-CDs |
nfs |
Unix-Netzwerkverzeichnis (NFS) |
ntfs |
Windows-Dateisystem |
proc |
Prozessverwaltung (/proc) |
smbfs |
Windows-Netzwerkverzeichnis (Samba) |
swap |
Swap-Partitionen oder -Dateien |
sysfs |
Systemverwaltung (/sys) |
tmpfs |
temporäres Dateisystem |
udf |
Universal Disk Format (DVDs, CD-RWs) |
vfat |
Windows-9x/ME-Dateisystem |
xfs |
XFS-Dateisystem |
Tabelle 23.4Dateisysteme
Es ist auch zulässig, mehrere Dateisysteme durch Kommas getrennt anzugeben. Beispielsweise bietet sich iso9660,udf für CD- und DVD-Laufwerke an, weil für CDs und DVDs in der Regel nur diese beiden Dateisysteme infrage kommen. mount entscheidet sich zwischen den zur Auswahl stehenden Systemen automatisch für das richtige. Die Dateisystemnamen dürfen nicht durch Leerzeichen getrennt werden.
Die vierte Spalte bestimmt Optionen für den Zugriff auf den Datenträger.
Mehrere Optionen werden durch Kommata getrennt. Abermals dürfen keine Leerzeichen eingefügt werden! Tabelle 23.5 zählt die wichtigsten universellen mount-Optionen auf. Wenn Sie gar keine Option nutzen möchten, geben Sie defaults an.
Option |
Bedeutung |
---|---|
defaults |
Standardoptionen verwenden |
dev |
Kennzeichnung von Character- oder Block-Devices auswerten |
SSD-Trim aktivieren (ext4, btrfs, xfs und swap) |
|
exec |
Programmausführung zulassen (z.B. für CD/DVD-Laufwerke) |
Datenträger nicht beim Systemstart einbinden |
|
Kennzeichnung von Character- oder Block-Devices ignorieren |
|
keine Programmausführung erlaubt |
|
Suid- und Guid-Zugriffsbits nicht auswerten |
|
ro |
Read Only (Schreibschutz) |
sw |
Swap (Swap-Datei oder -Partition) |
suid |
Suid- und Guid-Zugriffsbits auswerten |
sync |
Schreibzugriffe nicht puffern (sicherer, aber langsamer) |
Der Besitzer darf (u)mount ausführen. |
|
user |
Jeder darf mount ausführen, aber nur der Benutzer des letzten mount-Aufrufs darf umount ausführen. |
users |
Jeder darf mount und umount ausführen. |
Tabelle 23.5mount-Optionen
Die fünfte Spalte enthält Informationen für das Programm dump und wird von Linux ignoriert. Es ist üblich, für die Systempartition 1 und für alle anderen Partitionen oder Datenträger 0 einzutragen.
Die sechste Spalte gibt an, ob und in welcher Reihenfolge die Dateisysteme beim Systemstart überprüft werden sollen. Oft wird 1 für die Systempartition und 0 für alle anderen Partitionen eingetragen. Das bedeutet, dass beim Rechnerstart nur die Systempartition auf Fehler überprüft und gegebenenfalls repariert wird.
Falls Sie möchten, dass weitere Partitionen automatisch überprüft werden, geben Sie bei diesen Partitionen die Ziffer 2 an, d.h., die Überprüfung soll nach der Kontrolle der Systempartition erfolgen. Wenn Einträge in der fünften und sechsten Spalte in /etc/fstab fehlen, wird 0 angenommen.