💾 RAID (OS-Platten) bei Installation
In diesem Tutorial zeige ich dir, wie du direkt bei der Installation von Debian ein Software-RAID (RAID 1) für dein Betriebssystem einrichtest. Das bedeutet, dass das gesamte System gespiegelt wird. Fällt die Hauptplatte (Root, Boot oder Swap) aus, läuft dein Server auf der zweiten Platte einfach weiter.
1. Vorbereitung
Was wird benötigt?
- Mindestens 2 identische Festplatten (gleiche Größe zwingend empfohlen, da sich das RAID nach der kleinsten Platte richtet)
- Das Debian Installationsmedium (Netinstall ISO) gestartet
Befolge zunächst die Grundinstallation, bis du zum Punkt "Partitionierung" kommst.
2. Manuelle Partitionierung starten
Partitionierungsmethode
Wähle im Partitionierungs-Menü statt der geführten Methode diesmal Manuell aus.
Du solltest nun deine beiden noch leeren Festplatten in der Liste sehen (z. B. sda und sdb).
Partitionstabellen schreiben
Wähle nacheinander beide Festplatten aus und bestätige die Frage "Eine neue, leere Partitionstabelle auf diesem Gerät erstellen?" mit Ja.
Dabei wird freier Speicherplatz auf beiden Platten angezeigt.
3. Partitionen als RAID vorbereiten
Drei Partitionen pro Platte anlegen
Wir erstellen nun auf beiden Festplatten identische Partitionen. Klicke bei sda auf den freien Speicher und wähle „Neue Partition erstellen". Gib die gewünschte Größe ein. Danach fragt der Installer nach der Position – wähle jeweils Anfang, außer bei der letzten (Root) – dort nimmst du einfach den gesamten verbleibenden Speicher. Wiederhole alle Schritte exakt gleich auf sdb.
Stelle nach dem Erstellen jeder Partition die folgenden Einstellungen ein, bevor du auf „Partitionierung beenden" klickst:
Partition 1 – EFI (Nur bei UEFI-Systemen!)
- Größe
- 512 MB
- Position
- Anfang
- Name
EFI- Benutzen als
- EFI-System-Partition
- Boot-Flag
- ● An
Partition 2 – Swap
- Größe
- 4 GB (je nach RAM)
- Position
- Anfang
- Name
swap- Benutzen als
- Physikalisches Volume für RAID (nicht als Swap!)
- Boot-Flag
- ● Aus
Partition 3 – Boot
- Größe
- 1 GB
- Position
- Anfang
- Name
boot- Benutzen als
- Physikalisches Volume für RAID
- Boot-Flag
- ● An
Partition 4 – Root (/)
- Größe
- Gesamter Rest (Max)
- Position
- Ende (gesamten Rest auswählen)
- Name
root- Benutzen als
- Physikalisches Volume für RAID
- Boot-Flag
- ● Aus
Klicke nach jeder Partition unten auf „Partitionierung beenden", bevor du mit der nächsten beginnst. Wiederhole den gesamten Prozess identisch für sdb.
4. Software-RAID (MD-Geräte) erstellen
Menü "Software-RAID konfigurieren"
Ganz oben in der Partitionsliste wählst du nun Software-RAID konfigurieren. Bestätige die Frage "Änderungen auf Laufwerken speichern?" mit Ja.
Wähle im RAID-Menü: MD-Gerät erstellen.
MD0, MD1 und MD2 anlegen
Für jede unserer drei Partitionspaare erstellen wir nun ein RAID-Gerät (MD):
- MD-Gerät erstellen
- RAID-Level: RAID1
- Anzahl aktiver Geräte: 2
- Anzahl Reserve-Geräte: 0
- Auswahl der Geräte: Wähle die ersten Partitionen beider Platten aus (die 4GB Swap-Partitionen).
Wiederhole diesen Vorgang für die Boot-Partitionen (MD1) und danach für die Root-Partitionen (MD2). Ist dies erledigt, wähle Beenden.
5. Dateisysteme & Mount-Points zuweisen
RAID-Geräte formatieren
Du bist nun zurück in der Hauptübersicht der Partitionierung. Oben siehst du jetzt deine neuen RAID1 Geräte (md0, md1, md2).
Wähle jedes davon aus und konfiguriere das Dateisystem wie folgt:
- RAID1 Gerät 0 (Swap):
Verwendung als: Swap-Bereich - RAID1 Gerät 1 (Boot):
Verwendung als: Ext4-Journaling-Dateisystem
Einbindungspunkt: /boot - RAID1 Gerät 2 (Root):
Verwendung als: Ext4-Journaling-Dateisystem (oder xfs)
Einbindungspunkt: / (Root)
Partitionierung beenden
Wenn alle drei RAID-Geräte korrekt formatiert und eingebunden sind, scrollst du ganz nach unten und wählst Partitionierung beenden und Änderungen übernehmen.
Der Installer wird dich fragen, ob Änderungen gespeichert werden sollen. Bestätige mit Ja.
6. Bootloader (GRUB / UEFI) Konfiguration
GRUB Installation (Legacy / BIOS)
Bei älteren Systemen (Legacy BIOS):
Sobald der Punkt GRUB-Bootloader auf einer Festplatte installieren erscheint, wählst du Ja. Wähle anschließend die erste Festplatte (/dev/sda) aus.
Wichtig nach dem ersten Start: Um komplett ausfallsicher zu sein, muss der Bootloader auch auf der zweiten Platte installiert sein. Führe nach dem ersten Boot des fertigen Systems als root folgenden Befehl aus:
dpkg-reconfigure grub-pc
Markiere beim Dialog für die GRUB-Installations-Geräte mit der Leertaste sowohl /dev/sda als auch /dev/sdb. Bestätige mit OK.
7. EFI-Partition im RAID einbinden (Nur UEFI)
Warum EFI RAID manuell machen?
Da sich EFI-Partitionen nicht in ein klassisches Software-RAID während der Debian-Installation einbinden lassen (der Installer verhindert das), muss deren Spiegelung im fertig installierten System manuell vorgenommen werden.
Hinweis: Wir gehen hier beispielhaft von den Laufwerken /dev/nvme0n1 (Platte 1) und /dev/nvme1n1 (Platte 2) und der EFI-Partition jeweils auf Partition 1 (p1) aus. Ersetzt dies ggf. durch eure Bezeichnungen (z. B. sda1 / sdb1).
Schritt 1: EFI-Partition klonen
Zunächst wird die EFI-Partition von der ersten auf die zweite Festplatte mit dem dd-Befehl geklont:
dd if=/dev/nvme0n1p1 of=/dev/nvme1n1p1
Schritt 2: Boot-Reihenfolge anpassen
Die zweite Festplatte muss nun in das UEFI-Bootmenü aufgenommen werden, damit das Mainboard weiß, dass es auch hiervon booten kann:
efibootmgr --create --disk /dev/nvme1n1 --part 1 --label "debian2" --loader "\EFI\debian\shimx64.efi"
Überprüft mit efibootmgr -v, ob der Eintrag erfolgreich angelegt wurde.
Schritt 3: Das EFI-RAID erstellen
Wir erstellen ein RAID-1 (z. B. md100) für die EFI-Partition. Da wir die primäre EFI-Partition noch nicht blockieren möchten, fügen wir zunächst nur die zweite Platte hinzu und markieren die erste als missing:
mdadm --create /dev/md100 --level 1 --raid-disks 2 --metadata 1.0 /dev/nvme1n1p1 missing
Der Zusatz --metadata 1.0 ist hier extrem wichtig. Bei Version 1.0 stehen die RAID-Metadaten am Ende der Partition. Dadurch erkennt das UEFI-BIOS die Partition weiterhin als völlig normales, unverschlüsseltes FAT32-Dateisystem.
Schritt 4: Dauerhafte Synchronisation (rsync)
Damit die Dateien auf beiden Laufwerken wirklich synchron bleiben (z.B. nach einem Kernel-Update), richten wir einen rsync-Abgleich ein.
Dazu installiert ihr rsync:
apt install rsync -y
Zuerst muss die primäre EFI-Partition eingehängt werden, damit sie überhaupt Inhalte hat:
mkdir -p /boot/efi
mount /dev/nvme0n1p1 /boot/efi
Dann das EFI-RAID md100 an einem temporären Ort mounten:
mkdir -p /tmp/RAID
mount /dev/md100 /tmp/RAID/
Jetzt die Inhalte von der primären EFI-Partition auf das RAID-Laufwerk synchronisieren:
rsync -av --progress /boot/efi/ /tmp/RAID/
Der manuelle rsync oben war der erste Abgleich. Ab jetzt richtet Schritt 6 die automatische Synchronisation ein.
Wenn der rsync abgeschlossen ist, hängt ihr /boot/efi wieder aus – das brauchen wir für den nächsten Schritt:
umount /boot/efi
Schritt 5: Primäre Partition dem RAID hinzufügen
Jetzt kann die primäre EFI-Partition (nvme0n1p1 / sda1) dem RAID hinzugefügt werden. Wichtig: Sie darf dabei nicht eingehängt sein, sonst schlägt der Befehl mit „Device or resource busy" fehl.
mdadm /dev/md100 --add /dev/nvme0n1p1
Überprüfe anschließend den Status – das RAID sollte nun synchronisieren ([UU] sobald abgeschlossen):
cat /proc/mdstat
Schritt 6: Automatische EFI-Synchronisation (Systemd-Timer)
Damit das EFI-Verzeichnis nach jedem Boot und Kernel-Update automatisch auf das RAID-Laufwerk synchronisiert wird, richten wir einen Systemd-Timer ein.
1. Service-Unit erstellen – führt den rsync durch:
nano /etc/systemd/system/efi-sync.service
[Unit]
Description=EFI RAID Sync (nvme0n1p1 -> md100)
After=local-fs.target
[Service]
Type=oneshot
ExecStartPre=/bin/mkdir -p /boot/efi
ExecStartPre=/bin/mount /dev/nvme0n1p1 /boot/efi
ExecStartPre=/bin/mkdir -p /tmp/RAID
ExecStartPre=/bin/mount /dev/md100 /tmp/RAID
ExecStart=/usr/bin/rsync -a --delete /boot/efi/ /tmp/RAID/
ExecStopPost=/bin/umount /boot/efi
ExecStopPost=/bin/umount /tmp/RAID
2. Timer-Unit erstellen – startet den Service bei jedem Boot:
nano /etc/systemd/system/efi-sync.timer
[Unit]
Description=EFI RAID Sync Timer
[Timer]
OnBootSec=30s
[Install]
WantedBy=timers.target
3. Timer aktivieren und starten:
systemctl daemon-reload
systemctl enable --now efi-sync.timer
Status prüfen:
systemctl status efi-sync.timer
Der Timer startet den Sync automatisch 30 Sekunden nach jedem Bootvorgang. Bei Kernel-Updates könnt ihr den Sync manuell auslösen: systemctl start efi-sync.service
✅ OS RAID eingerichtet!
Dein Debian-Server läuft nun ausfallsicher auf zwei gespiegelten Festplatten. Es empfiehlt sich, den Status des RAIDs über cat /proc/mdstat zu prüfen, während es sich im Hintergrund initialisiert.
Falls du später weitere Festplatten nachträglich als RAID für Daten einbinden möchtest, schau dir das
RAID (Datenplatten) Tutorial an.