
Ich habe eine SSD und eine HDD auf meinem PC. Die SSD ist für das System und die HDD zum Speichern von Daten. Ich habe mein Betriebssystem von Debian auf Ubuntu umgestellt, aber vergessen, das LVM auf meiner HDD zu sichern. Natürlich habe ich meine Daten verloren. Ich habe versucht, darauf ein neues Logikvolume mit derselben Größe neu zu erstellen. Aber wenn ich xfs_repair ausführe, wird angezeigt: „Kein gültiger sekundärer Superblock gefunden“. Das scheint nutzlos. Da ich ein neues Logikvolume erstellt habe, ist die Lvscan-Lösung auch nutzlos. Gibt es also eine Möglichkeit, meine Daten wiederherzustellen?
Antwort1
Es ist kompliziert, wir wissen nicht wirklich, was passiert ist, und Ihre Versuche haben möglicherweise nicht geholfen.
Wenn Sie logische Volumes neu erstellen, werden standardmäßig Signaturen gelöscht und die ersten 4 KiB Daten auf Null gesetzt. Mit anderen Worten wird dadurch besonders sichergestellt, dass auf dem neu erstellten LV kein altes Dateisystem sichtbar ist.
-W|--wipesignatures y|n
Controls detection and subsequent wiping of signatures on new LVs.
-Z|--zero y|n
Controls zeroing of the first 4KiB of data in the new LV.
Bei SSDs ist es möglich, dass die Daten vollständig verworfen werden, wenn Sie dies getan haben lvremove
(mit issue_discards = 1
in Ihrer lvmconfig) oder mkfs
.
Es ist auch möglich, dass LVM einen anderen Datenoffset verwendet. In diesem Fall hätten alle LVs, die Sie zu erstellen versuchen, ebenfalls die falschen Offsets. Dasselbe gilt, wenn sich LVM auf einer Partition befindet und die Partition selbst nicht am richtigen Offset neu erstellt wurde.
Logische Volumes können auch beliebig zugewiesen werden (wenn Sie mehr als eines haben oder deren Größe geändert haben). Es gibt keine Garantie, dass die Daten in einem einzigen linearen Block (wie einer Partition) auf der Festplatte verfügbar sind.
Um fehlende LV wiederherzustellen, benötigen Sie detaillierte Kenntnisse über LVM-Metadaten. Aus diesem Grund speichert LVM Backups seiner Metadaten /etc/lvm/{archive,backup}
– aber es hilft nichts, wenn diese bereits gelöscht, auf Null gesetzt oder verworfen wurden, und diese fehlen Ihnen wahrscheinlich auch, wenn Sie über Ihre Root-Partition formatiert haben. Überprüfen Sie es trotzdem, vielleicht haben Sie Glück.
Es gibt auch eine Metadatensicherung auf dem physischen Datenträger selbst, aber wenn Sie pvcreate/vgcreate darüber ausführen, ist diese wahrscheinlich auch schon weg. Trotzdem schadet es nicht, das zu überprüfen:
$ strings -w /dev/disk | grep -A 1000 'Generated by LVM2'
# Generated by LVM2 version 2.02.103(2) (2013-10-04): Thu Oct 31 11:42:36 2013
...
Und dort finden Sie möglicherweise Fragmente von Zuordnungsinformationen, die bei der Wiederherstellung hilfreich sein können, entweder manuell oder per vgcfgrestore
... (Beachten Sie den Zeitstempel, Sie suchen nach einem von vor Ihrem Unfall.)
Gibt es eine Möglichkeit, meine Daten wiederherzustellen?
Wenn sich das LV auf einer einzelnen Festplatte befand und in keiner Weise fragmentiert war und noch vorhanden ist (nicht gelöscht), können auch Partitionswiederherstellungstools wie testdisk
verwendet werden, um es wiederherzustellen – als normale Partition ohne LVM.
Partitionen unterstützen keine logische Adressierung, daher können Sie LV nur dann einer Partition zuordnen, wenn es sich physisch vollständig in einem Segment befindet und nicht wenn mehrere Segmente zusammen zugeordnet sind.
Wenn das Dateisystem selbst nicht wiederhergestellt werden kann, werden, sofern die Daten nicht verschlüsselt waren, photorec
möglicherweise einige einzelne, unfragmentierte Dateien gefunden (nur Inhalt, ursprüngliche Dateinamen und Struktur verloren).