KVM/QEMU-Datenträger- und Snapshots-Wiederherstellung mit LUKS2 RAID 6
Dieser Artikel untersucht die Wiederherstellung von KVM/QEMU-virtuellen Festplatten und Snapshots aus einem Speichersystem auf Basis von LUKS2 und RAID 6. Der Schwerpunkt liegt auf der Ermittlung der richtigen Wiederherstellungsreihenfolge, dem sicheren Arbeiten mit physischen Festplattenabbildern, dem Wiederaufbau des RAID-Arrays, dem Entsperren des verschlüsselten Containers, dem Auffinden von QCOW2-/RAW-Abbildern, der Analyse der Backing-Chain sowie der Wiederherstellung des Zugriffs auf Daten der virtuellen Maschine, ohne die ursprünglichen Medien zu verändern.

- SCHRITT 1. Erstellen einer KVM/QEMU-virtuellen Maschine
- SCHRITT 2. Erstellen eines Snapshots und Löschen der LUKS2-Partition
- SCHRITT 3. Anschließen der Laufwerke und Beginn der Wiederherstellung
- SCHRITT 4. Automatische Erkennung von MD RAID 6 und LUKS2-Partitionen
- SCHRITT 5. Analyse der LUKS2-Partition und Wiederherstellung von Dateien der virtuellen Maschine
- SCHRITT 6. Einbinden von virtuellen Festplatten und Snapshots
- SCHRITT 7. Vergleichen von Festplattenzuständen und Wiederherstellen von Dateien aus einem Snapshot
- SCHRITT 8. Suche nach Daten anhand der Dateisysteme der virtuellen Festplatten
- Zusammenfassung
- Häufig gestellte Fragen
- Bemerkungen
In modernen Serverumgebungen wird KVM/QEMU-basierte Virtualisierung häufig zusammen mit Software-RAID-Arrays und Festplattenverschlüsselung eingesetzt. Diese Architektur kombiniert Leistung, Fehlertoleranz und Datenschutz, erschwert jedoch die Wiederherstellung erheblich, wenn Laufwerke, RAID-Metadaten, der LUKS2-Container, das Dateisystem oder die Snapshot-Kette der virtuellen Maschine beschädigt werden.
Besonders schwierig sind Fälle, in denen KVM/QEMU-virtuelle Festplatten in den Formaten QCOW2, RAW oder anderen kompatiblen Formaten innerhalb eines verschlüsselten LUKS2-Volumes gespeichert sind, das auf RAID 6 aufbaut. In einer solchen Konfiguration hängt der Zugriff auf die Daten gleichzeitig von mehreren Ebenen ab: physischen Laufwerken, der Struktur des RAID-Arrays, der Integrität der LUKS2-Metadaten, dem Dateisystem und der internen Struktur der virtuellen Festplatten.
Zusätzliche Komplexität entsteht durch QEMU/KVM-Snapshots. Sie können eine Kette voneinander abhängiger QCOW2-Dateien bilden, bei der jedes nachfolgende Image nur geänderte Blöcke enthält und auf die Basisfestplatte oder den vorherigen Snapshot verweist. Der Verlust eines Elements in einer solchen Kette, die Beschädigung der Backing-Datei oder die falsche Bestimmung der Reihenfolge kann den Start der virtuellen Maschine unmöglich machen, selbst wenn die meisten Daten physisch noch auf den Laufwerken vorhanden sind.
Gelöschte MySQL-Datenbank auf RAID 6 + LUKS2 wiederherstellen (Ubuntu)
SCHRITT 1. Erstellen einer KVM/QEMU-virtuellen Maschine
Für den Test haben wir Ubuntu Server 24.04 installiert und Cockpit verwendet, um aus vier Laufwerken ein softwarebasiertes Linux MD RAID 6-Array zu erstellen.
Auf dem RAID-Array wurden drei Partitionen erstellt. Jede wurde mit LUKS2 verschlüsselt, und innerhalb der verschlüsselten Container wurden Ext4-Dateisysteme angelegt. Die dritte Partition wurde für die Speicherung der virtuellen Maschine verwendet.

