Technologieführer

RAID1 mit zwei Festplatten einrichten

4 min read Server Aktualisiert 28 Sep 2025
RAID1 mit zwei Festplatten einrichten
RAID1 mit zwei Festplatten einrichten

Kurzfassung: Erstelle drei degraded RAID1-Arrays (/dev/md0, /dev/md1, /dev/md2) mit mdadm, formatiere sie, passe /etc/fstab und GRUB an, kopiere vorhandene Daten und installiere GRUB auf der zweiten Festplatte. Prüfe nach jedem Schritt mit /proc/mdstat, mount und grub-Status. Diese Anleitung zeigt die konkreten Befehle und bietet Checklisten, Abnahmekriterien und einen einfachen Rollback-Plan.

Wichtig

Bevor du startest: Mache ein Backup wichtiger Daten. Diese Anleitung geht davon aus, dass /dev/sda aktuell das System bootet und /dev/sdb die neue Festplatte ist. Einige Schritte brauchen Root-Rechte und ein Reboot ist erforderlich.

4 RAID-Arrays erstellen

Nun erstellen wir unsere RAID-Arrays /dev/md0, /dev/md1 und /dev/md2. /dev/sdb1 wird zu /dev/md0 hinzugefügt, /dev/sdb2 zu /dev/md1 und /dev/sdb3 zu /dev/md2. /dev/sda1, /dev/sda2 und /dev/sda3 können jetzt nicht hinzugefügt werden (das System läuft noch darauf), daher verwenden wir in den folgenden Befehlen als Platzhalter missing:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3

Der Befehl

cat /proc/mdstat

sollte jetzt anzeigen, dass du drei degraded RAID-Arrays hast ([U] oder [U] bedeutet degraded, [UU] bedeutet OK):

