Wie stelle ich mein Raid 1 nach einem Festplattenaustausch wieder her?

Sofern eine Festplatte in einem Raid-Verbund ausgefallen ist, kann dies mittels des Befehls:

cat /proc/mdstat

Eine Beispielausgabe, in der die Festplatte sdb (zweite Festplatte im System) ausgefallen ist, sieht wie folgt aus:

cat /proc/mdstat
Personalities : [raid1]

md125 : active raid1 sda3[0] sdb3 [1](F)
        1073740664 blocks super 1.2 [2/1] [U_]

md126 : active raid1 sda5[0] sdb5[1](F)
        524276 blocks super 1.2 [2/1] [U_]

md127 : active raid1 sda4[0] sdb4[1](F)
        33553336 blocks super 1.2 [2/1] [U_]

Sobald die defekte Festplatte durch unseren Support getauscht wurde, muss das Raid wiederhergestellt werden.
Hierzu werden im ersten Schritt die Partitionen von der nicht defekten Festplatte (im Beispiel sda) kopiert.

sfdisk -d /dev/sda | sfdisk /dev/sdb

Mittels folgenden Befehls können Sie überprüfen, ob auf sdb die Partitionen angelegt wurden:

fdisk -l
Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: A0FA7428-8E95-4683-AF1E-D6E8B75D1619

Device Start End Sectors Size Type
/dev/sdb1 2048 4095 2048 1M BIOS boot
/dev/sdb2 4096 1003519 999424 488M EFI System
/dev/sdb3 1003520 17004543 16001024 7,6G Linux RAID
/dev/sdb4 17004544 19005439 2000896 977M Linux RAID
/dev/sdb5 19005440 3907028991 3888023552 1,8T Linux RAID

Disk /dev/sda: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 319B1206-243C-4DE8-9D01-C96448249BD9

Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 1003519 999424 488M EFI System
/dev/sda3 1003520 17004543 16001024 7,6G Linux RAID
/dev/sda4 17004544 19005439 2000896 977M Linux RAID
/dev/sda5 19005440 3907028991 3888023552 1,8T Linux RAID

Wenn die Partitionen angelegt wurden, können die einzelnen Partitionen dem Raidverbund wieder hinzugefügt werden. Dies erfolgt für jede Partition einzeln. In unserem Beispiel haben wir 3 Partitionen im Raid-Verbund.

mdadm --manage /dev/md125 --add /dev/sdb3
mdadm --manage /dev/md126 --add /dev/sdb5
mdadm --manage /dev/md127 --add /dev/sdb4

Nun wird das Raid synchronisiert. Sie können den Sync-Prozess mittels folgenden Befehls überwachen / einsehen:

cat /proc/mdstat

Eine Beispielausgabe einer Synchronisation sieht wie folgt aus:

Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md125 : active raid1 sda3[0] sdb3[1]
        24418688 blocks [2/1] [U_]
        [=>...................] recovery = 9.9% (2423168/24418688) finish=2.8min speed=127535K/sec

Swap-Partition wiederherstellen

Bei einer Installation über unser Installationssystem wird die Swap-Partition als Raid-0 angelegt, auch wenn Raid-1 bei der Installation ausgewählt wurde. Wenn nun eine Festplatte ausfällt, ist das Raid-0 nicht mehr reparable. Hier muss das Raid-0 gelöscht und im Anschluss neu aufgebaut werden.

Raid löschen

Im nachfolgenden Beispiel ist die Festplatte "/dev/sda" ausgefallen. Das Raid ist mit "md0" benannt. Bitte beachten Sie, dass die Bezeichnungen von Ihrem System abweichen können und Sie hier die richtige Bezeichnung aus Ihrem System verwenden.

Um ein Raid zu entfernen, darf die entsprechende Festplatte / Partition nicht gemountet sein. Diese wird im ersten Schritt unmountet.

umount -l /dev/sda2

Nun wird das Raid-0 gestoppt.

mdadm --stop /dev/md0
mdadm: stopped /dev/md0 -> Das Raid wurde erfolgreich gestoppt. 

Nun muss der Superblock der Festplatte entfernt werden. Der Superblock definiert die Festplatten bzw. Partitionen als Raid-Device.

mdadm --zero-superblock /dev/sda2

Raid erstellen

Zuletzt wird ein neues Raid-0 erzeugt.

mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2

Bootloader neu installieren (Grub2)

Im ersten Schritt wird eine Chroot-Umgebung aufgebaut. Dazu müssen die entsprechenden Partitionen gemountet werden. Hier ist md126 das größte Raid, welches sehr wahrscheinlich die Daten enthält. Dies wird nun nach /mnt gemountet:

mount /dev/md126 /mnt

Nun wird das Proc - und Dev-Dateisystem gemountet:

mount -t proc proc /mnt/proc
mount -obind /dev /mnt/dev

Jetzt kann die chroot-Umgebung gestartet werden:

chroot /mnt /bin/bash

Nun wir zuerst die Device-Map bei Grub2 neu generiert:

grub-mkdevicemap -n

Im Anschluss kann Grub2 mittels folgenden Befehl repariert werden:

grub-install /dev/sdb

Kommentieren nicht möglich