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 vergewissere dich, 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 du alle Einstellungen überprüft hast, speicherst du 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. Starte nun den Server im Rescue System.

  6. Sobald du dich im Rescue System eingeloggt hast, mounte bitte die Partition, welche die lvm_backup_datei enthält, kopiere diese in das Dateisystem des Rescue Systems und umounte 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üfst und stellst sicher, dass keine der Partitionen mehr eingehängt ist:

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

    cat lvm_backup_datei
    physical_volumes {
    	pv0 {
    		id = "ek9MZu-UeBK-4boe-IkJU-Q4n7-yfpX-yLK1WY" -> Kopiere diese UUID
    [...]
  10. Anschließend verwendest du 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üfst nun, ob das Physical Volume erstellt wurde:

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

    vgcfgrestore -force <vg_name>

    Beispiel:

    vgcfgrestore –force vg0
  13. Anschließend synchronisierst du die Daten der Volume Group:

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

    vgs

Als Nächstes stellst du das LVM wieder her:

```batch
vgchange -ay <vg_name>
```

*Beispiel:*

```
vgchange -ay vg0
```
  1. Zum Schluss startest du den Server neu und lässt diesen in das installierte System booten. Überprüfe dort bitte, ob alle Daten intakt sind. Wenn du noch immer Probleme feststellst, empfehle ich dir, einen Dateisystem-Check in Betracht zu ziehen.
Table of Contents