====== Ubuntu - LVM - Mount LVM partition from USB ======
Execute:
vgscan
vgchange -a y
as root and all the partitions should have devices created in the form /dev/volumegroup/logicalvolume, which you can then mount in the usual way:
mount /dev/volumegroup/logicalvolume /mnt/somewhere
----
===== Extended Method =====
1. Boot from a live disk or USB.
2. Search for these tools: **lvm2**. If not found then install it.
sudo apt install lvm2
**NOTE:** Some command below may return with the following error after installing LVM2:
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
If so, then you load the **dm-mod** driver manually:
modprobe dm-mod
3. Make sure the harddisk is recognised.
fdisk -lu
4. Run **pvscan** to scan all disks for physical volume. This is to make sure your LVM harddisk is detected by Ubuntu.
pvscan
returns
PV /dev/sda2 VG VolGroup00 lvm2 [74.41 GB / 32.00 MB free]
Total: 1 [74.41 GB] / in use: 1 [74.41 GB] / in no VG: 0 [0 ]
5. Run **vgscan** to scan disks for volume groups.
vgscan
returns
Reading all physical volumes. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
6. Activate all volume groups available.
vgchange -a y
returns
2 logical volume(s) in volume group "VolGroup00" now active
7. Run **lvscan** to scan all disks for logical volume. You can see partitions inside the hard disk now active.
lvscan
returns
ACTIVE '/dev/VolGroup00/LogVol00' [72.44 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GB] inherit
8. Mount the partition to any directory you want, usually to /mnt
mount /dev/VolGroup00/LogVol00 /mnt
9. Access the partition in the /mnt directory as required.
Script
DISK=mydisk
lvdisplay | grep $DISK | grep "LV Path" | sed 's/.* //g'
LV_DISK=$(lvdisplay | grep $DISK | grep "LV Path" | sed 's/.* //g')
fdisk -l $LV_DISK
fdisk -lu $LV_DISK | sed -n '/lv[0-9]p[1-3]/ p' | grep p1 | awk '{print $2}'
OFFSET=$(fdisk -lu $LV_DISK | sed -n '/lv[0-9]p[1-3]/ p' | grep p1 | awk '{print $2}')
OFFSET=$((OFFSET * 512))
MOUNT=/mnt/$DISK
mkdir -p $MOUNT
mount -o loop,offset=$OFFSET $LV_DISK $MOUNT