Auf dem Server lief der KVM/QEMU-Hypervisor. Über Cockpit haben wir auf der dritten Partition einen separaten Speicherpool für die virtuelle Maschine erstellt – raid6-vm-images. Die Dateien der virtuellen Maschine wurden im Verzeichnis vm-images gespeichert.
Für die virtuelle Maschine haben wir eine QCOW2-Systemfestplatte mit einer Kapazität von 32 Gigabyte sowie zwei zusätzliche Festplatten erstellt: eine QCOW2-Festplatte mit 2 Gigabyte und eine IMG-Festplatte mit 1 Gigabyte.


Auf der Systemfestplatte wurde Windows 10 installiert. Die beiden zusätzlichen Festplatten wurden innerhalb von Windows jeweils als NTFS und FAT32 formatiert.

SCHRITT 2. Erstellen eines Snapshots und Löschen der LUKS2-Partition
Wir kopierten einen ersten Satz von Dateien auf die Systemfestplatte und die beiden zusätzlichen Festplatten, erstellten dann einen externen Snapshot. Danach fügten wir einen weiteren Ordner mit Dateien hinzu und löschten einige davon.

Nach Abschluss der Teständerungen wurde die virtuelle Maschine heruntergefahren. Anschließend wurde der Ordner vm-images mit den Basis-Image-Dateien, den externen Snapshot-Dateien und der Speicherzustandsdatei auf die zweite LUKS2-Partition des RAID-Arrays kopiert.
Um einen Datenverlust zu simulieren, haben wir diese Partition mit Cockpit aus der Partitionstabelle gelöscht. Dadurch wurde ihr Bereich nicht zugeordnet. Wir haben sie weder formatiert noch neue Daten darauf geschrieben, um die Möglichkeit einer späteren Wiederherstellung zu erhalten.


SCHRITT 3. Anschließen der Laufwerke und Beginn der Wiederherstellung
Nach dem Löschen der Partition schalteten wir den Server aus und entfernten die Laufwerke des RAID-Arrays. Nur zwei der vier Laufwerke wurden über eine USB-Dockingstation mit einem Computer verbunden, auf dem Windows 11 ausgeführt wurde.
Wenn Windows nach dem Anschließen zum Initialisieren oder Formatieren der Laufwerke auffordert, klicken Sie unbedingt auf Abbrechen. Schreiben Sie keine neuen Daten darauf und führen Sie keine Fehlerüberprüfung oder Reparaturvorgänge aus, da dies das Wiederherstellungsergebnis verschlechtern kann.
Sie können die Laufwerke auch auf andere Weise bearbeiten. Sie können sie beispielsweise per SSH remote mit der Software verbinden oder zuvor erstellte Images einbinden, wenn Sie nicht direkt mit den Originallaufwerken arbeiten möchten.

SCHRITT 4. Automatische Erkennung von MD RAID 6 und LUKS2-Partitionen
Unmittelbar nach dem Start las Hetman RAID Recovery die Dienstinformationen von den beiden verbundenen Laufwerken aus.

RAID 6 erlaubt das Fehlen von bis zu zwei Laufwerken. Da beide verfügbaren Laufwerke fehlerfrei waren und die Dienstinformationen intakt blieben, rekonstruierte das Programm das MD RAID 6 automatisch. Die beiden fehlenden Laufwerke wurden als Empty disk angezeigt, und das Array erhielt den Status Recoverable.

Die Eigenschaften zeigen das Layout Left Synchronous P+Q, eine Blockgröße von 512 KB sowie die Positionen, Offsets und Größen der Laufwerke.
Das Programm fand auf dem Array drei Bereiche mit LUKS2-Verschlüsselung. Die erste und dritte Partition blieben erhalten, und die gelöschte zweite Partition wird als nicht zugeordneter Speicherbereich mit der Bezeichnung LUKS angezeigt.
SCHRITT 5. Analyse der LUKS2-Partition und Wiederherstellung von Dateien der virtuellen Maschine
Doppelklicken Sie auf den nicht zugeordneten Bereich mit der Bezeichnung LUKS. Das Programm fordert Sie auf, ein Kennwort einzugeben oder eine Schlüsseldatei auszuwählen.

