How To Restore From A LVM-based RHEL6 VMDK

As a customer I ran into a few scenarios where I needed to restore directories or files from a restored LVM-based RHEL 6 VMDK. You cannot simply attach the restored VMDK, mount the filesystem, and copy the directories or files due to the way LVM utilizes UUIDs for logical volumes. In order to restore directories or files from a LVM-based RHEL 6 VMDK, please perform the following steps:

    • Restore the VMDK either using the backup product of choice
    • Attach the restored VMDK to the target VM
    • Login to the VM as the root user
    • Rescan the virtual SCSI bus to see the newly added disk
      echo "- - -" > /sys/class/scsi_host/host0/scan
    • Import the restored LVM volume group without trashing the existing one using vgimportclone
      vgimportclone -n <VolGroupName>_clone /dev/<Disk Partition name ie. sdc1>
    • Verify you can now see the logical volumes on the restored VMDK
      lvdisplay
    • Make the logical volume(s) available
      lvchange -ay /dev/<VolGroupName>_clone/<LogicalVolumeName>
    • Mount the restored logical volume to a temporary mount point
      mount /dev/<VolGroupName>_clone/<LogicalVolumeNumber> /mnt
    • Copy the target directories/files using whatever *nix tool that you prefer
    • Unmount the restored logical volume
      unmount /mnt
    • Removed the restored volume group and physical volume
      vgremove <VolGroupName>_clone
    • Unattach the restored VMDK from the VM
    • Delete the restored VMDK as it is no longer needed

For more details please refer to the “SMVI Single File Recovery with Linux” NetApp Communities blog post.