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 su

um 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.conf

Das 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.conf

Schließ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/mdadm

und ändern Sie die Zeile:

AUTOSTART=false

in:

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/mdstat

Die 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.txt

Sie 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/VolGroup00

und 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 start

Lese das Volume ein:

vgscan

Alle physischen Volumes werden gelesen. Dies kann eine Weile dauern…
Volumengruppe “VolGroup00” mit Metadatentyp lvm2 gefunden

pvscan

PV /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 aktiv

Jetzt 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

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.