💾 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):

  1. MD-Gerät erstellen
  2. RAID-Level: RAID1
  3. Anzahl aktiver Geräte: 2
  4. Anzahl Reserve-Geräte: 0
  5. 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.