[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:mount: Ein Dateisystem einhängen] [:Root-Rechte:mit Root-Rechten arbeiten] }}} [[Inhaltsverzeichnis(3)]] Die wichtige Systemdatei '''/etc/fstab''' beschreibt, wie die gesamte Dateihierarchie aus einzelnen dem System bekannten Dateisystemen zusammengebaut werden soll. Dies geschieht durch Einbinden[3] (Fachbegriffe: ''mounting'', ''mount'', ''mounten'') an bestimmte Stellen (''Einbindepunkt'', ''mount point'') in der Dateihierarchie. Die Systemdatei beschreibt nur, wie das Ergebnis aussehen soll und führt den Zusammenbau nicht selbst aus. [[Anker(Sorgfalt) ]] {{{#!vorlage Warnung Syntaktische oder inhaltliche Fehler in der Systemdatei '''/etc/fstab''' können den Start des Betriebssystems verhindern. Änderungen an dieser Datei dürfen nur durch [:root:] erfolgen und erfordern vom [:Administrator:] stets besondere Vorsicht. Auch jede fehlerfreie Zeile kann den Start des Betriebssystems verhindern, wenn das beschriebene Dateisystem nicht eingebunden werden kann. Man sollte bei automatisch einzubindenden Dateisystemen immer eine Fehlerbehandlung vorsehen, dies kann durch Optionen wie z.B. `nofail` oder bei manchen Dateisystemtypen `errors=` erfolgen. }}} = Grundlagen = Die Konfigurations-Datei '''/etc/fstab''' ist technisch eine ganz normale Textdatei, Sie sollte `root` gehören und nur dieser sollte in sie schreiben können, aber jeder darf sie lesen. Der Modus `644` ist zweckmäßig. Kontrolle im Terminal[1]: [[Vorlage(Befehl, "ls -l /etc/fstab" ) ]] {{{ -rw-r--r-- 1 root root 2893 Mai 27 23:20 /etc/fstab }}} Die Datei wird bei der Installation von Ubuntu gemäß den im Installationsprogramm vorgenommenen Einstellungen angelegt. Sie enthält außer Kommentaren und Leerzeilen eine Datenzeile für das Root-Dateisystem und nur für die bei der Installation angegebenen Partitionen wie z.B. EFI-Systempartition und ggf. Swap-Partition und weiteren individuell angegebenen Partitionen ggf. weitere Datenzeilen. Nur für die Dateisysteme aus den bei der Installation relevanten Partitionen wurden auch Einbindepunkte angelegt. Im Betrieb können notwendige Anpassungen von einem [:Administrator:] mittels Texteditor[2] mit Root-Rechten[4] und [#Sorgfalt besonderer Sorgfalt] erfolgen. Siehe: [#Datei-etc-fstab-bearbeiten Datei /etc/fstab bearbeiten] Die Datei kann man auch mit [:less:] lesen: [[Vorlage(Befehl, "less /etc/fstab" ) ]] ## Die Zeilen in der Tabelle werden im Text als Beispiele verwendet. NICHT ÄNDERN! [[Anker(Beispiel1) ]]Beispielausgabe: {{{#!code sh # file_system mount_point type options dump pass UUID=03b77228-ed4c-4218-910e-11b9f77c4b46 / ext4 errors=remount-ro 0 1 UUID=8883dbc8-80f8-49b8-8c5f-13a32baefe98 none swap nofail UUID=65D1-EDBF /boot/efi vfat noauto,user,umask=022 0 2 /dev/sda2 /media/sda1 ntfs3 nofail,nodev,noexec,windows_names /dev/sdb /media/Daten vfat noauto,user,umask=222 LABEL=Backup-3 /media/Backup ext4 noauto,user /dev/cdrom /media/cdrom0 udf,iso9660 noauto,ro,user # }}} Neben den für den Betrieb unbedingt erforderlichen Dateisystemen kann '''fstab''' auch Einträge für das temporäre Einbinden von zusätzlichen Datenträgern (siehe [:mount:])[3] und/oder für entfernte Dateisysteme oder Netzwerk-Freigaben enthalten. Die Datei wird von etlichen Programmen gelesen, aber in der Regel erfolgt kein schreibender Zugriff (Ausnahme siehe [#GUI unten]). Beispiele: * [:mount:] bzw. libmount und umount * dump (Ein urtümliches, nur noch namentlich bekanntes und verschollenes Programm, sicherte ohne Betriebssystem Datenträger auf Magnetband.) * swapon, siehe [:Swap:] * [:fsck:] * [:FUSE:] * [:systemd:]: Bei Systemen mit systemd als Init-System (bei Ubuntu seit Version [:15.04:]), werden auf Basis der Datei '''/etc/fstab''' entsprechende [:systemd/Mount_Units: mount Units] erstellt. * [:UDisks:] = Format = Die Datei besteht aus Zeilen, die mit einem Zeilenvorschubzeichen (ASCII 10, `\012`) enden. Mögliche Zeilen sind: * Leerzeilen enthalten gar nichts oder höchstens Leerzeichen und/oder Tabulatorzeichen. Leerzeilen werden von der Software ignoriert und dienen nur dem Leser zu verbesserter Lesbarkeit. * Kommentarzeilen beginnen mit einer Raute # (ASCII 35, `\043`) und können beliebigen Text enthalten. Kommentarzeilen werden von der Software ignoriert und dienen nur dem Leser zum Verständnis. Beispiele für Kommentarzeilen sind [#Beispiel1 Zeilen 1 und 10 in obigem Beispiel]. Manchmal ist sinnvoll, zeitweise nicht benötigte Datenzeilen in Kommentarzeilen umzuwandeln. * Datenzeilen enthalten 4 Felder und möglicherweise 2 weitere Felder gemäß Tabelle 1. Die Felder werden voneinander getrennt mit Leerzeichen oder Tabulatoren oder Kombinationen aus solchen. Jede Datenzeile enthält die für die Einbindung eines Dateisystems benötigten vollständigen Informationen. Beispiele für Datenzeilen sind [#Beispiel1 Zeilen 2-5 und 7-9 in obigem Beispiel]. {{{#!vorlage Tabelle <:-3 tableclass="zebra_start3" rowclass="titel";>Tabelle 1: Felder in Datenzeilen von '''/etc/fstab''' +++ Nr. Feldname Beschreibung +++ [#Feld1 1] file_system Identifiziert den Speicherort (die Quelle, SOURCE bei Programm [:mount:]) des einzubindenden Dateisystems. +++ [#Feld2 2] mount_point Beschreibt den Ort im der Dateihierarchie (TARGET beim Programm [:mount:]), an dem das einzubindende Dateisystem angeordnet werden soll. +++ [#Feld3 3] type Enthält den für die Einbindung zu verwendenden Treiber. Entspricht dem Wert für den [:mount#Parameter:Parameter `-t` beim Programm `mount`]. +++ [#Feld4 4] options Hier stehen alle Randbedingungen, die bei der Einbindung beachtet werden sollen, in Form einer mit Komma getrennten Liste von Schlüsselwerten. Diese Liste entspricht dem Wert für den [:mount#Parameter:Parameter `-o` beim Programm `mount`]. +++ 5 dump[[BR]](optional) Gibt an, ob vor Systemstart mit dem heute nicht mehr gebräuchlichen Programm dump gesichert werden soll. Zulässige Werte sind `0` und `1`. Die Voreinstellung `0` steht für keine Sicherung. Man muss in diesem Feld nur dann etwas eintragen, wenn im 6. Feld etwas anderes als `0` stehen soll. +++ 6 pass[[BR]](optional) Gibt an, ob und in welcher Reihenfolge [:fsck:] die Datenquelle beim Systemstart auf Inkonsistenz überprüft. Zulässige Werte sind `0`, `1` und `2`. Die Vorgabe `0` bedeutet [:Dateisystemcheck#berpruefung-abschalten:keine Überprüfung] und muss nicht angegeben werden. Beim Root-Dateisystem, welches auf die Wurzel des Dateisystems '''/''' eingebunden wird, gibt man `1` (d.h. zuerst prüfen) an und bei allen anderen für den Betrieb kritischen Dateisystemen `2` (danach prüfen). Für Dateisysteme des Typs NTFS sollte man diese automatische Prüfung abschalten. }}} Die Reihenfolge der Datenzeilen ist nicht vollständig willkürlich, da die Datei sequentiell gelesen wird. Eine Datenzeile kann nur Orte als Quelle bzw. Ziel referenzieren, die durch bereits ausgeführte andere Datenzeilen bereitgestellt werden, die in der Datei vor ihr selbst liegen. Das Root-Dateisystem muss daher in der ersten Datenzeile stehen. Jede Datenzeile, und damit auch die letzte Datenzeile, muss mit einem Zeilenvorschubzeichen enden, sonst sind Fehlfunktionen möglich. Da man dies vergessen kann, ist es eine gute Praxis, die Datei mit einer Kommentarzeile wie im [#Beispiel1 Beispiel] zu beenden. {{{#!vorlage Hinweis Jedes Feld kann nur Werte ohne Leerzeichen oder Tabulator enthalten, weil diese als Trennzeichen zwischen Feldern interpretiert würden. Jedes Leerzeichen in Gerätenamen, Labels oder Einhängepunkten muss deshalb durch die Zeichenfolge ``\040`` umschrieben werden; jeder Tabulator durch `\011`. Beispiel: Eine Netzwerkfreigabe mit dem Namen `"A B"` (mit Leerzeichen zwischen den Buchstaben) kann dem Einbindepunkt '''"/media/X Y/"''' (mit Leerzeichen zwischen den Buchstaben) so zugeordnet werden: {{{Server/A\040B /media/X\040Y/ cifs _netdev \}}} * Nur diese Art der Quotierung ist zulässig. * Besser ist, auf Leerzeichen in Freigabe- und Ordnernamen zu verzichten. }}} [[Anker(Feld1) ]] == Feld 1: Datenquelle == Das erste Feld einer Datenzeile identifiziert den Speicherort des einzubindenden Dateisystems. Das kann eine Partition auf einem lokalen [:Datenträger:], wie z.B. '''/dev/sda8''' oder ein CD-Lesegerät '''/dev/cdrom''', eine bereits eingebundene Datei oder eine über das Netzwerk erreichbare Freigabe eines Dateiservers sein. Ein Dateisystem kann nach den Methoden in folgender Liste identifiziert werden: * Spezielles Merkmal wie [:UUID:], [:Labels:Label] oder weiteres Merkmal des Dateisystems oder der Partition: * `UUID` oder * `LABEL` des Dateisystems * beim [:gdisk:GPT-Partitionsschema]: `PARTUUID` (d.h. die UUID der Partition) oder * `PARTLABEL` (d.h. Label der Partition), in der sich das Dateisystem befindet * Gerätedatei der Partition im Verzeichnis '''/dev/''' (z.B.'''/dev/sda1` oder `/dev/nvme0n1p1''') * Symbolischer Link zur Gerätedatei, generiert aus einem weiteren Merkmal des Dateisystems oder der Partition in einem Unterverzeichnis von '''/dev/disk/'''. Alle verwendbaren solche Bezeichner für die erste Partition auf einer NVME-SSD zeigt z.B. dieser Befehl an: [[Vorlage(Befehl, "ls -l /dev/disk/*/* | grep p1$" ) ]] * Dateiname mit absolutem Pfad zur Datei, welche das einzubindende Dateisystem enthält. * URI zur Freigabe Wo möglich sollte man permanente Bezeichner wie [:UUID:] oder [:Labels:Label] statt der nur temporär gültigen Gerätedateien verwenden. So wird die Partition sicher identifiziert, während eine Gerätedatei unter Umständen z.B. beim nächsten Start einer anderen Datenquelle zugeordnet werden kann. Das folgende Beispiel zeigt die Zuordnung eines ext4-Dateisystems auf den Einhängepunkt '''/media/riese'''. (Zu beachten: Nur eine der beschriebenen Methoden darf aktiv sein, im Beispiel ist es WWN über Symlink.) {{{#!code sh /dev/disk/by-id/wwn-0x5110cca01372b542-part6 /media/riese ext4 noauto,users #UUID=ff287672-4f21-4a44-b21d-076a6acb2ee3 /media/riese ext4 noauto,users #LABEL=Disco\040Dingo /media/riese ext4 noauto,users #PARTUUID=417c0f9d-2ac1-43b5-8dfc-1cf2745df2ef /media/riese ext4 noauto,users #PARTLABEL=Disco\040Dingo\04019.04 /media/riese ext4 noauto,users }}} Die Artikel [:UUID:] und [:Labels:] beschreiben Methoden zur Anzeige und zur Vergabe dieser Merkmale. Einzubindende Netzwerk-Freigaben werden in der Regel über die [wikipedia:IP-Adresse:IP-Adresse] des Servers und den Namen der Freigabe identifiziert. Die Syntax für [:NFS:] und [:mount.cifs:SMB] unterscheidet sich etwas: {{{#!code sh # NFS-Freigabe: 192.168.1.100:/media/photos /media/Fotos nfs _netdev,WEITERE-OPTIONEN }}} {{{#!code sh # SMB-Freigabe (Samba- oder Windows): //192.168.1.100/music /media/Musik cifs _netdev,WEITERE-OPTIONEN }}} Statt der numerischen IP-Adresse können bei funktionierender Namensauflösung per DNS, mDNS ([:Avahi:]) oder [:Samba_Client/Windows-Netzwerk:NETBIOS] auch symbolische Rechnernamen verwendet werden. Zu den Optionen siehe [#Feld4 Abschnitt Optionen] und die speziellen Artikel zu NFS, SMB und weiteren möglichen Netzwerkprotokollen: * NFS: [:NFS#Auf-Freigaben-zugreifen:NFS] und [:NFSv4/#Einhaengen-der-Freigaben-am-Client:NFSv4] * SMB: [:mount.cifs#Optionen:] und [:mount.cifs#VFS-Optionen:] * SFTP: [:FUSE/sshfs:sshfs] * WebDAV: [:WebDAV#Verbindung-per-davfs2:davfs2] Bei Dateisystemen, die selbst keine Daten speichern, sondern nur die Arbeitsweise von bereits eingebundenen Dateisystemen modifizieren, kann man statt der fehlenden Quelle eine beliebige Zeichenfolge angeben, mit der dann dieses Dateisystem in Listen bezeichnet wird. [[Anker(Feld2) ]] == Feld 2: Einhängepunkt === Das zweite Feld beschreibt den Ort in der Dateihierarchie, an dem das einzubindende Dateisystem angeordnet werden soll. In der Regel ([#Swap-Partition Ausnahme: Swap]) ist dies ein bereits existierender Ordner mit seinem absoluten Pfad. Der Ordner muss in der Regel unabhängig von der Bearbeitung der Datei '''/etc/fstab''' von Hand angelegt werden. Bei den Einträgen in '''fstab''', die bei der Installation von Ubuntu automatisch vorgenommen werden, wurden auch die Einhängepunkte schon automatisch bei der Installation erstellt. Beim Einbinden per [:udisksctl:] werden ggf. Einbindepunkte automatisch erstellt, bei Benutzung von [:mount:] aber nicht. Das Einhängen ist prinzipiell an jeder Stelle in der Dateihierarchie möglich. Es ist üblich, dafür Unterordner in '''/media''' oder '''/mnt''' zu erstellen: * '''/media''' -- Nebeneffekt: Es erscheint ein Symbol auf dem Desktop und/oder anderer Stelle der GUI. * '''/mnt''' -- Nebeneffekt: Das eingebundene Dateisystem wird in der GUI nicht dargestellt, kann aber natürlich durch Navigation im [:Dateimanager:] erreicht werden. Unterordner in '''/mnt/''' widersprechen zwar dem ursprünglich gedachten Zweck für diesen Systemordner, verursachen aber keine Probleme. Der als Einbindepunkt vorgesehene Ordner soll leer sein. Obwohl technisch nicht erforderlich, verlangen manche Programme dies. Auf jeden Fall sind für die Dauer einer Einbindung ursprünglich im Einbindepunkt enthaltene Dateien nicht zugänglich. [[Anker(Swap-Partition) ]]Bei einer [:Swap:Swap-Partition] gibt man selbst keinen Einhängepunkt an, sondern notiert den speziellen Wert `none` im zweiten Feld. [[Anker(Feld3) ]] == Feld 3: Typ des Dateisystems == Das dritte Feld identifiziert den für die Einbindung zu verwendenden Treiber. Das kann der Name eines Kernel Moduls oder ein FUSE-Programm sein, welches über ein Hilfsprogramm mit Namensschema '''/sbin/mount.*''' aktiviert wird. Der konkrete Name erinnert jedenfalls an den Typ des Dateisystems. [[Anker(Tabelle2) ]] {{{#!vorlage Tabelle <:-4 tableclass="zebra_start3" rowclass="titel">Tabelle 2: Auswahl wichtiger Bezeichner für Dateisysteme +++ Bezeichner Art Dateisystem Spezielle Optionen / Bemerkungen +++ <-3> Für alle Dateisystemtypen sind die allgemeinen Optionen lt. [#Tabelle3 Tabelle 3] und [#Tabelle4 Tabelle 4] möglich. +++ `ext4` Kernel [:ext:ext2/3/4] Mögliche Optionen für Feld 4 siehe: [:ext/#Mount-Optionen:] +++ `swap` Kernel [:Swap:] Mögliche Optionen für Feld 4 für Swap (sowohl Partition wie Auslagerungsdatei) sind `pri=`, `discard=` und `nofail`, die in der Manpage zu `swapon` beschrieben sind und selten angewendet werden. Üblich ist auch die Angabe `sw` als einzige Option, was gar nichts bedeutet, aber das Feld füllt. +++ `vfat` Kernel FAT12/16/32 Mögliche Optionen für Feld 4 siehe: [:Mount-Optionen vfat:] und [:Windows-Partitionen unter Linux:] +++ `exfat` Kernel <|2>exFAT <|2>Mögliche Optionen für Feld 4 siehe: [:exFAT:] und [:Windows-Partitionen unter Linux:] +++ `exfat-fuse` FUSE +++ `ntfs3` Kernel <|2>NTFS Mögliche Optionen für Feld 4 siehe: [:NTFS3:] und [:Windows-Partitionen unter Linux:] +++ `ntfs-3g` FUSE Mögliche Optionen für Feld 4 siehe: [:NTFS-3G:] und [:Windows-Partitionen unter Linux:] +++ `nfs` [:NFS:] Mögliche Optionen für Feld 4 siehe: [:NFS/#Auf-Freigaben-zugreifen:] +++ `cifs` Kernel [:mount.cifs:SMB] Mögliche Optionen für Feld 4 siehe: [:mount.cifs#Optionen:] +++ `auto` <-2> Es werden alle dem Kernel bekannten Dateisystemtypen ausprobiert bis die Einbindung gelingt und das sollte nach Möglichkeit vermieden werden, da so keine reproduzierbaren Ergebnisse garantiert werden können. +++ `none` VFS Wichtig für `bind`, `move` und weitere Optionen zur [#bind Reorganisation von Einbindungen]. }}} Viele weitere Typangaben sind möglich, beispielsweise `xfs, btrfs, f2fs, hfsplus, tmpfs, sysfs, proc, iso9660, udf, squashfs` und weitere. Die Manpage zu `mount` enthält Details: [[Vorlage(Befehl, "man mount" ) ]] [[Anker(Feld4) ]] == Feld 4: Optionen == Im vierten Feld stehen alle Randbedingungen, die bei der Einbindung beachtet werden sollen, in Form einer mit Komma getrennten Liste von Schlüsselwerten. Diese Liste ist ein Sammelsurium ganz unterschiedlicher Angaben: * Angaben für das die Einbindung tatsächlich ausführende Programm, siehe [#Tabelle3 Tabelle 3]. * Angaben, wie das Dateisystem auf der abstrahierenden Ebene des Virtuellen Dateisystems (VFS, Virtual File System) im Linux Kernel behandelt werden soll, siehe [#Tabelle4 Tabelle 4]. Dies sind generelle Optionen, die allgemein für jeden Dateisystemtyp gelten. * Optionen, welche das Verhalten des speziellen Treibers lt. [#Feld3 drittem Feld] modifizieren. Siehe dazu die speziellen Artikel zum jeweiligen Dateisystemtyp und Manpage lt. [#Tabelle2 Tabelle 2]. * Angaben für den Desktop, wie das Dateisystem in der GUI dargestellt werden soll. [#GUI Siehe unten]. * Eigens erfundene Angaben für individuelle Zwecke [[Anker(Tabelle3) ]] {{{#!vorlage Tabelle <:-4 tableclass="zebra_start3" rowclass="titel">Tabelle 3: Auswahl gängiger Optionen für das einbindende Programm +++ Option Vorgabe Programm Wirkung +++ `noauto` `auto` <|2>[:mount:] Angabe, ob das Dateisystem in dieser Datenzeile beim Systemstart automatisch eingebunden (`auto` oder fehlendes `noauto`) werden soll oder nicht (`noauto`). +++ `user`[[BR]]`users` `nouser` Angabe, ob ein normaler Benutzer (≠ root) mit dem Programm [:mount:] diese Datenzeile benutzen darf oder nicht. Die Optionen `user` und `users` erlauben jedem normalen Benutzer einhängen und aushängen (bei `users` muss es zum Aushängen nicht derselbe Benutzer sein).[[BR]]Zusätzlich sind dies Abkürzungen für die VFS-Optionen: `nodev,noexec,nosuid` +++ `_netdev` <|2>[:systemd:] Bei Netzlaufwerken ist diese Kennzeichnung eine gute Praxis. Systemd versucht dann beim Hochlauf eine Einbindung erst nach der Verfügbarkeit des Netzwerks. +++ <-2>`x-systemd.*` Optionen für bestimmte Komponenten von Systemd; siehe [#Automounter Automounter] für Beispiele. +++ <-2>`x-gvfs-show` Desktop GUIs Das Dateisystem wird in der grafischen Oberfläche als Symbol und/oder Element in Listen angezeigt. }}} [[Anker(Tabelle4) ]] {{{#!vorlage Tabelle <:-3 tableclass="zebra_start3" rowclass="titel">Tabelle 4: Auswahl wichtiger Optionen für VFS (gelten für jeden Dateisystemtyp) +++ Option Vorgabe Bedeutung +++ `ro` `rw` Angabe, ob das Dateisystem schreibgeschützt (`ro`) oder beschreibbar (`rw`) eingehängt werden soll. +++ `nodev` `dev` Angabe, ob vom eingebundenen Dateisystem Gerätedateien nach '''/dev/''' importiert werden sollen oder nicht. Diese früher wichtige Prozedur ist ein Sicherheitsproblem und in der Regel nicht mehr erforderlich, weil Gerätedateien nun beim Systemstart in der Dateihierarchie stets erzeugt werden. Nach Möglichkeit immer `nodev` wählen. +++ `noexec` `exec` Angabe, ob Dateien aus dem Dateisystem als Programm ausgeführt werden können oder nicht. Bevorzugt die sichere Option `noexec` wählen. +++ `nosuid` `suid` Angabe, ob ausführbare Dateien aus dem Dateisystem auch über das das SUID-Bit mit den Rechten des Eigentümers der Datei, z.B. `root` ausgeführt werden dürfen. Das stellt ein Sicherheitsrisiko dar. Deshalb besser `noexec` wählen oder wenn dies unmöglich, wenigstens `nosuid`. +++ <-2>`nofail` Bei einem fatalen Fehler bei der Einbindung nicht in Panik fallen, sondern fortfahren. +++ `atime`[[BR]]`noatime` `relatime` Angabe, wie oft und in welchen Situationen der Zeitstempel `access time` aktualisiert werden soll. In den meisten Fällen ist die Vorgabe `relatime` zweckmäßig; hierbei wird der Zeitstempel nur in besimmten Situationen geschrieben. Mit `atime` oder`noatime` kann die Aktualisierung vollständig ein- bzw. ausgeschaltet werden. +++ `nodiratime` `diratime` <|3>Mit diesen Optionen kann die Aktualisierungshäufigkeit des Zeitstempels `access time` fein gesteuert werden. Details dazu siehe Manpage von `mount`. +++ `strictatime` `nostrictatime` +++ `lazytime` `nolazytime` +++ `sync`[[BR]]`dirsync` `async` Angabe, ob Schreibzugriffe stets unverzüglich (`sync`) erfolgen sollen oder gepuffert. In der Regel liefert die Vorgabe `async` bessere Performanz als `sync`, kann aber bei vom System leicht trennbaren Datenträgern wie z.B. USB-Sticks bei Fehlbedienung Datenverluste ermöglichen.[[BR]]Option `sync` betrifft alle Ein-/Ausgaben, `dirsync` beschränkt synchrone Zugriffe auf Ordner. +++ `defaults` Abkürzung für die Optionen: `rw,suid,dev,exec,auto,nouser,async`. Besser nicht verwenden, da dies in den meisten Fällen keine gute Vorauswahl darstellt und die Vorgabewerte ja auch ohne diese Angabe zunächst gelten. +++ <-2>`bind` Siehe [#bind Reorganisation von Einbindungen] }}} Diese und weitere Optionen sind beschrieben in der Manpage zu `mount` im Abschnitt "FILESYSTEM-INDEPENDENT MOUNT OPTIONS". Die Reihenfolge der Angaben in der Optionsliste ist wichtig! Wenn man einander widersprechende Optionen angibt, gewinnt die letzte Angabe. Das gilt auch für Abkürzungen wie `defaults` oder `user`. Da die Option `defaults` u.a. `auto` und `nouser` impliziert, müssen explizit angegebene Optionen `noauto` und `user` sowie auch alle anderen, die sonst durch `defaults` wieder aufgehoben würden, in der Reihenfolge nach `defaults` stehen. [[Anker(GUI) ]] = Datei /etc/fstab bearbeiten = {{{#!vorlage Hinweis Wie jede Systemdatei sollte man auch diese möglichst nicht mit einem grafischen Editor bearbeiten oder jedenfalls den Artikel [:mit Root-Rechten arbeiten:] beachten. }}} Das Programm [:Laufwerksverwaltung:] (alias ''Laufwerke'', `gnome-disks`) enthält einen speziellen Editor (siehe [:Laufwerksverwaltung/#Einhaengeoptionen-bearbeiten:]), mit dem man als [:Administrator:] (man wird nach dem Passwort eines solchen gefragt) die Datei bearbeiten kann. Hiermit kann man auch die Sichtbarkeit eines eingebundenen Dateisystems in der GUI steuern: * Man muss im Programm Laufwerke einen Datenträger und eine Partition auf diesem auswählen und dann das Menü zur Bearbeitung der Partition aufrufen; dies macht man mit einem Klick auf das Symbol mit einem Zahnrad oder Getriebe. * Im aufklappendem Menü wählt man den Punkt ''„Einhängeoptionen bearbeiten …“'' * Im nun erscheinenden Dialogfenster muss man ggf. ''„Vorgaben zur Benutzersitzung“'' ausschalten und kann dann die Felder bearbeiten. * Zum Schluss übernimmt man die Einstellungen mit einem Klick auf ''OK'' in die Datei '''/etc/fstab'''. Änderungen an der '''/etc/fstab''' werden beim erneuten Start wirksam oder beim erneuten Lesen durch ein geeignetes Programm. Man sollte Systemd über erfolgte Änderungen informieren, indem man die [:systemd/systemctl/#daemon-reload:Konfigurationsdateien neu einlesen] lässt. = Dateisystem einhängen = Alle Datenzeilen in der Datei '''fstab''', die in der Optionsliste __keine__ wirksame Option `noauto` enthalten, werden beim Systemstart in der angegebenen Reihenfolge vom Initsystem automatisch abgearbeitet, d.h. diese Dateisysteme werden eingebunden. Wenn man die Datei ändert, kann man anschließend diese Arbeitsweise mit dem Befehl [[Vorlage(Befehl, "sudo mount -v -a" ) ]] ohne erneuten Start wiederholen. Jeder mit der Option `noauto` markierte Eintrag kann im laufenden Betrieb fallweise aktiviert werden: * Bei externen Datenträgern reicht dazu in der Regel aus, sie an einem USB-Port anzuschließen, worauf sich der Diskmanager [:UDisks:] automatisch darum kümmert. * Bei internen (fest angeschlossenen) Datenträgern geschieht dies bei einem Desktop-System auch durch Klicken auf ein Bedienelement in der GUI. * Im Terminal kann man [:udisksctl:] benutzen, z.B. für [#Beispiel1 Zeile 7 im obigen Beispiel]: [[Vorlage(Befehl, "udisksctl mount -b /dev/sdb" ) ]] Man benötigt hierfür kein vorangestelltes `sudo` und muss auch die Option `user` nicht angeben. Statt der expliziten Gerätedatei darf man in der Datei '''fstab''' die Datenquelle auch über UUID, Label oder Symlink identifizieren; im Befehl muss es aber die Gerätedatei oder ein Symlink darauf sein. * Im Terminal kann man auch das klassische Programm [:mount:] einsetzen: [[Vorlage(Befehl, "mount -v /media/Daten" ) ]] Für die Benutzung des Programms `mount` durch einen normalen Benutzer ist die Option `user` erforderlich, da sonst ein `sudo` vorangestellt werden müsste. Die Datenzeile kann man – wie hier gezeigt – über den Einbindepunkt identifizieren oder alternativ über die Gerätedatei oder einen Symlink darauf. [[Anker(bind) ]] = Einbindungen reorganisieren = In manchen Fällen ist es sinnvoll, einzelne Ordner (oder auch einzelne Dateien) zusätzlich noch an anderer Stelle in die Dateihierarchie einzuhängen. Mit der Option `bind` kann man sowohl das ganze Dateisystem oder einen Teil daraus zusätzlich noch an anderer Stelle in die Dateihierarchie ggf. mit abweichenden Optionen einhängen. Als Typ des Dateisystems muss `none` angegeben werden. Beispiel: {{{ LABEL=Medien /mnt/Datengrab ext4 nodev,noexec /mnt/Datengrab/Musik /home/gast/Musik none noauto,user,bind,ro }}} Ähnlich wie die Option `bind` verhält sich die Option `move`, nur dass dann der betreffende Ordner nur noch am neuen Einbindepunkt erscheint. = Einbindung beenden = Alle eingehängten Geräte und Dateisysteme werden beim Herunterfahren des Systems automatisch korrekt wieder ausgehängt. Manchmal möchte man jedoch auch im Betrieb ein Dateisystem wieder aushängen, z.B. weil man eine externe Festplatte abschalten oder in ein anderes Netzwerk wechseln möchte. Dafür gelten folgende Regeln: * Alle über einen Eintrag in '''fstab''' beim Systemstart automatisch eingebundenen Dateisysteme können nur mit Root-Rechten[4] wieder ausgehängt werden: [[Vorlage(Befehl, "sudo umount SOURCE-oder-TARGET" ) ]] Insbesondere funktioniert das Aushängen mit einem Mausklick auf ''„Datenträger aushängen“'' in der GUI in diesen Fällen nicht. * Alle im Betrieb automatisch oder manuell eingebundenen Datenträger, z.B. zugesteckte USB-Sticks) mit und ohne einen Eintrag in der Datei '''fstab''' können durch denselben Benutzer wieder ausgehängt werden, der die Einbindung veranlasst hat (z.B. weil er gerade eingeloggt war). Hierfür wird eine Bedienung über die GUI empfohlen oder im Terminal über einen Befehl wie: [[Vorlage(Befehl, "udisksctl unmount -b SOURCE" ) ]] * In der Situation des vorstehenden Punktes gelingt oft auch eine Beendigung der Einbindung durch einen anderen Benutzer als bei der Einbindung, namentlich, wenn eine Datenzeile mit der Option `users` verwendet wird. Wenn man verschiedene Programme (`mount/umount`, `udisksctl`, GUI etc.) wechselweise verwendet, funktioniert dies aber nicht immer. = Anwendungen = == Externe Datenträger == Externe Datenträger wie z.B. USB-Laufwerke oder USB-Sticks werden von Desktop-Umgebungen wie [:GNOME:] oder [:KDE:] beim Systemstart oder beim Einstecken automatisch erkannt und eingebunden. Das erledigt unter der Haube der Diskmanager [:UDisks:]. Für diese Automatik benötigt man keine Datenzeile in der Datei '''fstab'''; da Bezeichnung und Einhängepunkt automatisch gewählt werden. Man kann allerdings mit einer Datenzeile in der Datei '''fstab''' dem Diskmanager die Randbedingungen der Einbindung vorschreiben und so einen bestimmten Datenträger z.B. immer an der gleichen Stelle und mit der gleichen Bezeichnung einbinden lassen. Der in '''fstab''' festgelegte Einhängepunkt und die dort eingetragenen Optionen haben immer Vorrang vor den Werten, die beim automatischen Einbinden verwendet würden. Externe Datenträger mit einer leicht lösbaren Verbindung zum Rechner können beim Rechnerstart zu Problemen bis zum völligen Versagen führen, wenn sie in der Datei '''fstab''' stehen. Man sollte vorsorglich für diese immer die Option `noauto` vorsehen, damit sie beim Start nicht automatisch eingebunden werden oder, wenn dies nicht möglich ist, wenigstens die Option `nofail` angeben, damit ein Fehler nicht zur Verweigerung des Starts führt. Beispiel: * Man verwendet externe USB-Festplatten zur Datensicherung. Die Datensicherung selbst erfolgt über ein hier nicht weiter besprochenes Skript, welches aber tätig werden soll, wenn ein Sicherungsmedium angeschlossen wird. * Zur Lösung der Aufgabe verwendet man einen Eintrag in der Datei '''fstab''' ähnlich [#Beispiel1 Zeile 8 im obigen Beispiel]. Schließt man nun die USB-Festplatte mit dem [:Labels:Label] `Backup-3` an, wird diese unabhängig davon, welchen USB-Anschluss man benutzt und auch unabhängig davon, welche anderen USB-Geräte angeschlossen sind, immer unter '''/media/Backup''' eingehängt. == Automounter == Ein Automounter ist ein Programm, welches einen Datenträger erst dann, und zwar dann automatisch, einbindet, wenn er benötigt wird, und dass er ggf. auch automatisch ausgebunden wird, wenn er nicht mehr benötigt wird. Die Motivation für dieses Vorgehen kann z.B. vorliegen als Sicherheitsbedürfnis oder auch dem Wunsch nach Energieeinsparung oder auch Verlängerung der Lebensdauer durch Vermeidung unnötigen Betriebs. Siehe Artikel [:Automount:]. Systemd enthält ein solches Programm, welches über Datenzeilen in der Datei '''fstab''' konfiguriert werden kann: * Option `noauto,x-systemd.automount` sorgt dafür, dass die Datenquelle nicht schon beim Systemstart, sondern erst bei einem Zugriffsversuch automatisch eingebunden wird. * Die Option `x-systemd.idle-timeout=60` ein, so wird Dateisystem nach einer Untätigkeit von 60 Sekunden wieder automatisch ausgehängt. Natürlich kann der Wert für das Timeout beliebig verändert werden. Ein solcher Eintrag könnte so aussehen: {{{ LABEL=Backup-2 /media/Backup ext4 noauto,nodev,noexec,x-systemd.automount,x-systemd.idle-timeout=60 }}} == Klonen von Festplatten == Bei einem Klon (Bit-für-Bit-Kopie) einer Festplatte oder einer Partition werden neben UUIDs und Labels auch die Dateien '''fstab''' getreu kopiert. Wenn man Original und Klon gleichzeitig an einem Rechner betreiben möchte, muss man diese Informationen anpassen, da sonst Schreibzugriffe auf das falsche Gerät möglich sind. Es ist zweckmäßig, vor dem Klonen in den Dateien '''fstab''' in Kommentaren die Nummern der Partitionen zu vermerken. == Einbindung verbieten == Für einzelne Datenträger lässt sich das Einbinden mit einem Eintrag in '''fstab''' unterbinden. Sollen die betreffenden Datenträger nicht an anderer Stelle, sondern gar nicht eingebunden werden, kann man sie gemäß folgendem Beispiel mit einem nicht existierenden Dateisystemtyp (z.B. `None`, nicht: `none`!) notieren: {{{SOURCE FEHLERMELDUNG None nofail }}} Für SOURCE kann jede [#Feld1 Kennung für das erste Feld] verwendet werden, welche das zu sperrende Dateisystem identifiziert. Für FEHLERMELDUNG kann man ein beliebiges Wort (ohne Leerzeichen!) wählen; man sollte hier den Namen der Gerätedatei (z.B. `sda`) für eine aussagekräftige Fehlermeldung angeben. Bei Verwendung von `udisksctl` wird ggf. FEHLERMELDUNG als Ordner angelegt; man sollte darauf achten, das dies in einem temporären Verzeichnis erfolgt. Beispiel: `sda1` nicht einhängbar: {{{/dev/sda1 /run/error/sda1 None nofail }}} = Beispiel = Ein ausführliches Beispiel der Anwendung von '''fstab''' ist im Artikel zu [:Archiv/Banshee#Musiksammlung-auf-externer-Festplatte:] anhand einer Musiksammlung auf der externen Festplatte beschrieben. = Links = * [:Datenträger:]: Identifikation und Zugriff auf Datenträger * [:Dateisystem:]: Übersicht und Eigenschaften verschiedener Dateisysteme * [:Dateisystemcheck:] * [:mount:]: Einbinden von Dateisystemen mit und ohne '''fstab''' * [:Autofs:]: Partitionen und Wechseldatenträger automatisch ein- und aushängen ("Automounter") * [:systemd:]: Init-System mit Automounter * [:UDisks:]: Disk Manager zum automatischen und manuellen Einbinden von Dateisystemen * [:mount.cifs:]: Windows- und Samba-Freigaben statisch und temporär einbinden * [:NFS:] und [:NFSv4:]: Dateisysteme über Netzwerk ex- und importieren * [:FUSE/sshfs:] Entfernte Dateisysteme über SSH einbinden * [:Externe_Laufwerke_statisch_einbinden:]: Besonderheiten beim statischen Einbinden externer Datenträger * [:Windows-Partitionen unter Linux:]: Windows-Partitionen einbinden * [https://web.archive.org/web/20130504144209/http://www.tuxfiles.org/linuxhelp/fstab.html How to edit and understand /etc/fstab] {en} # tag: System