Hallo,
ich hänge das jetzt einfach mal hier an, habe nämlich auch ein paar Probleme mit der Umstellung...
Ich hatte vorher in meiner rc.local mein /home entschlüsselt, mit Keys auf einem USB-Stick, der normal über fstab und crypttab gemountet wird, und gemountet. Da das alles sequenziell ablief, war es dann auch gemountet, sobald die grafische Oberfläche gestartet wurde. Nun aber habe ich das Problem, das es zwar gemountet wird, jedoch wird nebenbei schon der Rest vom System gestartet und macht dann Probleme, weil /home noch nicht da ist. Wie kann ich erreichen, dass wie bei den anderen Dateisystem, die über die fstab eingebunden werden, erst gewartet wird, bis /home zur Verfügung steht und dann der Rest gestartet wird?
Das gleiche Problem habe ich mit /var, was dazu führt, dass zum Beispiel SSHD nicht korrekt startet.
Also folgender Ablauf:
- Entschlüsseln des USB-Sticks mit den Keys über crypttab
- Mounten des USB-Stick über fstab
- Entschlüssen von /home und /var mit den Keys des Sticks
- Mounten von /home und /var
- Rest des Systemstarts
Das funktioniert soweit schon, nur das er halt nicht wartet und versucht den Rest zu starten, was dann natürlich fehlschlägt.
Mein filesystem-home.service sieht bisher so aus:
[Unit]
Description=Mount HOME
After=sysinit.target # USB-Stick mit Keys wurde eingebunden
Before=multi-user.target # Eigentlich bevor der ganze Multi-User Kram gestartet wird (SSH, XINIT, etc...) - funktioniert aber nicht wie gedacht
[Service]
Type=oneshot
ExecStart=... # cryptsetup, fsck, mount
ExecStop=... # umount, cryptsetup
RemainAfterExit=true
[Install]
WantedBy=sysinit.target
/* Edit:
Habe es jetzt gelöst - folgendes funktioniert:
[Unit]
Description=Mount HOME
DefaultDependencies=no
Requires=systemd-udev-settle.service
After=systemd-udev-settle.service cryptsetup.target security.mount
Before=basic.target shutdown.target
Conflicts=shutdown.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/cryptsetup luksOpen /dev/md/home home --key-file=/security/keys/home.key
ExecStart=/sbin/fsck.ext4 -p /dev/mapper/home
ExecStart=/bin/mount /dev/mapper/home /home
ExecStop=/bin/umount /home
ExecStop=/usr/sbin/cryptsetup luksClose home
TimeoutSec=0
RemainAfterExit=yes
[Install]
WantedBy=basic.target
Jedoch weiß ich nciht so genau, warum...
*/
Vielen Dank und Viele Grüße
Maximilian