c't 21/2019
S. 160
Praxis
Automount mit Systemd

Platten-Automat

USB-Laufwerke automatisch mounten mit Systemd

Wer unter Linux Daten auf externe Datenträger sichern will, hilft sich oft mit unübersichtlichen udev-Regeln und unflexiblen Shell-Skripten, um sie einzubinden. Mithilfe von Systemd-Units bekommt man eine einfachere, sauberere und zuverlässigere Lösung.

Ein Backup ist manchmal die letzte Rettung, wenn der Heimserver, Laptop oder PC den Geist aufgegeben haben. Dabei ist es klug, wenn das Backup nicht immer am gleichen Ort liegt wie die Originale. Hier bietet sich ein Offsite-Backup auf einem externen Speicher an. Das kann ein entfernter Server oder auch eine USB-Festplatte sein. Alles ist besser als kein Backup. Wer einen Linux-Server und ein USB-Medium zur Datensicherung einsetzt, kann dafür sorgen, dass ein Backup beginnt, wenn das Medium angeschlossen wird. Mit den Systemd Mount-Units geht das Ganze elegant und flexibel von der Hand, denn Systemd weiß immer genau über den Zustand von Diensten und Geräten Bescheid.

Vor der Praxis aber ein bisschen Theorie: Systemd arbeitet auch beim Mounten von Laufwerken mit Units. Hier sind es die Mount-Units. Sie funktionieren im Prinzip wie die bekannteren Service-Units, haben aber ein paar andere Parameter. Indirekt haben Sie beim Administrieren eines Linux-Systems vielleicht welche erzeugt. Wenn Sie in der Datei /etc/fstab Einträge zum Mounten der Laufwerke hinterlegen, liest der Daemon oder der Kernel diese nämlich gar nicht direkt ein. Das ist die Aufgabe des Werkzeugs systemd-fstab-generator. Systemd startet es, um aus der Tabelle passende Mount-Units zu generieren. Es legt diese in /run/systemd/generator ab. Man erkennt sie an der Dateiendung .mount. Erst diese Mount-Units verarbeitet Systemd selbst und mountet damit die Laufwerke.