Nach dem Entsperren wird das Ext4-Dateisystem verfügbar. Wählen Sie anschließend den Analysemodus aus.
Wir empfehlen, mit Schnellscan zu beginnen. Wenn der Schnellscan die benötigten Daten nicht findet, führen Sie eine Vollständige Analyse durch und geben Sie das Dateisystem Ext2/3/4 an.

In unserem Fall war der Schnellscan ausreichend. Das Programm stellte die Struktur der gelöschten Partition wieder her und fand den Ordner vm-images, der die Systemfestplatte und die zusätzlichen virtuellen Festplatten sowie deren Snapshot-Dateien enthielt.

Es ist wichtig zu beachten, dass die Konfiguration der virtuellen Maschine separat von ihren Festplatten gespeichert wird – üblicherweise im Verzeichnis /etc/libvirt/qemu. Wenn die XML-Konfigurationsdatei verloren geht, können Daten aus den virtuellen Festplatten weiterhin wiederhergestellt werden, die Maschinenkonfiguration muss jedoch neu erstellt werden, um die VM erneut zu starten.

Wählen Sie den Ordner mit den virtuellen Festplatten und Snapshot-Dateien aus und klicken Sie auf Wiederherstellen.

Wir empfehlen, den gesamten Ordner wiederherzustellen, damit die Basis-Images und die zugehörigen Snapshots zusammenbleiben.
Wählen Sie zum Speichern ein anderes physisches Laufwerk. Stellen Sie die Dateien nicht zurück auf das ursprüngliche RAID-Array wieder her, da dies noch wiederherstellbare Daten überschreiben könnte.
SCHRITT 6. Einbinden von virtuellen Festplatten und Snapshots
Wenn Sie Zugriff auf die Daten innerhalb der virtuellen Festplatten oder Snapshots benötigen sowie gelöschte Dateien suchen und wiederherstellen möchten, können Sie dies direkt in unserem Programm tun.
Klicken Sie auf Datenträger einbinden.

Wählen Sie im Fenster Datenträgertyp des Images unter Virtuelle Maschinen-Disk-Images QEMU aus, da in unserem Test die virtuelle Maschine und ihre Festplatten auf KVM/QEMU basierten. Wenn die Images in einer anderen Virtualisierungsumgebung erstellt wurden, wählen Sie den entsprechenden Festplattentyp aus der Liste aus. Klicken Sie anschließend auf Weiter.

Geben Sie im nächsten Schritt nicht eine einzelne Image-Datei an, sondern den Ordner, in dem wir alle Dateien der virtuellen Maschine wiederhergestellt haben. Wichtig ist, dass die Basisfestplatten und die zugehörigen Snapshots zusammen gespeichert werden und ihre ursprünglichen Namen beibehalten.

Das Programm analysiert den Inhalt des Ordners, bestimmt die Beziehungen zwischen den Dateien und gruppiert die Basisfestplatten automatisch mit den entsprechenden Snapshots. Wenn für eine Festplatte mehrere Snapshots erstellt wurden, ordnet das Programm sie in der richtigen Reihenfolge an. Der aktuelle Zustand jeder Kette wird als Active markiert. Wählen Sie die erforderlichen Festplatten und ihre Zustände aus und klicken Sie dann auf Weiter.

Nach dem Einbinden werden sie unter Eingebundene Datenträger als separate Laufwerke angezeigt. Auf dem Hauptbildschirm wird die Bezeichnung Active nicht mehr angezeigt, sodass sich die Basisfestplatte und ihre Snapshots anhand der Namen der entsprechenden Dateien unterscheiden lassen.

SCHRITT 7. Vergleichen von Festplattenzuständen und Wiederherstellen von Dateien aus einem Snapshot
Um das Basis-Image und seinen Snapshot zu vergleichen, müssen Sie beide eingebundenen Datenträger analysieren. Doppelklicken Sie auf jeden von ihnen und starten Sie zunächst Schnellscan.
Wenn der Schnellscan die benötigten Daten nicht findet, führen Sie eine Vollständige Analyse durch. Während der vollständigen Analyse müssen Sie das im virtuellen Datenträger verwendete Dateisystem angeben.
Das Basis-Image bewahrt den früheren Zustand des Dateisystems.

