Software RAID 1 wiederherstellen

Wie Sie nach einem Tausch einer defekten Festplatte Ihr Software RAID 1 wiederherstellen, wird im Folgenden erklärt.

Software RAID Reparatur im Legacy Bootmodus

Sollten die Festplatten größer als 2 TB sein, überspringen Sie folgenden Schritt:

Zuerst müssen Sie die Partitionstabellen der verbliebenen Festplatte auf die zweite neue Festplatte mit folgendem Befehl übernehmen:
sfdisk -d /dev/sda | sfdisk /dev/sdb

Ausgesprochen heißt der Befehl: Dumpe die Partitionstabelle von /dev/sda (der verbliebenen Platte mit den Daten) und pipe die Partitionstabelle auf die zweite neue Platte /dev/sdb

Wenn die Festplatten größer sind als 2 TB folgende Schritte ausführen:

  • Backup von sda:
sgdisk --backup=sda_parttable_gpt.bak /dev/sda

  • Einspielen in sdb:
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb

  • Neue ID vergeben für die neue Platte sdb:
sgdisk -G /dev/sdb

Um die Platte anschließend in den Software RAID Verbund wieder hinzuzufügen, sind folgende Befehle notwendig:
mdadm --manage /dev/md0 -a /dev/sdb1

Je nach Konfiguration können mehrere RAIDs angelegt sein!

Anschließend GRUB auf der Festplatte installieren:
grub-install /dev/sdb --recheck
update-grub

Nicht zu vergessen ist der Swap, hier gibt es mehrere Möglichkeiten:
Eine Swap-Partition auf jeder Festplatte → hier ist nach dem Partitionieren wichtig, diese auch als Swap zu markieren und dem System zu übergeben:
mkswap /dev/sdb2
swapon /dev/sdb2

Alternativ:
swapon -a

Bei neueren Servern ist der Swap als LVM Partition angelegt, hier ist ein nachträgliches Aktivieren nicht mehr erforderlich.
Die Vorgehensweise ist dabei immer dieselbe, außer dass sich Devices und Arrays unterscheiden können.


Software RAID Reparatur bei UEFI Bootmodus

Wir gehen davon aus, dass sda die verbliebene und sdb die neue leere Festplatte ist.

  • sysresccd 6.03 UEFI booten → per SSH verbinden → mithilfe des Befehls
fdisk -l
prüfen, welche Festplatte die leere/ausgetauschte Disk ohne Partitionstabelle ist.

  • Partitionstabelle von sda nach sdb kopieren
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb

  • sdb eine zufällige ID geben
sgdisk -G /dev/sdb

  • Mit partprobe die neuen Partitionen dem Kernel bekannt machen
partprobe

  • Eventuell vorhandene LVM Devices ausschalten
vgchange -an

  • md12[567] Devices stoppen, wir arbeiten mit md[012]
- Erstmal die RAIDs auslesen, dabei werden die korrekten Namen in die /etc/mdadm.conf geschrieben
mdadm --detail --scan >> /etc/mdadm.conf

- dann die alten Devices stoppen
mdadm -S /dev/md12[567]

  • Alte RAID Device Namen starten
mdadm --assemble --scan

  • Jetzt erstmal das RAID wieder aufbauen:
- mit Boot Device anfangen
mdadm -a /dev/md0 /dev/sdb2
mdadm -a /dev/md1 /dev/sdb3
mdadm -a /dev/md2 /dev/sdb4

  • Sofern LVMs vorhanden sind, diese einschalten
vgchange -ay

  • Devices mounten
- root
mount /dev/md2 /mnt
oder bei LVM z. B.:
mount /dev/vg/root /mnt
- proc
mount -t proc proc /mnt/proc
- dev
mount -o bind /dev /mnt/dev
- dev/pts
mount -t devpts devpts /mnt/dev/pts
- sys
mount -t sysfs sysfs /mnt/sys
- in das System chrooten
chroot /mnt /bin/bash
- jetzt eine Besonderheit der sysresccd, die unter Arch läuft - in der chroot als Erstes:
export PATH="/bin:/usr/bin:/sbin:/usr/sbin:$PATH"
- mount -a eingeben und mit mount schauen ob /boot und /boot/efi gemountet sind - efivars mounten sonst geht efibootmgr -v nicht:
mount -t efivarfs efivarfs /sys/firmware/efi/efivars

  • Mit efibootmgr -v prüfen, wie der Bootmodus eingestellt ist
efibootmgr -v

  • Mit efibootmgr -o die Reihenfolge einstellen, zuerst IPv4 UEFI, dann sda, dann sdb z.B.
efibootmgr -o 0001,000A,0006 (IPv4 UEFI Link, 000A als Beispiel für sda, 0006 als Beispiel für sdb)

  • Grub installieren. Das ist bei UEFI zwingend notwendig, weil nur dann der NVRAM mit den neuen Einstellungen beschrieben wird.
grub-install /dev/sda
grub-install /dev/sdb

Das System sollte abschließend wieder sauber hochfahren.




Tags