[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

systemd automount



Hi Leute!

Ich beschäftige mich gerade intensiv mit systemd.
Die eine Aufgabenstellung ist ohnehin schon eine bekannte, die andere
fand ich so bei der Recherche nicht.

Ich habe eine Partition mit cryptsetup und LUKS verschlüsselt und den
Schlüssel auf einem USB-Stick abgelegt. Mit systemd gibt es ja keine
Möglichkeit mehr, die Option "keyscript" zu verwenden, wie in Debian und
debianbasierten Distributionen in cryptsetup vorhanden.

Habe mich jetzt schlau gemacht und eine Lösung für dieses Problem
gefunden. Die schaut folgendermaßen aus:

# cat systemd-cryptsetup@home.service
# Automatically generated by systemd-cryptsetup-generator

[Unit]
Description=Cryptography Setup for %I
Documentation=man:systemd-cryptsetup@.service(8) man:crypttab(5)
SourcePath=/etc/crypttab
Conflicts=umount.target
DefaultDependencies=no
BindsTo=dev-mapper-%i.device
After=systemd-readahead-collect.service systemd-readahead-replay.service
Before=cryptsetup.target
BindsTo=dev-disk-by\x2duuid-d1ac29ed\x2dXXXX\x2dXXXX\x2dXXXX\x2d160c00a5fa82.device
After=dev-disk-by\x2duuid-d1ac29ed\x2dXXXX\x2dXXXX\x2dXXXX\x2d160c00a5fa82.device
Before=umount.target

[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=15
ExecStart=/lib/systemd/systemd-cryptsetup attach 'home'
'/dev/disk/by-uuid/d1ac29ed-XXXX-XXXX-XXXX-160c00a5fa82'
'/dev/disk/by-id/meinUSB-Stick-0:0'
'luks,tries=3,keyfile-size=512,keyfile-offset=1024'
ExecStop=/lib/systemd/systemd-cryptsetup detach 'home'

Damit wird die /home-Partition mit dem eingesteckten USB-Key
aufgesperrt. Ich hab noch nicht ganz rausgefunden, warum es manchmal
nicht funktioniert (und ich nach einem manuellen Key gefragt werde),
vermute aber, dass es daran liegt, dass die usb-Treiber noch nicht
fertig geladen sind... Experimentiere da noch weiter herum.

Das andere ist automount...

Lt. Doku sollte es reichen, in der fstab bei den Optionen in der
entsprechenden Zeile ein "comment=systemd.automount" einzufügen.

Hier ist auch die Aufgabenstellung, dass ich eine verschlüsselte externe
HD habe. Sobald ich auf den Mountpunkt dieser HD zugreife, sollte diese
entsperrt (wie oben bei home gelöst) und gemountet werden.

Mache ich das, wird auch bei einem reload des systemd eine unit
mars.automount bei der bash-completion vorgeschlagen. Aber sonst tut
sich nix. Ein "ls /var/cache/backup", wohin diese gemountet werden soll,
nachdem sie entsperrt wurde (/dev/mapper/mars ist dann angelegt) sollte
ja den Inhalt der HD zeigen... aber es wird nur das ungemountete
Directory gelistet...

Ich habe in /etc/systemd/system dann folgende Files angelegt:

# cat var-cache-backup.mount
# Automatically generated by systemd-fstab-generator

[Unit]
SourcePath=/etc/fstab
DefaultDependencies=no
After=local-fs-pre.target
Conflicts=umount.target
Before=umount.target

[Mount]
What=/dev/mapper/mars
Where=/var/cache/backup
Type=ext4
FsckPassNo=0
Options=defaults,noauto,comment=systemd.automount,nofail,comment=systemd.device-timeout=2s


# cat var-cache-backup.automount
# Automatically generated by systemd-fstab-generator

[Unit]
SourcePath=/etc/fstab
DefaultDependencies=no
Conflicts=umount.target
Before=umount.target
Before= local-fs.target
[Automount]
Where=/var/cache/backup

# l var-cache-backup.device.requires/
insgesamt 0
lrwxrwxrwx 1 root root 51 Sep  7 11:03 systemd-cryptsetup@mars.service
-> /etc/systemd/system/systemd-cryptsetup@mars.service

Wie ihr seht, hab ich die mount und automount-units von
/run/systemd/generators übernommen.

ein Neuladen des systemd ändert wiederum nichts...
Ein beherztes mount gibt auch keinen Autofs-Eintrag (startet mit
systemd-1) für den Mountpunkt.

Erst ein "systemctl start var-cache-backup.automount" NACH einem
Auskommentieren der entsprechenden Zeile in der fstab erzeugt den
Automount-Eintrag in mount, und dann wird mit einem ls auf den
Mountpunkt die externe HD entschlüsselt und eingehängt...

Nach einem Neustart muss ich allerdings wieder manuell ein "systemctl
start var-cache-backup.automount" ausführen, sonst gibt es kein
automounten... :-/

Fällt irgendjemandem dazu etwas ein? Bzw. konnte ich mit der
erstgenannten Lösung fürs Entsperren per USB-Key jemandem helfen (Marc
Haber ev???)

lg jakob


Reply to: