RAID1: Ausfall simulieren und eine defekte Festplatte ersetzen
Simulieren Sie einen Festplattenausfall in einem RAID1 mit mdadm, kopieren Sie die Partitionstabelle von der intakten auf die neue Platte, löschen Sie alte RAID-Metadaten, fügen Sie die neue Partition dem Array hinzu und überwachen Sie den Resync. Abschließend installieren Sie GRUB auf beiden Disken. Diese Anleitung zeigt alle Kommandos, Prüfungen und typische Troubleshooting-Schritte.
Kurzdefinition
RAID1 ist Spiegelung: dieselben Daten liegen auf zwei (oder mehr) Platten. Vorteil: ein Plattenausfall bedeutet keine Datenverluste, solange das Array korrekt wiederhergestellt wird.
Begriffe in einer Zeile:
- mdadm: Linux-Tool zur Verwaltung von Software-RAID.
- /dev/sda, /dev/sdb: Blockgeräte (HDD/SSD) im System.
- Partitionstabelle kopieren: identische Partitionen erzeugen, damit das neue Laufwerk mit dem RAID kompatibel ist.
Voraussetzungen
- Zugriff als root oder mit sudo auf dem betroffenen System.
- Ein RAID1-Array, z. B. /dev/md0 und /dev/md1.
- Ersatzlaufwerk vorhanden und physisch angeschlossen.
- mdadm installiert.
Wichtig: Vor Operationen an Datenträgern ein Backup aktueller Konfiguration (/etc/mdadm/mdadm.conf) und wichtiger Daten anfertigen.
Schritt-für-Schritt-Anleitung
Die folgenden Schritte zeigen ein typisches Beispiel, in dem /dev/sdb ausfällt. Wenn bei Ihnen /dev/sda ausfällt, tauschen Sie die Namen entsprechend.
1) Ausfall simulieren
Sie können das Laufwerk physisch entfernen oder es soft entfernen. Beispielbefehle (unverändert):
mdadm –manage /dev/md0 –fail /dev/sdb1
mdadm –manage /dev/md1 –fail /dev/sdb5
mdadm –manage /dev/md0 –remove /dev/sdb1
mdadm –manage /dev/md1 –remove /dev/sdb5
Fahren Sie das System herunter, wenn Sie die Platte physisch ersetzen wollen:
shutdown -h now
Setzen Sie die neue Platte ein (oder vertauschen Sie die Geräte, wenn /dev/sda ausgefallen ist) und booten Sie neu. Das System sollte weiterhin starten.
2) Degradierung prüfen
Nach dem Start prüfen Sie den Zustand des Arrays:
cat /proc/mdstat
Beispielausgabe:
root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda5[2]
4989940 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[2]
248820 blocks super 1.2 [2/1] [U_]
unused devices:
root@server1:~#
Die Kennzeichnung [U_] zeigt an, dass ein Mitglied fehlt. Das Array ist degradiert.
Prüfen Sie zusätzlich die Partitionen und erkannten Disks:
fdisk -l
Beispielausgabe (unverändert):
root@server1:~# fdisk -l
Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003717c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 32 248832 fd Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sda2 32 653 4990977 5 Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5 32 653 4990976 fd Linux raid autodetect
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/md0: 254 MB, 254791680 bytes
2 heads, 4 sectors/track, 62205 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1: 5109 MB, 5109698560 bytes
2 heads, 4 sectors/track, 1247485 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/dm-0: 4844 MB, 4844421120 bytes
255 heads, 63 sectors/track, 588 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 264 MB, 264241152 bytes
255 heads, 63 sectors/track, 32 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-1 doesn't contain a valid partition table
root@server1:~#
Wenn /dev/sdb keine Partitionstabelle hat, ist das erwartbar: es ist ein neues Laufwerk.
3) Partitionstabelle kopieren
Kopieren Sie die Partitionstabelle der intakten Platte (/dev/sda) auf die neue (/dev/sdb):
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Beispielausgabe:
root@server1:~# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Checking that no-one is using this disk right now ...
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
OK
Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 2048 499711 497664 fd Linux raid autodetect
/dev/sdb2 501758 10483711 9981954 5 Extended
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
/dev/sdb5 501760 10483711 9981952 fd Linux raid autodetect
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
root@server1:~#
Wichtig: sfdisk warnt gelegentlich wegen Zylindergrenzen (historisch); moderne Distributionen arbeiten mit sektorbasierten Partitionen, die Warnung ist meist unkritisch, solange Start-/End-Sektoren korrekt übernommen wurden.
4) Alte RAID-Metadaten entfernen
Bevor Sie das Laufwerk dem Array hinzufügen, löschen Sie eventuell vorhandene Superblöcke (RAID-Metadaten) auf den neuen Partitionen:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb5
Dies verhindert, dass Reste alter Arrays Konflikte verursachen.
5) Neue Partitionen ins Array aufnehmen
Fügen Sie die neuen Partitionen dem jeweiligen Array hinzu:
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb5
Prüfen Sie danach erneut /proc/mdstat, um den Resync zu beobachten:
cat /proc/mdstat
Beispiel, während des Resyncs:
root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb5[3] sda5[2]
4989940 blocks super 1.2 [2/1] [U_]
[========>............] recovery = 44.7% (2233024/4989940) finish=0.2min speed=159501K/sec
md0 : active raid1 sdb1[3] sda1[2]
248820 blocks super 1.2 [2/2] [UU]
unused devices:
root@server1:~#
Warten Sie, bis der Wiederaufbau (Resync) abgeschlossen ist. Erst danach gilt das Array wieder als vollständig:
root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb5[3] sda5[2]
4989940 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sdb1[3] sda1[2]
248820 blocks super 1.2 [2/2] [UU]
unused devices:
root@server1:~#
6) Bootloader auf beide Disks installieren
Damit der Server auch startet, wenn die eine oder andere Platte fehlt, installieren Sie GRUB auf beiden physikalischen Disks:
brub-install /dev/sda
grub-install /dev/sdb
Hinweis: Bei UEFI-Systemen weichen die Schritte ab (EFI-Partitionen/efibootmgr). Diese Anleitung geht von klassischem BIOS/Legacy-Setup aus.
7) Validierung
- cat /proc/mdstat zeigt [UU] für jedes RAID1-Array.
- fdisk -l zeigt identische Partitionen auf beiden Disks.
- Booten Sie falls möglich mit nur einer Platte (testweise), um sicherzugehen, dass GRUB korrekt installiert wurde.
Troubleshooting: Häufige Probleme und Lösungen
- sfdisk meldet “sector 0 does not have an msdos signature”: Das ist normal für neue Disks. sfdisk schreibt trotzdem die Partitionstabelle.
- Resync läuft sehr langsam: Prüfen Sie I/O-Last (iostat, atop) und /proc/sys/dev/raid/speed_limit_min/max. Sie können die Geschwindigkeit vorübergehend erhöhen, aber das belastet das System.
- mdadm meldet “device busy”: Stellen Sie sicher, dass keine Partitionen der neuen Platte gemountet sind und keine LVM- oder dm-Devices darüber liegen.
- GRUB-Installation schlägt fehl: Prüfen Sie, ob die Ziel-Disks im BIOS sichtbar sind und ob es sich um UEFI handelt.
Wiederherstellungsfall: Falls das Array nicht mehr startet, booten Sie von einem Live-System, mounten Sie die intakten RAID-Arrays (mdadm –assemble –scan) und prüfen Sie /boot, /etc/fstab und die GRUB-Konfiguration.
Wann diese Methode nicht funktioniert
- Unterschiedliche Plattengrößen, bei denen die neue Platte kleiner ist als die alte.
- Unterschiedliche Sektorgrößen oder SMART-Fehler der neuen Platte.
- RAID-Arrays mit anderen Metadaten-Versionen oder non-standard Layouts.
In solchen Fällen ist eine manuelle Partitionserstellung mit fdisk/parted und anschließender Anpassung ratsam.
Sicherheits- und Datenschutzhinweise
- Arbeiten an Produktionssystemen immer mit aktuellen Backups und während eines Wartungsfensters.
- Protokollieren Sie Seriennummern defekter und ersetzter Laufwerke für Inventar und Garantieansprüche.
- Entsorgen Sie defekte Laufwerke gemäß Datenschutzrichtlinien (physische Zerstörung, sichere Löschung je nach Anforderungen).
Rollen-Checkliste
Systemadministrator (Senior)
- Backup prüfen und bestätigen.
- RAID-Konfiguration /etc/mdadm/mdadm.conf sichern.
- Partitionstabelle kopieren und prüfen.
- Resync überwachen und Leistung anpassen.
- GRUB auf beiden Disks installieren.
Junior-Administrator
- Degradierung prüfen (cat /proc/mdstat).
- Partitionstabelle kopieren unter Anleitung.
- Zero-superblock ausführen.
- Statusberichte an Senior schicken.
Operator
- Physikalischen Austausch der Disk durchführen.
- Kabelverbindungen und Steckplätze prüfen.
- Austausch dokumentieren (Datum, Uhrzeit, Seriennummer).
Kriterien bei Annahme
- Alle Arrays zeigen [UU] in /proc/mdstat.
- fdisk -l zeigt identische Partitionen auf beiden Disks.
- System bootet mit jeder einzelnen Disk (Stichprobe empfohlen).
- GRUB wurde auf beiden Disks ohne Fehler installiert.
Zusammenfassung
Sie haben gelernt, wie man einen Festplattenausfall in RAID1 simuliert, die Partitionstabelle auf eine neue Platte kopiert, RAID-Metadaten entfernt, das Ersatzlaufwerk dem Array hinzufügt, den Resync überwacht und GRUB auf beiden Datenträgern installiert. Die integrierten Prüf- und Troubleshooting-Schritte helfen, typische Fehler zu erkennen und zu beheben.
Links
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Debian: http://www.debian.org/
FAQ
Wie lange dauert der Resync?
Die Dauer hängt von Plattengröße, I/O-Last und RAID-Speed-Limits ab. Kleine Arrays dauern Minuten, große mehrere Stunden.
Kann ich die Partitionstabelle manuell mit parted erstellen?
Ja. parted ist eine Alternative zu sfdisk, besonders bei modernen GPT-Partitionstabellen. Achten Sie auf identische Start-/End-Sektoren.
Muss ich GRUB auf beiden Disks installieren?
Ja, sonst kann ein Ausfall der Boot-Disk dazu führen, dass das System nicht mehr startet. Bei UEFI-Systemen ist stattdessen die EFI-Partition zu berücksichtigen.
Ähnliche Materialien

Android-Sicherheits-Schlüssel für Google auf iOS

ADB & Fastboot auf Mac: installieren und nutzen
Systemreparatur ausstehend in Windows beheben

Kostenlose Android‑Apps ohne Programmieren erstellen

Sidebar in Windows 11/10 wiederherstellen
