[[Vorlage(Getestet, focal, bionic)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:fstab: Statisches Einhängen über die fstab] [:systemd_Unit: Grundlage von Systemd-Units] [:systemctl: Steuerung von Systemd-Units via systemctl] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis(1)]] 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 [:mount: mounts] auch [#Eigene-Units-erstellen 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 {{{#!vorlage Befehl 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 {{{#!vorlage Befehl systemctl status }}} nutzen, im obigen Beispiel also {{{#!vorlage Befehl systemctl status /VIDEO }}} Um das Gerät in systemd-Manier auszuhängen, kann man die Unit stoppen: {{{#!vorlage Befehl systemctl stop VIDEO.mount }}} oder auch {{{#!vorlage Befehl systemctl stop /VIDEO }}} {{{#!vorlage Befehl 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 {{{#!vorlage Befehl systemd-escape --suffix=mount --path }}} 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: {{{#!vorlage Tabelle <-2 rowclass="titel";> Schlüssel im Abschnitt `[Mount]` +++ Spalte Beschreibung +++ `Type=` Hier wird der Typ des Dateisystems angegeben, gemäß dem [:mount#Parameter:mount-Parameter] `-t`. (Dieser Schlüssel ist optional.) +++ `What=` Enthält den absoluten Pfad des eingehängten [:Datenträger: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 [:mount#Optionen: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 [:systemd/Units/#Selbst-angelegte-Units-aktivieren: 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 {{{#!vorlage Befehl umount /EINHÄNGEPUNKT }}} stoppen, ein {{{#!vorlage Befehl 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: {{{#!vorlage Befehl systemctl start /EINHÄNGEPUNKT }}} = Links = == intern == * [:systemd:] - Einführung in systemd * [:systemd/Units:] - Einführung in systemd_Units * [:systemd/systemctl:] - Steuern von Units * [:systemd/systemd-analyze:systemd-analyze] - den Startvorgang des Systems und der Units analysieren und ggf. optimieren == extern == * [https://www.freedesktop.org/software/systemd/man/systemd.mount.html Dokumentation] {en} zu systemd Mounts * [https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html systemd fstab generator] {en} * [http://www.freedesktop.org/wiki/Software/systemd/ systemd Wiki] {en} - Dokumentation Systemd #tag: System, systemd, Mount