LVM sichert seine Metadaten in /etc/lvm/backup
und /etc/lvm/archive
. Am Anfang jeder Datei wird die Uhrzeit bzw. die Daten angegeben, zu der die Datei erstellt wurde, sodass Sie wahrscheinlich über eine Kopie der älteren Metadaten verfügen, die vor dem Löschen der LV vorhanden waren. Ich glaube, die Sicherung erfolgt automatisch, sobald sich die Metadaten ändern.
Folgendes kann gefährlich und zerstörerisch sein , seien Sie also sehr vorsichtig und führen Sie nach Möglichkeit eine vollständige Sicherung durch.
Der Befehl zum Wiederherstellen dieser Volumegroup-Metadatensicherungen lautet vgcfgrestore
. Stellen Sie sicher, dass Sie mit dem vgcfgbackup
Befehl mit dem Flag -f eine aktuelle Kopie der vorhandenen Arbeitskonfiguration erstellen, um eine andere Datei für die Ausgabe anzugeben, damit Sie keine Dateien in / etc / lvm / backup oder / etc ändern / lvm / archive Ordner. Stellen Sie sicher, dass Sie die aktuelle Konfiguration mit der Konfiguration vergleichen, die Sie wiederherstellen möchten, um sicherzustellen, dass Sie nur die zuletzt gelöschte LV neu erstellen. Eine vollständige Sicherung Ihrer Daten ist wahrscheinlich auch keine schlechte Idee. Sie können sich auch an Ihren Linux-Anbieter wenden, um Unterstützung / Beratung zu erhalten, wenn Sie einen Supportvertrag haben, bevor Sie fortfahren, da ich dies nie selbst tun musste.
Viel Glück.
"Könnten Sie bitte genauer nach EFROM und ETO in der Backup-Datei suchen? Alle lv haben ein" start_extend "von 0 in meiner Backup-Datei, also bin ich ein bisschen verloren :) Danke! - user186975 Aug 24 '13 at 17 : 06 "
Ok, ich werde sehr spezifisch sein ... mit dem einfachsten Weg, ein logisches Volume wiederherzustellen.
Beispiel:
1 - Ich habe mein logisches Volume entfernt!
2 - Als erstes müssen Sie die Archivdatei unter /etc/lvm/archive/vg1_(xxxxx).vg suchen. Ich kann das tun, indem ich nur das Datum betrachte, an dem ich das logische Volume entfernt habe!
3- Ich habe es gefunden!
Datum an dem ich das lvremove gemacht habe !!! ... es war vor ein paar Minuten ..
4 - Schauen wir uns die Datei an!
5 - Machen Sie einen Test, bevor Sie ihn wiederherstellen!
6 - Ok, jetzt wiederhole die Kommandozeile, ohne das (--test)
7 - Überprüfen Sie es!
8 - Wenn die Logik nicht aktiv war, tun Sie es!
Es ist alles
Ich hoffe das kann anderen helfen, die nach dieser Lösung suchen!
quelle
Die einfachste Möglichkeit, sich von lvremove zu erholen (vorausgesetzt, Sie haben nicht in dem Umfang geschrieben, in dem sich die LV befand), ist:
Finden Sie einfach die Sicherung Ihrer Metadaten in / etc / lvm / archive und finden Sie es heraus
a) In welchem Bereich befand sich die LV (EFROM, ETO)?
b) Auf welchen PVs befand sich Ihre LV und auf welchem PV wurde sie verwendet (PFROM, PTO)?
Nachdem Sie diese Informationen erhalten haben, erstellen Sie einen neuen LV mit genau der gleichen Größe auf derselben PV- Erweiterung, ohne die ersten 8 KB zu löschen des LV zu :
quelle
(Wie bereits von thermoman beantwortet) Der einfachste Weg, ein gelöschtes LVM-Volume wiederherzustellen, besteht darin, es mit lvcreate zu erstellen ohne Nullen und sicherzustellen, dass es sich an derselben Position auf der Festplatte befindet. (Der Befehl von Thermomans Antwort funktionierte nicht.)
Überprüfen Sie die Größe und Position des gelöschten logischen Datenträgers wie vor dem Löschen, indem Sie die Dateien in / etc / lvm / archive lesen. Die Größe des Volumens ist in
extent_count
densegment1
(oder die Summesegment*/extent_count
Werte , wenn es mehrere Ausdehnungen hat). Die Position befindet sich imstripes
Abschnitt nach dem Alias des physischen Volumes (zpv0
. B. ).Der Volumenabschnitt könnte beispielsweise so aussehen:
Die Größe dieses
example
Volumes betrug 1024 und es befand sich auf / dev / somedisk ab Extent 30720.Berechnen Sie die letzte Ausdehnung als Start + Größe -1 = 30720 + 1024 - 1 = 31743. So erstellen Sie das Volume-Problem neu:
quelle
Ich hatte eine ähnliche Situation. Ich hatte alle PVs, die die gewünschten LVs enthielten, aber meine VG zeigte fehlende PVs und 0 LVs. Ich habe mich wie folgt erholt:
pvs
den Befehl aus, um UUIDs für alle Laufwerke zu erfassen.physical_volumes
Abschnitt diedevice =
Zeilen so ein, dass sie mit den aktuellen Geräte- / UUIDs übereinstimmen, die von gemeldet werdenpvs
, löschen Sie alle"MISSING"
Flags und entfernen Sie allepvN
Abschnitte, die tatsächlich fehlten.logical_volumes
Entfernen Sie im Abschnitt alle Auflistungen mit Streifen in denpvN
Abschnitten, die nicht mehr vorhanden sind.Das war es dann lief ich
vgcfgrestore --test vg -f /root/dangerously_edited.vg
--test
Option erneut gelaufen .Meine besondere Situation habe ich durch die Erweiterung der VG um PVs sdg und sdh erreicht. Dann habe ich eine neue LV erstellt und
/dev/sdg /dev/sdh
in der Befehlszeile angegeben, dass die neue LV auf diesen Laufwerken vorhanden ist. Dann habe ich nur diese Laufwerke auf eine neue Maschine verschoben. Die alte Maschine war sehr verärgert über die fehlenden Laufwerke, und als ich sie mit Gewalt entfernte, entfernte sie auch ALLE LVs. Schade.Das nächste Mal werde ich natürlich eine neue VG erstellen, um dieses Problem zu vermeiden.
quelle