Show Table of Contents
7.4. Recovering Physical Volume Metadata
If the volume group metadata area of a physical volume is accidentally overwritten or otherwise destroyed, you will get an error message indicating that the metadata area is incorrect, or that the system was unable to find a physical volume with a particular UUID. You may be able to recover the data the physical volume by writing a new metadata area on the physical volume specifying the same UUID as the lost metadata.
You should not attempt this procedure with a working LVM logical volume. You will lose your data if you specify the incorrect UUID.
The following example shows the sort of output you may see if the metadata area is missing or corrupted.
lvs -a -o +devicesCouldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'. Couldn't find all physical volumes for volume group VG. Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'. Couldn't find all physical volumes for volume group VG. ...
You may be able to find the UUID for the physical volume that was overwritten by looking in the
/etc/lvm/archivedirectory. Look in the file
VolumeGroupName_xxxx.vgfor the last known valid archived LVM metadata for that volume group.
Alternately, you may find that deactivating the volume and setting the
-P) argument will enable you to find the UUID of the missing corrupted physical volume.
vgchange -an --partialPartial mode. Incomplete volume groups will be activated read-only. Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'. Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'. ...
--restorefilearguments of the
pvcreatecommand to restore the physical volume. The following example labels the
/dev/sdh1device as a physical volume with the UUID indicated above,
FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk. This command restores the physical volume label with the metadata information contained in
VG_00050.vg, the most recent good archived metadata for the volume group. The
restorefileargument instructs the
pvcreatecommand to make the new physical volume compatible with the old one on the volume group, ensuring that the new metadata will not be placed where the old physical volume contained data (which could happen, for example, if the original
pvcreatecommand had used the command line arguments that control metadata placement, or if the physical volume was originally created using a different version of the software that used different defaults). The
pvcreatecommand overwrites only the LVM metadata areas and does not affect the existing data areas.
pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1Physical volume "/dev/sdh1" successfully created
You can then use the
vgcfgrestorecommand to restore the volume group's metadata.
vgcfgrestore VGRestored volume group VG
You can now display the logical volumes.
lvs -a -o +devicesLV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
The following commands activate the volumes and display the active volumes.
lvchange -ay /dev/VG/stripe[root@link-07 backup]#
lvs -a -o +devicesLV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi-a- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi-a- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
If the on-disk LVM metadata takes as least as much space as what overrode it, this command can recover the physical volume. If what overrode the metadata went past the metadata area, the data on the volume may have been affected. You might be able to use the
fsckcommand to recover that data.