Auf dem vom Snapshot eingebundenen Datenträger sind die späteren Änderungen sichtbar: der hinzugefügte Ordner und die daraus gelöschten Dateien, die das Programm mit einem X kennzeichnet.

Da diese Dateien nach dem Erstellen des vorherigen Festplattenzustands geschrieben wurden, müssen sie aus dem eingebundenen Snapshot gefunden und wiederhergestellt werden.
Überprüfen Sie die gefundenen Dateien im Vorschaufenster, das zahlreiche gängige Formate unterstützt. Sie können hier den Inhalt von Dokumenten, Listen von Dateien in Archiven, Bilder, Videos und andere Daten anzeigen. Die Vorschau kann im Vollbildmodus angezeigt werden, was besonders praktisch für die Prüfung von Bildern und Videoaufnahmen ist.
Nachdem Sie bestätigt haben, dass die benötigten Dateien ausgewählt sind, markieren Sie sie und klicken Sie auf Wiederherstellen. Speichern Sie die wiederhergestellten Daten auf einem anderen physischen Laufwerk.

SCHRITT 8. Suche nach Daten anhand der Dateisysteme der virtuellen Festplatten
Wenn die benötigten Images der virtuellen Festplatten nicht gefunden oder nicht eingebunden werden konnten, können Sie versuchen, die Daten direkt anhand der in diesen Festplatten verwendeten Dateisysteme wiederherzustellen.
Dazu wählen Sie die entsperrte RAID-Partition aus, starten den Wiederherstellungsassistenten und wählen Vollständige Analyse.

Geben Sie bei der Konfiguration der Analyse statt des auf dieser Partition tatsächlich zum Speichern der virtuellen Festplattendateien verwendeten Ext4-Dateisystems die Dateisysteme an, die sich direkt innerhalb der virtuellen Festplatten befinden. In unserem Fall sind dies FAT32 und NTFS, daher wählen wir für die Suche FAT und NTFS aus.

Diese Methode ist am effektivsten für virtuelle Festplatten, deren gesamter Speicherplatz im Voraus vorab zugewiesen wurde. In diesem Fall sind die Daten der virtuellen Festplatte physisch im Image enthalten, und das Programm kann das darin gespeicherte Dateisystem finden und analysieren, selbst wenn die Image-Datei selbst beschädigt oder verloren ist.
Bei dünn bereitgestellten virtuellen Festplatten ermöglicht dieser Ansatz in der Regel keine vollständige Wiederherstellung der Festplatte. In solchen Images werden nur die Blöcke physisch gespeichert, in die bereits Daten geschrieben wurden, während nicht genutzter Speicherplatz nicht vorab zugewiesen wird. Daher können ohne die Struktur des Images selbst einzelne Blöcke der virtuellen Festplatte fragmentiert sein, und die korrekte Rekonstruktion des gesamten Dateisystems ist deutlich schwieriger.
Überprüfen Sie nach Abschluss der Analyse die gefundenen Partitionen und Dateien.

Diese Methode kann helfen, einzelne Daten oder sogar ein Dateisystem von einer vorab zugewiesenen Festplatte wiederherzustellen, jedoch werden dabei die Image-Datei selbst und ihre Beziehungen zu Snapshots nicht wiederhergestellt.
Zusammenfassung
Infolgedessen stellte Hetman RAID Recovery das Linux MD RAID 6 automatisch aus zwei verfügbaren Laufwerken zusammen, fand die gelöschte LUKS2-Partition, entsperrte sie und stellte den Ordner mit den Festplattenimages und den Snapshots der virtuellen Maschine wieder her.
Nach dem Einbinden konnten wir den Zustand der Festplatte vor und nach dem Erstellen des Snapshots vergleichen, die benötigten Daten lokalisieren und später gelöschte Dateien wiederherstellen. Wichtig ist, alle zugehörigen Images und Snapshots zusammenzuhalten, ihre Namen nicht zu ändern und Daten nur auf einem anderen physischen Laufwerk wiederherzustellen.





