# systemd-cryptsetup – Boot-Reihenfolge und Abhängigkeiten **Zusammenfassung**: systemd steuert die Reihenfolge beim Boot: Zuerst muss der USB-Stick mit den Schlüsseldateien gemountet sein, dann können die LUKS-Container geöffnet werden. Spezielle crypttab-Optionen stellen dies sicher. **Quellen**: `chats/fstab und crypttab.md`, `konfigurationsdateien/crypttab` **Zuletzt aktualisiert**: 2026-06-16 --- ## Die Herausforderung Die LUKS-Container auf sdb3 und sdc3 werden mit Schlüsseldateien auf einem USB-Stick (`/dev/sda1`) entsperrt. Beim Boot muss systemd sicherstellen: 1. **USB-Stick mounten** (`/mnt/usb_key`) 2. **Dann erst** die LUKS-Container öffnen (Schlüsseldatei liegt auf dem USB-Stick) 3. **Dann** die Dateisysteme mounten (siehe [fstab](./fstab.md)) ## Lösung: systemd-Optionen in der crypttab Die crypttab-Einträge enthalten systemd-spezifische Optionen: ``` encrypt_data UUID=097bccad-... /mnt/usb_key/twotb.bin luks,tries=3,\ x-systemd.requires=mnt-usb_key.mount,\ x-systemd.after=mnt-usb_key.mount,\ x-systemd.device-timeout=15s ``` ### Optionen im Detail | Option | Wirkung | |---|---| | `x-systemd.requires=mnt-usb_key.mount` | Stellt sicher, dass der USB-Key-Mount **aktiv** ist, bevor der LUKS-Container geöffnet wird. Schlägt der Mount fehl, wird auch der Container nicht geöffnet. | | `x-systemd.after=mnt-usb_key.mount` | Legt die **Reihenfolge** fest: Der USB-Key-Mount muss **vor** dem Container-Öffnen gestartet werden. | | `x-systemd.device-timeout=15s` | systemd wartet maximal 15 Sekunden auf das Device (falls der USB-Stick langsam initialisiert). | | `tries=3` | Maximale Anzahl an Fehlversuchen bei der Entschlüsselung. | ### Wie der Unit-Name zustande kommt Der systemd-Mount-Name folgt einer festen Konvention: Pfade werden mit `-` statt `/` und `.mount` als Suffix geschrieben. - `/mnt/usb_key` → `mnt-usb_key.mount` - `/mnt/data` → `mnt-data.mount` ## Ablauf beim Boot ``` USB-Stick wird erkannt (udev) │ ▼ mnt-usb_key.mount (systemd mount unit) │ ├── x-systemd.requires ──┐ ├── x-systemd.after ─────┤ │ ▼ │ systemd-cryptsetup@encrypt_data.service │ systemd-cryptsetup@encrypt_sdc3.service │ │ │ ▼ │ /dev/mapper/encrypt_data ← verfügbar │ /dev/mapper/encrypt_sdc3 ← verfügbar │ ▼ mnt-data.mount (aus /etc/fstab) media-piadmin-data.mount (aus /etc/fstab) ``` ## Fehlerbehebung ```bash # Status des Container-Öffnens prüfen journalctl -b -u systemd-cryptsetup@encrypt_data.service -e journalctl -b -u systemd-cryptsetup@encrypt_sdc3.service -e # Prüfen, ob der USB-Stick gemountet ist lsblk /dev/sda mount | grep usb_key # systemd-Abhängigkeiten visualisieren systemctl list-dependencies mnt-data.mount ``` ## Verwandte Seiten - [crypttab](./crypttab.md) – Die crypttab-Konfiguration - [fstab](./fstab.md) – Mountet die geöffneten Container - [cryptsetup](./cryptsetup.md) – Manuelle cryptsetup-Befehle