Reparieren eines LVM-Volume

Last change on 2020-07-31 • Created on 2020-06-04 • ID: RO-84880

Dieser Artikel beschreibt die Wiederherstellung eines nicht mehr erkannten Volumes und der darauf befindlichen Daten bei Verwendung von LVM (Logical Volume Manager).

Szenario

Die LVM-Metadaten eines Linux-Systems sind beschädigt und die Laufwerke oder Partitionen werden bei der Ausführung von PVdisplay, LVdisplay oder VGdisplay nicht mehr angezeigt.

Wiederherstellung des fehlenden Volumes

  1. LVM sichert seine Meta-Daten nach jeder Änderung in /etc/lvm/backup/<vg_name> (VG ~ Volume Group). Bitte vergewissern Sie sich, dass diese Datei vorhanden ist und alle Volumes sowie deren Größen darin enthalten sind:

  2. logical_volumes {
    	root {
    		id = "j5rlvk-cGYE-fxbN-F8bO-p90r-x0FL-suSAUN"
    		status = ["READ", "WRITE", "VISIBLE"]
    		flags = []
    		creation_host = "unassigned-hostname"
    		creation_time = 1475126039 # 2020-05-03 10:42:51 +0530
    		segment_count = 2
    		segment1 {
    			start_extent = 0
    			extent_count = 6425 # 25.0977 Gigabytes
    			type = "striped"
    			stripe_count = 1 # linear
    			stripes = [
    				"pv0", 0
    			]
    		}
    		segment2 {
    			start_extent = 6425
    			extent_count = 15360 # 60 Gigabytes
    			type = "striped"
    			stripe_count = 1 # linear
    			stripes = [
    				"pv1", 0
    			]
    		}
    	}
    }
  3. Nachdem Sie alle Einstellungen überprüft haben, speichern Sie ein Backup dieser Datei:

  4. cat /etc/lvm/backup/<vg_name> > /pfad/zur/lvm_backup_datei

    Beispiel:

    cat /etc/lvm/backup/vg0 > /media/storage/lvm_backup_datei
  5. Starten Sie nun den Server im Rescue System.

  6. Sobald Sie sich im Rescue System eingeloggt haben, mounten Sie bitte die Partition, welche die lvm_backup_datei enthält, kopieren Sie diese in das Dateisystem des Rescue Systems und umounten Sie die Partition anschließend:

  7. mount /dev/<partition> /mnt
    cp /mnt/pfad/zur/lvm_backup_datei lvm_backup_datei
    umount /mnt

    Beispiel:

    mount /dev/sdb1 /mnt
    cp /media/storage/lvm_backup_datei lvm_backup_datei
    umount /mnt
  8. Überprüfen und stellen Sie sicher, dass keine der Partitionen mehr eingehängt ist:

    lsblk
  9. Geben Sie den Inhalt der lvm_backup_datei mittels cat aus und kopieren Sie die UUID (Universally Unique Identifier) der betreffenden <partition>:

    cat lvm_backup_datei
    physical_volumes {
    	pv0 {
    		id = "ek9MZu-UeBK-4boe-IkJU-Q4n7-yfpX-yLK1WY" -> Kopieren Sie diese UUID
    [...]
  10. Anschließend verwenden Sie den folgenden Befehl, um das Physical Volume (PV) zu erstellen:

    pvcreate –restorefile lvm_backup_datei –uuid <uuid> <partition>

    Beispiel:

    pvcreate –restorefile lvm_backup_datei –uuid ek9MZu-UeBK-4boe-IkJU-Q4n7-yfpX-yLK1WY /dev/sda1
  11. Prüfen Sie nun, ob das Physical Volume erstellt wurde:

    pvs
  12. Als nächstes stellen Sie die Volume Group (VG) wieder her:

    vgcfgrestore -force <vg_name>

    Beispiel:

    vgcfgrestore –force vg0
  13. Anschließend Synchronisieren Sie die Daten der Volume Group:

    vgscan
  14. Überprüfen Sie nun, ob die Volume Group ordnungsgemäß wiederhergestellt wurde:

    vgs
  15. Als Nächstes stellen Sie das LVM wieder her:

    vgchange -ay <vg_name>

    Beispiel:

    vgchange -ay vg0
  16. Zum Schluss starten Sie den Server neu und lassen diesen in das installierte System booten. Überprüfen Sie dort bitte, ob alle Daten intakt sind. Wenn Sie noch immer Probleme feststellen, ziehen Sie bitte einen Dateisystem-Check in Betracht.

Table of Contents