Fstab - Use SystemD automount (de): Unterschied zwischen den Versionen
EgLe (Diskussion | Beiträge) |
EgLe (Diskussion | Beiträge) |
||
Zeile 388: | Zeile 388: | ||
[[File:Dolphin-automount.png]] | [[File:Dolphin-automount.png]] | ||
− | [[Category:Index]] | + | [[Category:Index, Netzwerk]] |
Version vom 2. April 2017, 11:58 Uhr
- in Deutsch | - in English |
Inhaltsverzeichnis
Einführung
Betriebssysteme die das init-System "systemd" verwenden enthalten einen Automounter der nicht extra installiert werden muss.
Dieser Automount kann recht einfach über einen Eintrag in der /etc/fstab aktiviert werden.
Wer dies nur testen will weil er die ganze Zeit seine Automounts mittels "autofs" erledigte muss unbedingt sein autofs vorher benden und deaktieren. Beides zusammen gibt nur Probleme...
Dies kann man recht einfach mit den folgenden zwei Befehlen erledigen:
systemctl stop autofs.service
systemctl disable autofs.service
Datei Beispiel
Ein Simples Automount-Beispiel (NFS) der /etc/fstab, Mit Kernelnamen deskriptoren:
# <file system> <dir> <type> <options> <dump> <pass> 192.168.1.10:/Multimedia /media/Qnap-Media nfs x-systemd.automount,noauto 0 0
Kurze Erläuterung zu <dump> <pass>
- <dump> - Verwendung des Dump-Dienstes zum entscheiden, ob eine Sicherung zu machen ist. Dump überprüft den Eintrag und verwendet die Nummer, um zu entscheiden, ob ein Dateisystem gesichert werden soll. Mögliche Einträge sind 0 und 1. Wenn 0, wird Dump das Dateisystem ignorieren; Wenn 1, wird Dump eine Sicherung machen. Die meisten Benutzer haben keinen Dump installiert, also sollten sie 0 für den <dump> Eintrag setzen.
- <pass> - Verwendung des Filesystemcheck von fsck, um zu entscheiden, welche Order-Dateisysteme überprüft werden sollen. Mögliche Eingaben sind 0, 1 und 2. Das Root-Dateisystem sollte die höchste Priorität 1 haben (es sei denn, sein Typ ist btrfs, in diesem Fall sollte dieses Feld 0 sein) - alle anderen Dateisysteme, die Sie überprüft haben sollen Haben ein 2. Dateisysteme mit einem Wert 0 werden nicht vom fsck-Dienstprogramm überprüft.
Mehr infos zu den Kernelnamen deskriptoren und der /etc/fstab siehe in den Anleitungen zur "fstab"
Kurze Erläuterung (Auswahl) zu <options>
Die Optionen können erweiterut und verlängert werden, diese sind immer mit einem "Komma" ohne Leerzeichen zu trennen.
- noauto, auto - Mit "noauto" wird dieser mount nicht als Abhängigkeit für local-fs.target oder remote-fs.target hinzugefügt. Dies bedeutet, dass er nicht automatisch während des Bootvorgangs eingebunden wird, es sei denn, er wird von einer anderen Einheit eingezogen. Die automatische Option hat die entgegengesetzte Bedeutung und ist die Voreinstellung.
- x-systemd.automount - Für das Dateisystem wird eine Automount-Einheit erstellt.
- x-systemd.idle-timeout - Konfiguriert das Leerlauf-Timeout des Automount-Geräts. Angabe in Sekunden nach dem Leerlauf wird der Automount von systemd wieder gelöst. Laut der Manpage sollte aber auch eine Zeitangabe wie "5min 20s" funktionieren. Habe ich aber nicht getestet und verwende selbst lieber nur die Sekunden.
- x-systemd.device-timeout - Konfigurieren Sie, wie lange systemd auf ein Gerät warten soll, bevor Sie einen Eintrag aus / etc / fstab aufgeben. Geben Sie eine Zeit in Sekunden an oder geben Sie explizit eine Einheit wie "s", "min", "h", "ms" an.
- retry=0 - Diese sorgt dafür, dass mount sofort aufgibt, falls der Server nicht erreichbar ist. Anderenfalls würde mount für zwei Minuten versuchen den Server zu erreichen und so lange blockieren. Dieses Verhalten ist an sich kein Problem, kann man aber somit vermeiden.
- nolock - Deaktiviert das Sperren von Dateien. Wird gelegentlich für die Verbindung zu alten NFS-Servern benötigt
- soft - Bei Unterbrechungen sofort einen Timeout machen (verhindert ein Einfrieren des Dateimanagers)
- timeo=<SEKUNDEN> - In Verbindung mit soft kann festgelegt werden, wann der Timeout erfolgen soll.
- nofail - Mit nofail wird der mount nur von local-fs.target oder remote-fs.target gewünscht, nicht benötigt. Dies bedeutet, dass der Bootvorgang fortgesetzt wird, auch wenn dieser Einhängepunkt nicht erfolgreich eingebunden ist.
- retrans=n - Die Anzahl der Mountversuche, die der NFS-Client eine Anforderung wiederholt, bevor er eine weitere Wiederherstellungsaktion ausführt. Wenn die Retrans-Option nicht angegeben ist, versucht der NFS-Client jede Anfrage dreimal. Der NFS-Client generiert eine "Server nicht reagierende" Nachricht nach Retrans-Wiederholungen, dann versucht weitere Wiederherstellung (je nachdem, ob die Hard-Mount-Option in Kraft ist).
Mehr infos zu den möglichen Mount-Optionen siehe in den Anleitungen (ManPage) zu mount, systemd.mount, autofs, NFS, CIFS usw.
Praxis Beispiel einer /etc/fstab
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a device; this may # be used with UUID= as a more robust way to name devices that works even if # disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> UUID=A210-956E /boot/efi vfat defaults,noatime 0 2 UUID=1e0c7f27-b0ad-4b31-b411-e5d555c31708 swap swap defaults,noatime,discard 0 0 UUID=955936f6-0205-4c55-9395-b0470269dbff / ext4 defaults,noatime,discard 0 1 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 # NFS - automounts per systemd für Dreambox 192.168.1.15:/media/hdd /media/DB7080-hdd nfs x-systemd.automount,noauto,retry=0,x-systemd.idle-timeout=60,nolock,rw,timeo=2,retrans=1,x-systemd.device-timeout=2,soft,nofail 0 0 # NFS - automounts per systemd für Qnap 192.168.1.10:/Multimedia /media/Qnap-media nfs x-systemd.automount,noauto,retry=0,x-systemd.idle-timeout=60,nolock,rw,timeo=2,retrans=1,x-systemd.device-timeout=2,soft,nofail 0 0
Nach dem Letzten Eintrag in der fstab muss immer noch eine Leerzeile kommen, sonst erhält man die Fehlermeldung: no final newline at the end of /etc/fstab |
Automount Units
Wer sich einen Automount in der Art des obiogen Beispiels in die /etc/fstab eingetragen hat. Muss nur noch sein System neu booten oder mit dem folgenden Befehl die Änderungen aktivieren:
systemctl daemon-reload
Zum Glück für den einfachen User werden dann die Mount Units vom systemd-generator selbst erstellt.
Laut der systemd.generator - Man page
werden diese dann im regelfall automatisch unter /run/systemd/system-generators/* erstellt und können dort betrachtet werden.
Es wird zu jedem Automount ein passende automount-name.mount und eine automount-name.automount erstellt.
Aufbau der Automount Units
Nach dem obigen Beispiel der /etc/fstab würde nun im Verzeichnis /run/systemd/system-generators/* folgendes erstellt:
media-Qnap\x2dmedia.automount
Mit folgendem Inhalt:
# Automatically generated by systemd-fstab-generator [Unit] SourcePath=/etc/fstab Documentation=man:fstab(5) man:systemd-fstab-generator(8) Before=remote-fs.target [Automount] Where=/media/Qnap-media TimeoutIdleSec=1min
und dann noch eine Datei mit dem Namen:
media-Qnap\x2dmedia.mount
mit folgendem Inhalt:
# Automatically generated by systemd-fstab-generator [Unit] SourcePath=/etc/fstab Documentation=man:fstab(5) man:systemd-fstab-generator(8) [Mount] What=192.168.1.10:/Multimedia Where=/media/Qnap-media Type=nfs Options=x-systemd.automount,noauto,retry=0,x-systemd.idle-timeout=60,nolock,rw,timeo=2,retrans=1,soft,nofail
Steuerbefehle der Automounts
Der Hauptbefehl um Änderungen neu einzulesen haben wir weiter oben schon kennen gelernt:
systemctl daemon-reload
bei den einzelnen Automounts kann man diese mit dem echten Namen ansprechen:
systemctl restart media-Qnap\x2dmedia.automount systemctl start media-Qnap\x2dmedia.automount systemctl stop media-Qnap\x2dmedia.automount systemctl status media-Qnap\x2dmedia.automount
Wer mehrere Mounts in einem Verzeichnis hat, bsp. /media kann auch mit dem Joker "*" arbeiten:
systemctl restart media-*.automount systemctl start media-*.automount systemctl stop media-*.automount systemctl status media-*.automount
Hier mal ein extremes Beispiel:
root@dm7080:~# systemctl status media-*.automount ● media-nas-Qnap\x2desata.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 14s ago Where: /media/nas/Qnap-esata Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-nas-Qnap\x2desata.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2desata.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2desata.automount. ● media-nas-Qnap\x2dsonstiges.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 14s ago Where: /media/nas/Qnap-sonstiges Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-nas-Qnap\x2dsonstiges.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2dsonstiges.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2dsonstiges.automount. ● media-dreambox-DB7020\x2dhdd.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 13s ago Where: /media/dreambox/DB7020-hdd Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-dreambox-DB7020\x2dhdd.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-dreambox-DB7020\x2dhdd.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-dreambox-DB7020\x2dhdd.automount. ● media-nas-Qnap\x2dpublic.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 13s ago Where: /media/nas/Qnap-public Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-nas-Qnap\x2dpublic.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2dpublic.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2dpublic.automount. ● media-nas-Qnap\x2dmedia.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 13s ago Where: /media/nas/Qnap-media Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-nas-Qnap\x2dmedia.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2dmedia.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2dmedia.automount. ● media-dreambox-DB820\x2dhdd.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 13s ago Where: /media/dreambox/DB820-hdd Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-dreambox-DB820\x2dhdd.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-dreambox-DB820\x2dhdd.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-dreambox-DB820\x2dhdd.automount. ● media-nas-Qnap\x2dusb1.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 13s ago Where: /media/nas/Qnap-usb1 Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-nas-Qnap\x2dusb1.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2dusb1.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2dusb1.automount. ● media-nas-Qnap\x2ddreambox.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 14s ago Where: /media/nas/Qnap-dreambox Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Unset automount media-nas-Qnap\x2ddreambox.automount. Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2ddreambox.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2ddreambox.automount. ● media-nas-Qnap\x2dusb2.automount Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (waiting) since Sat 2017-03-04 16:09:57 CET; 14s ago Where: /media/nas/Qnap-usb2 Docs: man:fstab(5) man:systemd-fstab-generator(8) Mar 04 16:09:57 dm7080 systemd[1]: Stopping media-nas-Qnap\x2dusb2.automount. Mar 04 16:09:57 dm7080 systemd[1]: Set up automount media-nas-Qnap\x2dusb2.automount.
weitere Befehle zum Überprüfen und zur Fehlersuche
folgende Befehle können zur Überprüfung oder bei Fehlersuche verwendet werden:
cat /proc/mounts
systemctl status *.automount
mount
systemctl | grep .mount
Automount von autofs zu systemd wechseln
Wer sich schon erfolgreich automounts mittles autofs eingerichtet hat und nun nach systemd wechseln will, warum auch immer...
Kann sich das recht leicht einrichten, und seine Vorgaben von autofs einfach leicht umstellen bzw. umwandel.
Damit sich beide Arten von automount nicht mit einander Kollidieren muss autofs zuerst beendet und deaktiviert werden.
Dies kann man einfach mittels den beiden Befehlen erreichen:
systemctl stop autofs.service systemctl disable autofs.service
Umstellen der autofs Konfiguration zur systemd (fstab)
von autofs sieht ja z.B. ein NFS Mount so in der Art aus:
<mount name/punkt> <optionen> <quelle> DB7080-hdd -fstype=nfs,rw,soft,tcp,retry=0 192.168.1.15:/media/hdd
Wie wir oben nun schon gesehen haben müsseen wir den Eintrag einfach nur für die /etc/fstab umschreiben. Im Prinzip ist der Aufbau ähnlich wie bei autofs nur das die <mount name/punkt> <quelle> umgestellt werden müssen und bei den <optionen> noch weitere Optionen dazu kommen.
Aus dem obigen Beispiel könnte man dies so umstellen für einen EIntrag in der /etc/fstab
192.168.1.15:/media/hdd /media/DB7080-hdd nfs x-systemd.automount,noauto,retry=0,x-systemd.idle-timeout=60,nolock,rw,timeo=2,retrans=1,x-systemd.device-timeout=2,soft,nofail 0 0
Hier sieht man nun gut das die Reihenfolge so aussieht:
1. <quelle> vollständige Angabe 2. <mount name/punkt> mountpunkt wohin es eingebunden werden soll (hier der komplette Pfad, bei autofs wird dies ja über die automount.autofs angegeben) 3. <optionen> zuerst das Protokoll mit Leerzeichen getrennt und den Mountoptionen 4. <dump> <pass> weil dies zu einem Eintrag der /etc/fstab dazu geöhrt
Unterschied beim Mounten systemd zu autofs
Bei einem Linuxsystem Ohne Gui wird man im normalen Betrieb eigentlich kaum einen Unterschied feststellen. Verwendet man aber ein "vollwertiges Linuxsystem mit GUI (ich verwende KDE) habe ich folgendes Verhalten festgestellt.
Der Eintrag des Automount über die fstab bewirkt das die Mounts als "Geräte" eingebunden werden.
Es wird also bei starten eines Dateimanager wie Dolhin oder Krusader alle Mountpunkt unter den Geräten angezeigt, egal ob diese nun eingebunden sind oder nicht. Bei mir hat es über systemd/fstab den Effekt das wenn ich den Dolphin starte ich genau höhre wie die ganzen Festplatten meines NAS aus dem Standby aufgeweckt werden auch wenn ich darauf nicht zugreifen will, und ich dadurch eine Startverzögerung des Dateimanagers habe weil er wartet bis die Platten aufgeweckt wurden.
Wenn ich die Automounts über die autofs mache habe ich diesen Effekt nur wenn ich wirklich auf einen Mount navigiere, wie hier im obigen Beispiel /media/DB7080-hdd
Auch wenn viele behaupten autofs sei tot und gehöre eingemistet, finde ich "persönlich" das Verhalten von autofs in Verbindung mit dem starten von einem Dateimanager angenehmer