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

77 lines
3.1 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.
# sdX-Vertauschung Wechselnde Gerätenamen
**Zusammenfassung**: Die Namen `/dev/sda`, `/dev/sdb`, `/dev/sdc` können sich bei jedem Neustart ändern. Dieses Dokument erklärt die Ursache, die Auswirkungen und wie persistente Referenzen das Problem lösen.
**Quellen**: `chats/fstab und crypttab.md`
**Zuletzt aktualisiert**: 2026-06-16
---
## Ursache
Der Linux-Kernel vergibt die `/dev/sdX`-Namen in der **Reihenfolge, in der er die Geräte erkennt**. Diese Reihenfolge hängt ab von:
- **USB-Controller-Initialisierung** (verschiedene Controller brauchen unterschiedlich lang)
- **Port-Reihenfolge** (welcher Port zuerst scannt)
- **Hub-Topologie** (Geräte an verschiedenen USB-Hubs)
- **Geräte-Firmware** (manche Geräte melden sich schneller als andere)
Selbst wenn die Laufwerke physisch in derselben Reihenfolge angeschlossen sind, können sie beim nächsten Boot **vertauscht** sein.
## Konkretes Beispiel vom Raspberry PI5
Beim ersten Boot:
```
sdb → Laufwerk A (bootfs, rootfs, LUKS)
sdc → Laufwerk B (bootfs, rootfs, LUKS)
```
Beim nächsten Boot (nach Neustart):
```
sdb → Laufwerk B
sdc → Laufwerk A
```
Die **UUIDs und PARTUUIDs** der Partitionen bleiben dagegen **immer gleich** unabhängig davon, ob das Device gerade `/dev/sdb` oder `/dev/sdc` heißt.
## Warum es auf dem Raspberry PI5 funktioniert
Das System verwendet **durchgängig persistente Referenzen**:
- **fstab** verwendet `PARTUUID=` und `/dev/disk/by-partuuid/` diese folgen der Partition, nicht dem `/dev/sdX`-Namen
- **crypttab** verwendet `UUID=` für die LUKS-Container cryptsetup findet das richtige Device unabhängig vom Namen
- **fstab mountet `/dev/mapper/...`** diese Mapper-Namen sind stabil und werden von cryptsetup erzeugt
Ergebnis: Selbst wenn sdb und sdc vertauschen, landen alle Mounts auf den **richtigen Partitionen** (Quelle: `chats/fstab und crypttab.md`).
## Symptome einer sdX-Vertauschung erkennen
Wenn in der Ausgabe von `lsblk` die Devices anders heißen als erwartet, die Mounts aber trotzdem stimmen, liegt eine Vertauschung vor:
```bash
lsblk -o NAME,PARTUUID,UUID,FSTYPE,LABEL,MOUNTPOINT
```
Achte auf:
- `/boot/firmware` und `/` sollten auf dem **gleichen** Laufwerk liegen (gleicher PARTUUID-Präfix wie `228e9390-*`)
- `/mnt/data` sollte auf dem entschlüsselten Container des primären Laufwerks liegen
## Optionale udev-Regeln (für feste Zuordnung)
Falls eine Zuordnung zu **physischen Ports** gewünscht ist, können udev-Regeln erstellt werden:
```bash
# Beispiel: Feste Symlinks basierend auf Seriennummer
# Datei: /etc/udev/rules.d/99-feste-laufwerke.rules
SUBSYSTEM=="block", ENV{ID_SERIAL}=="Seriennummer_Laufwerk_A", SYMLINK+="disk_laufwerk_a"
SUBSYSTEM=="block", ENV{ID_SERIAL}=="Seriennummer_Laufwerk_B", SYMLINK+="disk_laufwerk_b"
```
Danach kann in fstab `/dev/disk_laufwerk_a` statt PARTUUID verwendet werden.
## Verwandte Seiten
- [persistente-blockgeraete](./persistente-blockgeraete.md) UUID, PARTUUID, by-partuuid
- [fstab](./etc/fstab.md) Verwendet persistente Referenzen
- [crypttab](./etc/crypttab.md) UUID-Referenzen in crypttab
- [luks-verschluesselung](./luks-verschluesselung.md) LUKS-Referenzierung