Datenwiederherstellung · 4 min read · Dec 25, 2025
Daten von RAID1 LVM-Partitionen mit Knoppix Linux LiveCD wiederherstellen
Daten von RAID1 LVM-Partitionen mit Knoppix Linux LiveCD
Version 1.0
Autor: Till Brehm
Zuletzt bearbeitet: 04/11/2007
Dieses Tutorial beschreibt, wie man Daten von einer einzelnen Festplatte rettet, die Teil eines LVM2 RAID1-Setups war, wie es z.B. vom Fedora Core-Installer erstellt wird. Warum ist es so problematisch, die Daten wiederherzustellen? Jede einzelne Festplatte, die früher Teil eines LVM RAID1-Setups war, enthält alle Daten, die im RAID gespeichert waren, aber die Festplatte kann nicht einfach gemountet werden. Zuerst muss ein RAID-Setup für die Partition(en) konfiguriert werden, und dann muss LVM eingerichtet werden, um diese(n) RAID-Partition(en) zu verwenden, bevor Sie sie mounten können. Ich werde die Knoppix Linux LiveCD verwenden, um die Datenwiederherstellung durchzuführen.
Voraussetzungen
Ich habe eine Knoppix 5.1 LiveCD für dieses Tutorial verwendet. Laden Sie das CD-ISO-Image hier herunter und brennen Sie es auf eine CD, verbinden Sie dann die Festplatte, die die RAID-Partition(en) enthält, mit dem IDE / ATA-Controller Ihres Mainboards, legen Sie die Knoppix-CD in Ihr CD-Laufwerk ein und booten Sie von der CD.
Die von mir verwendete Festplatte ist ein IDE-Laufwerk, das an den ersten IDE-Controller (hda) angeschlossen ist. In meinem Fall enthielt die Festplatte nur eine Partition.
Wiederherstellung des RAID
Nachdem Knoppix gebootet ist, öffnen Sie eine Shell und führen Sie den Befehl aus:
sudo suum der Root-Benutzer zu werden.
Da ich die mdadm.conf-Datei aus der ursprünglichen Konfiguration nicht habe, erstelle ich sie mit diesem Befehl:
mdadm --examine --scan /dev/hda1 >> /etc/mdadm/mdadm.confDas Ergebnis sollte ähnlich wie folgt aussehen:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a
Bearbeiten Sie die Datei und fügen Sie devices=/dev/hda1,missing am Ende der Zeile hinzu, die das RAID-Array beschreibt.
vi /etc/mdadm/mdadm.confSchließlich sieht die Datei so aus:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a devices=/dev/hda1,missing
Der String /dev/hda1 ist das Hardwaregerät und missing bedeutet, dass die zweite Festplatte in diesem RAID-Array im Moment nicht vorhanden ist.
Bearbeiten Sie die Datei /etc/default/mdadm:
vi /etc/default/mdadmund ändern Sie die Zeile:
AUTOSTART=falsein:
AUTOSTART=true
Jetzt können wir unser RAID-Setup starten:
/etc/init.d/mdadm start
/etc/init.d/mdadm-raid start
Um zu überprüfen, ob unser RAID-Gerät in Ordnung ist, führen Sie den Befehl aus:
cat /proc/mdstatDie Ausgabe sollte wie folgt aussehen:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 hda1[1]
293049600 blocks [2/1] [_U]
unused devices:
Wiederherstellung des LVM-Setups
Die LVM-Konfigurationsdatei kann nicht mit einem einfachen Befehl wie der mdadm.conf erstellt werden, aber LVM speichert eine oder mehrere Kopien des Inhalts der Konfigurationsdatei zu Beginn der Partition. Ich verwende den Befehl dd, um den ersten Teil der Partition zu extrahieren und in eine Textdatei zu schreiben:
dd if=/dev/md0 bs=512 count=255 skip=1 of=/tmp/md0.txtÖffnen Sie die Datei mit einem Texteditor:
vi /tmp/md0.txtSie werden zunächst einige binäre Daten finden und dann einen Teil der Konfigurationsdatei wie folgt:
VolGroup00 {
id = "evRkPK-aCjV-HiHY-oaaD-SwUO-zN7A-LyRhoj"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 65536 # 32 Megabytes
max_lv = 0
max_pv = 0
physical_volumes {
pv0 {
id = "uMJ8uM-sfTJ-La9j-oIuy-W3NX-ObiT-n464Rv"
device = "/dev/md0" # Hinweis nur
status = ["ALLOCATABLE"]
pe_start = 384
pe_count = 8943 # 279,469 Gigabytes
}
}
logical_volumes {
LogVol00 {
id = "ohesOX-VRSi-CsnK-PUoI-GjUE-0nT7-ltxWoy"
status = ["READ", "WRITE", "VISIBLE"]
segment_count = 1
segment1 {
start_extent = 0
extent_count = 8942 # 279,438 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv0", 0
]
}
}
}
}Erstellen Sie die Datei /etc/lvm/backup/VolGroup00:
vi /etc/lvm/backup/VolGroup00und fügen Sie die Konfigurationsdaten ein, sodass die Datei ähnlich wie das obige Beispiel aussieht.
Jetzt können wir LVM starten:
/etc/init.d/lvm startLese das Volume ein:
vgscanAlle physischen Volumes werden gelesen. Dies kann eine Weile dauern…
Volumengruppe “VolGroup00” mit Metadatentyp lvm2 gefunden
pvscanPV /dev/md0 VG VolGroup00 lvm2 [279,47 GB / 32,00 MB frei]
Insgesamt: 1 [279,47 GB] / in Verwendung: 1 [279,47 GB] / in keiner VG: 0 [0 ]
und aktivieren Sie das Volume:
vgchange VolGroup00 -a y 1 logisches Volume(n) in der Volumengruppe "VolGroup00" jetzt aktivJetzt können wir die Partition nach /mnt/data mounten:
mkdir /mnt/data
mount /dev/VolGroup00/LogVol00 /mnt/data/
Wenn Sie Daten von einer Festplatte mit Dateinamen im UTF-8-Format wiederherstellen, kann es notwendig sein, diese in Ihre aktuelle nicht-UTF-8-Locale zu konvertieren. In meinem Fall stammt die RAID-Festplatte von einem Fedora Core-System mit UTF-8-kodierten Dateinamen. Meine Ziel-Locale ist ISO-8859-1. In diesem Fall hilft das Perl-Skript convmv, die Dateinamen in die Ziel-Locale zu konvertieren.
Installation von convmv
cd /tmp
wget http://j3e.de/linux/convmv/convmv-1.10.tar.gz
tar xvfz convmv-1.10.tar.gz
cd convmv-1.10
cp convmv /usr/bin/convmv
Um alle Dateinamen in /mnt/data in die ISO-8859-1-Locale zu konvertieren, führen Sie diesen Befehl aus:
convmv -f UTF-8 -t ISO-8859-1 -r --notest /mnt/data/*Wenn Sie die Konvertierung zuerst testen möchten, verwenden Sie:
convmv -f UTF-8 -t ISO-8859-1 -r /mnt/data/*Links
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.