[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[1]
      4618560 blocks [2/1] [_U]

md1 : active raid1 sdb2[1]
      513984 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
      104320 blocks [2/1] [_U]

unused devices: 
[root@server1 ~]#

Als Nächstes erzeugen wir Dateisysteme auf unseren RAID-Arrays (ext3 auf /dev/md0 und /dev/md2 und Swap auf /dev/md1):

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

Erstelle anschließend /etc/mdadm.conf mit den Detektierungsinformationen:

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

Inhalt anzeigen:

cat /etc/mdadm.conf

In der Datei solltest du nun Details zu unseren drei (degradierten) RAID-Arrays sehen:

| ARRAY /dev/md0 level=raid1 num-devices=2 UUID=2848a3f5:cd1c26b6:e762ed83:696752f9 ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8a004bac:92261691:227767de:4adf6592 ARRAY /dev/md2 level=raid1 num-devices=2 UUID=939f1c71:be9c10fd:d9e5f8c6:a46bcd49 |

5 System auf RAID1 anpassen

Jetzt mounte /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 jetzt in der Ausgabe von

mount

sichtbar sein:

[root@server1 ~]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
/dev/md2 on /mnt/md2 type ext3 (rw)
[root@server1 ~]#

Bearbeite nun /etc/fstab: Ersetze LABEL=/boot durch /dev/md0, LABEL=SWAP-sda2 durch /dev/md1 und LABEL=/ durch /dev/md2, sodass die Datei wie folgt aussieht:

vi /etc/fstab

| /dev/md2 / ext3 defaults 1 1 /dev/md0 /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/md1 swap swap defaults 0 0 |

Ersetze außerdem LABEL=/boot durch /dev/md0 und LABEL=/ durch /dev/md2 in /etc/mtab:

vi /etc/mtab

| /dev/md2 / ext3 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 0 0 /dev/md0 /boot ext3 rw 0 0 tmpfs /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 |

Nun zum GRUB-Bootloader. Öffne /boot/grub/menu.lst und füge fallback=1 direkt nach default=0 ein:

vi /boot/grub/menu.lst

| [...] default=0 fallback=1 [...] |

Dadurch wird beim Scheitern des ersten Kernels (Index 0) eine Alternative gebootet.

Gehe im selben File ans Ende zu den Kernel-Stanzas. Kopiere die erste Strophe und füge sie vor der ersten existierenden Strophe ein; ersetze root=LABEL=/ durch root=/dev/md2 und root (hd0,0) durch root (hd1,0):

| [...] title Fedora (2.6.23.1-42.fc8) root (hd1,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/md2 rhgb quiet initrd /initrd-2.6.23.1-42.fc8.img title Fedora (2.6.23.1-42.fc8) root (hd0,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.23.1-42.fc8.img |

Die gesamte Datei sollte in etwa so aussehen:

| # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sda3 # initrd /initrd-version.img #boot=/dev/sda default=0 fallback=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.23.1-42.fc8) root (hd1,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/md2 rhgb quiet initrd /initrd-2.6.23.1-42.fc8.img title Fedora (2.6.23.1-42.fc8) root (hd0,0) kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.23.1-42.fc8.img |

root (hd1,0) bezieht sich auf /dev/sdb, das bereits Teil unserer RAID-Arrays ist. Wir werden das System gleich neu starten; das System versucht dann, von den (noch degradierten) RAID-Arrays zu booten; falls das fehlschlägt, wird /dev/sda gebootet (fallback=1).

Als Nächstes passen wir den ramdisk (initrd) an die neue Situation an:

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

Jetzt kopieren wir den Inhalt von /dev/sda1 und /dev/sda3 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

Anschließend muss der GRUB-Bootloader auf der zweiten Festplatte /dev/sdb installiert werden:

grub

Im GRUB-Shell geben wir folgende Befehle ein:

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)"...  16 sectors are embedded.
 succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
 Done.

grub>

Dann für die zweite Platte/Partition:

root (hd1,0)
setup (hd1)

Beispielausgabe ähnlich wie oben.

Beende die GRUB-Shell mit:

quit

Zurück in der normalen Shell: Reboot und kontrollieren, ob das System erfolgreich von den RAID-Arrays startet:

reboot

Abnahmekriterien

  • /proc/mdstat zeigt nach dem Zusammensetzen mindestens [UU] für kritische Arrays oder eine schrittweise Resynchronisation an.
  • /boot und / sind auf /dev/md0 und /dev/md2 gemountet (mount zeigt /dev/md0 auf /boot und /dev/md2 auf /).
  • GRUB ist auf beiden Festplatten installiert und das System bootet ohne manuelle Eingriffe.
  • /etc/mdadm.conf enthält die ARRAY-Einträge für md0, md1, md2.

Checkliste für Rollen

  • Systemadministrator (Vorbereitungen): Backup erstellen; UUIDs notieren; Partitionierung prüfen.
  • Systemadministrator (Durchführung): mdadm create, Dateisysteme anlegen, /etc/fstab und /etc/mtab anpassen, initrd erneuern.
  • Operator (Inbetriebnahme): GRUB installieren, Reboot durchführen, Logs prüfen (/var/log/messages, dmesg), RAID-Resync beobachten.

Rollback-Runbook (Kurz)

  1. Wenn nach dem Reboot das System nicht bootet, boote von der Original-Festplatte (BIOS/UEFI-Device wechseln).
  2. Mount /dev/sda3 und /dev/sda1, setze /etc/fstab und /boot/grub/menu.lst zurück auf LABEL-Werte oder vorherige Backups.
  3. Stelle /boot/initrd-.img_orig zurück, falls mkinitrd Probleme machte.
  4. Entferne die gerade erstellten RAID-Geräte mit mdadm –stop /dev/mdX und mdadm –remove –force, falls nötig.

Wichtige Notizen

  • Nimm dir Zeit für das erste Reboot-Testen. Ein falsch gesetzter root= Parameter in GRUB verhindert das Booten.
  • /dev-Bezeichnungen können sich zwischen Reboots ändern; verwende dauerhaft UUIDs in kritischen Umgebungen.

Kurzglossar

  • mdadm: Tool zur Verwaltung von Linux-Software-RAID.
  • degraded: RAID-Array hat weniger aktive Geräte als vorgesehen, aber läuft noch.
  • initrd/mkinitrd: initial ramdisk, erforderlich, um Kernel beim Booten mit dem richtigen Root-Dateisystem zu versorgen.

Zusammenfassung

  • Erstelle die RAID-Arrays mit mdadm, formatiere und mounte sie.
  • Passe fstab, mtab und GRUB an, erneuere die initrd und kopiere die Daten.
  • Installiere GRUB auf beiden Festplatten und teste das Boot-Verhalten.

Wen du fertig bist: Überwache die Resynchronisation (cat /proc/mdstat) und trage die neuen RAID-Konfigurationen in deine Betriebsdokumentation ein.

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