Files
da-HomeNetDocumentation/PI5/Konfiguration/etc/systemd-cryptsetup.md
T
2026-06-19 23:18:04 +02:00

87 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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