Inital commit

This commit is contained in:
2026-06-19 23:18:04 +02:00
commit 1bb79dc5a5
46 changed files with 3401 additions and 0 deletions
@@ -0,0 +1,86 @@
# 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