Mount Units
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Seit Ubuntu 15.04 werden auch Einhängepunkte von systemd verwaltet. Zwar ist die fstab im System noch vorhanden - deren Einträge werden aber im Hintergrund vom systemd-fstab-generator in systemd/Units vom Typ .mount übersetzt.
Alternativ zu den Einträgen in der fstab kann man mounts auch direkt als systemd-Units definieren.
Installation¶
Da systemd seit Ubuntu 15.04 integraler Bestandteil des Systems ist (und dieses ohne systemd nicht lauffähig ist), sind alle benötigten Komponenten bereits installiert.
Benutzung¶
Einhängen und Aushängen über bestehende Units¶
Der systemd-fstab-generator liest bei jedem Systemstart aus der fstab und schreibt die generierten Mount-Units temporär nach /run/systemd/generator/. Anschließend können diese wie jede andere Unit mit systemctl verwaltet werden.
Beispiel¶
Der fstab-Eintrag
UUID="b56fdac9-4c6a-4306-b5d5-1d635c0905b6" /VIDEO ext4 defaults 0 0
findet sich in der systemd-unit /run/systemd/generator/VIDEO.mount wieder und enthält:
# Automatically generated by systemd-fstab-generator [Unit] SourcePath=/etc/fstab Documentation=man:fstab(5) man:systemd-fstab-generator(8) Before=local-fs.target [Mount] Where=/VIDEO What=/dev/disk/by-uuid/b56fdac9-4c6a-4306-b5d5-1d635c0905b6 Type=ext4
Der Aufruf
systemctl status VIDEO.mount
zeigt die Ausgabe
● VIDEO.mount - /VIDEO Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: active (mounted) since Wed 2017-12-20 13:56:49 CET; 9h ago Where: /VIDEO What: /dev/sdb9 Docs: man:fstab(5) man:systemd-fstab-generator(8) Process: 620 ExecMount=/bin/mount /dev/disk/by-uuid/b56fdac9-4c6a-4306-b5d5-1d635c0905b6 /VIDEO -t ext4 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 4915) CGroup: /system.slice/VIDEO.mount Dez 20 13:56:49 josua systemd[1]: Mounting /VIDEO... Dez 20 13:56:49 josua systemd[1]: Mounted /VIDEO.
Das Gerät ist also seit 9 Stunden eingehängt.
Alternativ kann man auch den Befehl
systemctl status <EINHÄNGEPUNKT>
nutzen, im obigen Beispiel also
systemctl status /VIDEO
Um das Gerät in systemd-Manier auszuhängen, kann man die Unit stoppen:
systemctl stop VIDEO.mount
oder auch
systemctl stop /VIDEO
systemctl status VIDEO.mount
● VIDEO.mount - /VIDEO Loaded: loaded (/etc/fstab; generated; vendor preset: enabled) Active: inactive (dead) since Wed 2017-12-20 23:54:39 CET; 2s ago Where: /VIDEO What: /dev/disk/by-uuid/b56fdac9-4c6a-4306-b5d5-1d635c0905b6 Docs: man:fstab(5) man:systemd-fstab-generator(8) Process: 4928 ExecUnmount=/bin/umount /VIDEO -c (code=exited, status=0/SUCCESS) Process: 620 ExecMount=/bin/mount /dev/disk/by-uuid/b56fdac9-4c6a-4306-b5d5-1d635c0905b6 /VIDEO -t ext4 (code=exited, status=0/SUCCESS) Dez 20 13:56:49 josua systemd[1]: Mounting /VIDEO... Dez 20 13:56:49 josua systemd[1]: Mounted /VIDEO. Dez 20 23:54:39 josua systemd[1]: Unmounting /VIDEO... Dez 20 23:54:39 josua systemd[1]: Unmounted /VIDEO.
Eigene Units erstellen¶
Nach obigem Schema lassen sich natürlich auch eigene Units erstellen. Eigene Units werden in /etc/systemd/system abgelegt. Außerdem gibt es für Mount-Units noch eine besondere Namenskonvention: Der Dateiname muss zwingend den Pfad des Einhängepunktes widerspiegeln. Den richtigen Namen generiert man sich am besten via
systemd-escape --suffix=mount --path <EINHÄNGEPUNKT>
Für die Unit gilt folgende Syntax:
[Unit] # Abschnitt wird im Artikel system/Unit beschrieben [Mount] Type=nfs4 What=10.10.10.10:/nfs-share Where=/mnt/nfs [Install] # Abschnitt wird im Artikel system/Unit beschrieben
Die Schlüssel im Abschnitt [Mount]
haben folgende Bedeutung:
Schlüssel im Abschnitt [Mount] | |
Spalte | Beschreibung |
Type= | Hier wird der Typ des Dateisystems angegeben, gemäß dem mount-Parameter -t . (Dieser Schlüssel ist optional.) |
What= | Enthält den absoluten Pfad des eingehängten Geräts, also z.B. Festplatten-Partitionen wie /dev/sda8 oder eine Netzwerkfreigabe wie NFSv4 oder Samba . (Dieser Schlüssel ist Pflicht.) |
Where= | Hier wird der Einhängepunkt ("Mountpunkt") festgelegt, d.h. der Ordner, in den die Partition eingehängt werden soll. Falls dieser nicht existiert, wird er beim Einhängen erzeugt. (Dieser Schlüssel ist Pflicht.) |
Options= | Enthält alle verwendeten Optionen, gemäß dem mount-Parameter -o . (Dieser Schlüssel ist optional.) |
LazyUmount= | Wenn der Wert zu diesem Schlüssel auf true gesetzt wird, wird das Dateisystem wieder ausgehängt, sobald es nicht mehr benötigt wird. Standardmäßig ist diese Option abgeschaltet. |
Wie jede Systemd-Unit muss auch eine Mount-Unit vor Ihrer Verwendung aktiviert werden.
Problemlösung¶
eine systemd mount-Unit lässt sich mit mount nicht wieder einhängen¶
Eine Mount-Unit lässt sich zwar mit dem Befehl
umount /EINHÄNGEPUNKT
stoppen, ein
mount /EINHÄNGEPUNKT
ist jedoch nicht möglich, da mount nur die fstab nach Einträgen durchsucht.
In dem Fall muss die Unit wieder via systemctl gestartet werden:
systemctl start /EINHÄNGEPUNKT
Links¶
intern¶
systemd - Einführung in systemd
systemd/Units - Einführung in systemd_Units
systemd/systemctl - Steuern von Units
systemd-analyze - den Startvorgang des Systems und der Units analysieren und ggf. optimieren
extern¶
Dokumentation 🇬🇧 zu systemd Mounts
systemd Wiki 🇬🇧 - Dokumentation Systemd