Technologieführer

RAID1 einrichten: Arrays, Systemanpassungen und GRUB

5 min read Linux RAID Aktualisiert 16 Oct 2025
RAID1 einrichten: Arrays, Systemanpassungen und GRUB
RAID1 einrichten: Arrays, Systemanpassungen und GRUB

Kurzversion: Erstelle drei RAID1-Arrays (md0, md1, md2) mit jeweils einem fehlenden Laufwerk, erstelle Dateisysteme und passe mdadm-, fstab- und GRUB-Konfigurationen an. Kopiere Boot- und Root-Daten auf die neuen Arrays, installiere GRUB auf beiden Festplatten und führe einen Neustart durch. Wichtig: teste das Booten und bereite ein Rollback-Szenario vor, falls der Bootvorgang fehlschlägt.

Wichtig: Arbeite vorsichtig — dieses Vorgehen ändert Boot- und Root-Devices. Ein Backup vor Start ist empfohlen.

4 Erstellen unserer RAID-Arrays

Nun erstellen wir die RAID-Arrays /dev/md0, /dev/md1 und /dev/md2. /dev/hdb1 wird zu /dev/md0, /dev/hdb5 zu /dev/md1 und /dev/hdb6 zu /dev/md2 hinzugefügt. /dev/hda1, /dev/hda5 und /dev/hda6 können momentan nicht hinzugefügt werden (das System läuft derzeit darauf), darum verwenden wir in den folgenden drei Befehlen den Platzhalter missing:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/hdb1  
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/hdb5  
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/hdb6

Der Befehl

cat /proc/mdstat

sollte nun anzeigen, dass drei RAID-Arrays degraded sind ([U] oder [U] bedeutet, dass ein Array degraded ist; [UU] bedeutet OK):

[root@server1 ~]# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]  
md2 : active raid1 hdb6[1]  
      4642688 blocks [2/1] [_U]  
  
md1 : active raid1 hdb5[1]  
      417536 blocks [2/1] [_U]  
  
md0 : active raid1 hdb1[1]  
      176576 blocks [2/1] [_U]  
  
unused devices:   
[root@server1 ~]#

Anschließend legen wir Dateisysteme an (ext3 auf /dev/md0 und /dev/md2, Swap auf /dev/md1):

mkfs.ext3 /dev/md0  
mkswap /dev/md1  
mkfs.ext3 /dev/md2

Jetzt passen wir /etc/mdadm.conf an (die Datei enthält noch keine Informationen zu den neuen Arrays). Erst eine Sicherung anlegen und dann den Scan anhängen:

cp /etc/mdadm.conf /etc/mdadm.conf_orig  
mdadm --examine --scan >> /etc/mdadm.conf

Inhalt anzeigen:

cat /etc/mdadm.conf

In der Datei sollten nun die Details zu den drei (degradierten) RAID-Arrays sichtbar sein, z. B.:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=6b4f013f:6fe18719:5904a9bd:70e9cee6
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=63194e2e:c656857a:3237a906:0616f49e
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=edec7105:62700dc0:643e9917:176563a7

Hinweis: Alternativ zu Gerätenamen ist es empfehlenswert, in späteren Schritten UUIDs zu nutzen (z. B. in fstab), um Probleme bei geänderter Geräte-Reihenfolge zu vermeiden.

5 Anpassung des Systems an RAID1

Zuerst mounten wir /dev/md0 und /dev/md2 (das Swap-Array /dev/md1 muss nicht gemountet werden):

mkdir /mnt/md0  
mkdir /mnt/md2
mount /dev/md0 /mnt/md0  
mount /dev/md2 /mnt/md2

Beide Arrays sollten in der Ausgabe von

mount

zu finden sein:

[root@server1 ~]# mount  
/dev/hda6 on / type ext3 (rw,relatime)  
none on /proc type proc (rw)  
/dev/hda1 on /boot type ext3 (rw,relatime)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
/dev/md0 on /mnt/md0 type ext3 (rw)  
/dev/md2 on /mnt/md2 type ext3 (rw)  
[root@server1 ~]#

Nun bearbeiten wir /etc/fstab und ersetzen /dev/hda1 durch /dev/md0, /dev/hda5 durch /dev/md1 und /dev/hda6 durch /dev/md2, sodass die Datei z. B. so aussieht:

/dev/md2 / ext3 relatime 1 1
/dev/md0 /boot ext3 relatime 1 2
/dev/cdrom /media/cdrom auto umask=0022,users,iocharset=utf8,noauto,ro,exec 0 0
/dev/fd0 /media/floppy auto umask=0022,users,iocharset=utf8,noauto,exec,flush 0 0
none /proc proc defaults 0 0
/dev/md1 swap swap defaults 0 0

Anschließend ersetzen wir in /etc/mtab /dev/hda1 durch /dev/md0 und /dev/hda6 durch /dev/md2 (die zwei /dev/md-Zeilen am Ende können ignoriert werden):

/dev/md2 / ext3 rw,relatime 0 0
none /proc proc rw 0 0
/dev/md0 /boot ext3 rw,relatime 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/md0 /mnt/md0 ext3 rw 0 0
/dev/md2 /mnt/md2 ext3 rw 0 0

Jetzt kommen wir zum GRUB-Bootloader. Öffne /boot/grub/menu.lst und füge direkt nach default 0 die Zeile fallback 1 ein:

default 0
fallback 1

Das bewirkt, dass wenn der erste Kernel (Index 0) nicht bootet, der Fallback (hier #2) gestartet wird.

Gehe dann zum Ende der Datei, kopiere den ersten Kernel-Stanza und füge ihn vor dem ersten existierenden Stanza ein. Ersetze dabei root=/dev/hda6 mit root=/dev/md2 und (hd0,0) mit (hd1,0). Falls resume=/dev/hda5 vorhanden ist, ersetze es mit resume=/dev/md1:

[...]
title linux
kernel (hd1,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2  resume=/dev/md1
initrd (hd1,0)/initrd.img

title linux
kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/hda6  resume=/dev/hda5
initrd (hd0,0)/initrd.img

Eine mögliche vollständige menu.lst sieht so aus:

timeout 10
color black/cyan yellow/cyan
default 0
fallback 1

title linux
kernel (hd1,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2  resume=/dev/md1
initrd (hd1,0)/initrd.img

title linux
kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/hda6  resume=/dev/hda5
initrd (hd0,0)/initrd.img

title failsafe
kernel (hd0,0)/vmlinuz BOOT_IMAGE=failsafe root=/dev/hda6  failsafe
initrd (hd0,0)/initrd.img

(hd1,0) bezieht sich auf /dev/hdb, welches bereits Teil unserer RAID-Arrays ist. Wir starten in Kürze neu; das System versucht dann, von den (noch degradierten) RAID-Arrays zu booten; falls das fehlschlägt, bootet es von /dev/hda (Fallback 1).

Nun passen wir den Ramdisk an:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig  
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

Anschließend kopieren wir den Inhalt von /dev/hda1 und /dev/hda6 auf /dev/md0 und /dev/md2 (die auf /mnt/md0 und /mnt/md2 gemountet sind):

cp -dpRx / /mnt/md2
cd /boot  
cp -dpRx . /mnt/md0

6 GRUB vorbereiten (Teil 1)

Danach müssen wir den GRUB-Bootloader auf die zweite Festplatte /dev/hdb installieren:

brub

Im GRUB-Shell die folgenden Kommandos eingeben:

root (hd0,0)

Beispielausgabe:

grub> root (hd0,0)  
 Filesystem type is ext2fs, partition type 0x83  

grub>

Dann:

setup (hd0)

Beispielausgabe:

grub> setup (hd0)  
 Checking if "/boot/grub/stage1" exists... no  
 Checking if "/grub/stage1" exists... yes  
 Checking if "/grub/stage2" exists... yes  
 Checking if "/grub/e2fs_stage1_5" exists... yes  
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.  
 succeeded  
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded  
 Done.  
  
grub>

Dann das gleiche für das zweite Laufwerk:

root (hd1,0)
setup (hd1)
quit

Nach Verlassen von GRUB führen wir einen Neustart durch und hoffen, dass das System korrekt von den RAID-Arrays bootet:

reboot

Checkliste: Sysadmin vor dem Neustart

  • Vollständiges Backup wichtiger Daten vor Beginn erstellen.
  • /etc/mdadm.conf gesichert (/etc/mdadm.conf_orig).
  • /etc/fstab und /boot/grub/menu.lst gesichert.
  • Kopie von / und /boot auf die neuen Arrays bestätigt (Größe, Files vorhanden).
  • GRUB auf beiden Datenträgern installiert und Setup-Ausgabe überprüft.
  • Notfallkonsole (z. B. Rescue-CD) bereit und Mount-/Chroot-Anweisungen dokumentiert.

Incident-Runbook: Bootversagen nach Umstellung

  1. Wenn das System nicht bootet, boote von einem Live- oder Rescue-Medium.
  2. Prüfe mit blkid, lsblk und cat /proc/mdstat die vorhandenen Devices und md-Arrays.
  3. Assemble die Arrays falls nötig: mdadm –assemble –scan oder mdadm –assemble /dev/mdX /dev/sdY…
  4. Mounte /dev/md2 auf /mnt und /dev/md0 auf /mnt/boot, überprüfe /boot/grub/menu.lst und /etc/fstab.
  5. Re-Installiere GRUB auf dem primären Laufwerk: grub-install /dev/sda (oder setup im GRUB-Shell).
  6. Falls nicht behebbar: Boot von originaler Master-Festplatte (/dev/hda) mittels BIOS/UEFI-Änderung und rolle zurück (restore /etc/fstab, /etc/mtab).

Alternativen und Hinweise

  • Alternative: Statt erst degraded zu erstellen, RAID unter Offline-Bedingungen bauen (System herunterfahren und Laufwerke direkt zuordnen). Das reduziert Boot-Risiken, erfordert aber geplante Downtime.
  • UUIDs in fstab statt /dev/… verwenden, um robuste Zuordnungen bei geänderter Device-Nummer zu erhalten (empfohlen).
  • Moderne Systeme: Mit GRUB2 oder systemd-boot weichen die Befehle ab; hier ist die Anleitung auf traditionelles GRUB (menu.lst) ausgelegt.

Experte: “RAID ist kein Backup. RAID erhöht Verfügbarkeit, ersetzt aber nicht regelmäßige Backups.” — typischer Rat erfahrener Systemadministratoren.

Kriterien für Erfolg

  • Der Host bootet erfolgreich von /dev/md2 ohne manuelle Eingriffe.
  • /boot ist korrekt auf /dev/md0 vorhanden und lesbar.
  • Swap läuft auf /dev/md1.
  • mdadm –detail /dev/mdX zeigt die erwarteten Mitglieder und Status [UU] (nach vollständigem Resync).

Kurzer Faktkasten

  • RAID-Level verwendet: raid1 (Spiegelung)
  • Anzahl Arrays: 3 (md0 = /boot, md1 = swap, md2 = /)
  • Wichtigste Werkzeuge: mdadm, mkfs.ext3, mkswap, cp -dpRx, grub

Kurzglossar (1 Zeile je Begriff)

  • mdadm: Linux-Tool zur Verwaltung von Software-RAID-Arrays.
  • degraded: Ein Array fehlt eines oder mehrerer erwarteter Mitglieder.
  • fallback: GRUB-Option, die einen alternativen Eintrag beim Booten angibt.

Schlussfolgerung

Dieses Verfahren ermöglicht, ein laufendes System schrittweise auf RAID1 umzustellen, ohne sofortige Downtime für die gesamte Migration. Testen Sie jeden Schritt, dokumentieren Sie Änderungen und halten Sie ein Recovery-Medium bereit. Viel Erfolg beim Umstellen auf RAID1.

Autor
Redaktion

Ähnliche Materialien

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE