/etc/fstab
Grundlagen
Die Konfigurations-Datei /etc/fstab enthält nötige Informationen, um das Einhängen von Partitionen ganz oder teilweise zu automatisieren. Bei Systemen mit systemd als Init-System (kommt unter Ubuntu seit Version 15.04 zum Einsatz), werden auf Basis der Datei /etc/fstab die entsprechenden mount Units erstellt.
Außerdem kann sie noch zusätzlich vom System/Kernel benötigte Einträge enthalten. Durch entsprechende Einträge in fstab kann man das temporäre Einbinden von Datenträgern vorbereiten (siehe mount) und entfernte Dateisysteme oder Netzwerk-Freigaben statisch ins lokale Dateisystem einbinden (z.B. mit sshfs, davfs2 oder cifs).
Bei der Installation von Ubuntu kann man den vorhandenen Partitionen einen Ort im Dateisystem zuweisen. Dann richtet Ubuntu für diese Partitionen einen Einhängepunkt ein und trägt sie auch automatisch in /etc/fstab ein. Danach nimmt Ubuntu an fstab selbständig keine Änderungen mehr vor. Wurden bei der Installation bestimmte Partitionen nicht automatisch eingetragen oder fügt man im Nachhinein neue Datenträger oder Partitionen hinzu bzw. ändert man die Partitionierung, so muss man fstab von Hand anpassen. Dies kann mit Root-Rechten in einem Editor geschehen. Bei Verwendung von systemd greifen Änderungen an der /etc/fstab erst, wenn das System neu gestartet wird oder indem man die Konfigurationsdateien neu einliest.
Externe Datenträger (z.B. USB-Laufwerke oder USB-Sticks) werden von Desktop-Umgebungen wie GNOME oder KDE beim Systemstart oder beim Einstecken automatisch erkannt und temporär eingebunden. Dabei braucht man sich um Bezeichnung und Einhängepunkt nicht zu kümmern. Möchte man jedoch, dass ein bestimmter externer Datenträger immer an der gleichen Stelle und mit der gleichen Bezeichnung eingebunden wird, dann sollte man für diesen einen Eintrag in fstab vornehmen. Dies gilt erst recht, wenn der externe Datenträger im Netzwerk freigegeben werden soll. Der in fstab festgelegte Einhängepunkt, der dortige Name und die dort eingetragenen Parameter und Optionen haben immer Vorrang vor den Werten, die beim automatischen Einbinden verwendet würden.
Aufruf
Um den Inhalt der Datei /etc/fstab nur anzusehen, braucht man keine Root-Rechte. Es genügt, die Datei in einem Editor zu öffnen oder ihn im Terminal mittels
less /etc/fstab
anzeigen zu lassen. Der Inhalt kann z.B. so aussehen:
/etc/fstab: static file system information. # # Zeilen, die mit dem Zeichen "#" beginnen, sind Kommentare. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 /media/sda1 ntfs defaults,nls=utf8,umask=007,gid=46 0 0 /dev/sda2 /media/sda2 ntfs defaults,nls=utf8,umask=007,gid=46 0 0 # /dev/sda6 UUID=03b77228-ed4c-4218-910e-11b9f77c4b46 / ext4 defaults 0 1 # /dev/sda7 UUID=8883dbc8-80f8-49b8-8c5f-13a32baefe98 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/cdrom /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/ /media/floppy0 auto rw,user,noauto 0 0 # externe tragbare ntfs-Festplatte zum Datenaustausch; nicht per UUID eingebunden /dev/sdb1 /media/ntfs-usbdisk ntfs rw,user,noauto,uid=0,gid=46,umask=007,nls=utf8 0 0 # selbst eingetragen: /dev/sda5 /media/daten vfat rw,auto,user,umask=0000 0 0 # Speicher für QEMU auf max 400 MB RAM festlegen none /dev/shm tmpfs defaults,size=400M # Das Filesystem eines anderen Rechners über fuse/ssh zum Einbinden vorbereiten (später genügt "mount /lokaler/mountpoint" sshfs#username@rechnername:/Pfad/auf_Fremndrechner /lokaler/mountpoint fuse uid=1000,gid=100,umask=0,allow_other,defaults,noauto 0 0 # Am Ende der fstab muss immer noch eine Leerzeile kommen, sonst erhält man die Fehlermeldung: no final newline at the end of /etc/fstab
Je nach Systemkonfiguration (z.B. separate Boot-Partition, ATA statt SATA/SCSI Platte) kann die eigene fstab auch etwas anders aussehen.
Aufbau
Jede Partition wird in einer eigenen Zeile eingetragen. Eine Zeile besteht aus sechs Spalten, mit folgender Bedeutung:
Spalten in /etc/fstab
Spalte | Beschreibung |
---|---|
<file system> | Enthält die Beschreibung des eingehängten Geräts, also z.B. Festplatten-Partitionen wie /dev/sda8, ein CD-Lesegerät /dev/cdrom. |
<mount point> | Hier wird der Einhängepunkt ("Mountpunkt") festgelegt, d.h. der Ordner, in den die Partition eingehängt werden soll. Die Angabe "none" wird verwendet, wenn die Partition keinen Einhängpunkt unter / besitzt. Beispiel: Swap |
<type> | Enthält die Art des Dateisystems, gemäß dem mount-Parameter -t. |
<option> | Enthält alle verwendeten Optionen, gemäß dem mount-Parameter -o. Unter Linux verbreitet ist die Option "defaults", die den Optionen "rw,suid,dev,exec,auto,nouser,async" entspricht. |
<dump> | Wenn man das Backup-Programm dump einsetzt, wird hier festgelegt ob die Partition gesichert wird. Voreinstellung ist "0" = keine Sicherung. |
<pass> | Gibt an, ob und in welcher Reihenfolge die Partition beim Systemstart in die regelmäßigen Dateisystemprüfungen einbezogen wird. Meist ist hier für die Root-Partition (die Wurzel des Dateisystems, /) "1" eingetragen, für alle anderen Partitionen "2" (danach prüfen) oder "0" (keine Überprüfung) z.B. für Windows-Dateisysteme. |
Hinzufügen oder Ändern von Einträgen
Bearbeiten mit einem Editor
Möchte man der fstab weitere Partitionen hinzufügen, beispielsweise um externe Festplatten dauerhaft einzuhängen, öffnet man die Datei mit Root-Rechten und fügt die entsprechende Zeile ein. Die Einträge in den Spalten werden dabei durch Tab ⇆ oder durch Leerzeichen getrennt. Eine Raute # am Anfang der Zeile bedeutet, dass diese Zeile auskommentiert ist, also beim Einlesen der Datei ignoriert wird. Damit lassen sich dann Kommentare zur Dokumentation der Datei einfügen oder auch Einträge deaktivieren, ohne sie gleich ganz löschen zu müssen.
Hinweis |
---|
Einträge in den einzelnen Spalten dürfen keine Leerzeichen enthalten, da diese als Trennzeichen zwischen Spalten interpretiert würden. Leerzeichen in Gerätenamen, Labels oder Einhängepunkten müssen deshalb durch die Zeichenfolge \040 umschrieben werden. Für andere besondere Zeichen (z.B. Klammern) genügt es, wie üblich das Zeichen "\" (Backslash) voran zusetzen. |
Beispiel:
# Dropbox in eine eigene Partition auslagern: UUID=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxx /media/Dropbox ext4 defaults 0 2 /media/Dropbox /home/BENUTZERNAME/Dropbox none bind 0 0
Änderungen werden erst nach einem Neueinlesen der fstab wirksam. Ohne Neustart kann man dies mit
sudo mount -a
bewerkstelligen.
Einhängepunkte
Nur bei den Einträgen in fstab, die bei der Installation von Ubuntu automatisch vorgenommen werden, werden auch die Einhängepunkte ("Mountpunkte") automatisch erstellt. Für alle anderen Einträge in fstab müssen die jeweiligen Mountpunkte von Hand erstellt werden. Das Einhängen ist prinzipiell an jeder Stelle in der Dateisystemhierarchie möglich. Üblich ist es jedoch, Unterordner in /media oder /mnt zu erstellen und diese zu verwenden.
- /media (es erscheint ein Symbol auf dem KDE- oder GNOME-Desktop).
- /mnt (es erscheint kein Symbol auf dem KDE- oder GNOME-Desktop).
Ab KDE4 werden standardmäßig keine Desktop-Icons mehr für eingehängte Partitionen erstellt, sie befinden sich aber in dem KDE-eigenen Dateimanager Dolphin in der Seitenleiste unter Orte.
Möchte man z.B. die ext4-Partition /dev/sda4 mit der Option defaults unter /media/LinuxLaufwerk einhängen, so erstellt man mit folgender Befehlszeile den Mountpunkt:
sudo mkdir /media/LinuxLaufwerk
Dann editiert man mit einem beliebigen Editor [2] mit Root-Rechten die Datei /etc/fstab und trägt dort folgende Zeile ein (die Leerzeile am Schluss nicht vergessen!):
/dev/sda4 /media/LinuxLaufwerk ext4 defaults 0 2
wobei die Werte für dump und pass natürlich den eigenen Bedürfnissen angepasst werden können.
Nach einem Neustart des Systems oder nach Eingabe der Befehlszeile
sudo mount -a
müsste die ext4-Partition jetzt sichtbar und der Zugriff darauf möglich sein.