Difference between revisions of "Linux Logical Volume Manager (LVM)"

From ForensicsWiki
Jump to: navigation, search
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{expand}}
 
{{expand}}
  
The [[Linux]] Logical Volume Manager, is commonly abreviated to LVM. Although LVM can used for other [http://en.wikipedia.org/wiki/Logical_Volume_Management Logical Volume Management] variants as well.
+
The [[Linux]] Logical Volume Manager, is commonly abbreviated to LVM. Although LVM can used for other [http://en.wikipedia.org/wiki/Logical_Volume_Management Logical Volume Management] variants as well.
 +
 
 +
Not all forensic tools have support for Linux Logical Volume Manager (LVM) volumes, but most modern Linux distributions do.
 +
 
 +
== Forensic analysis ==
 +
The metadata area of a LVM Physical Volume can contain multiple versions of metadata section that contains the LVM Volume Group definitions, including a creation date and time value.
 +
 
 +
== Mounting an LVM ==
 +
=== Mounting an LVM from an image ===
 +
If you have an image mount the LVM read-only on a loopback device (e.g. /dev/loop1) by:
 +
<pre>
 +
sudo losetup -r -o $OFFSET /dev/loop1 image.raw
 +
</pre>
 +
 
 +
Note that the offset is in bytes.
 +
 
 +
If you need to write to the image, e.g. for recovery, use [[xmount]] to write the changes to a [[shadow file]] (or cachefile in xmount terminology).
 +
<pre>
 +
sudo xmount --in dd --cache sda.shadow sda.raw image/
 +
</pre>
 +
 
 +
You can then safely mount the LVM in read-write mode (just omit the -r in the previous losetup command).
 +
 
 +
To remove this mapping afterwards run:
 +
<pre>
 +
sudo losetup -d /dev/loop1
 +
</pre>
 +
 
 +
To scan for new physical volumes:
 +
<pre>
 +
lvm pvscan
 +
</pre>
 +
 
 +
You cannot unmount an active volume group. To detach (or deactivate) the volume group:
 +
<pre>
 +
vgchange -a n $VOLUMEGROUP
 +
</pre>
 +
 
 +
Where $VOLUMEGROUP is the corresponding name of the volume group
 +
 
 +
The individual volume devices are now available in:
 +
<pre>
 +
/dev/mapper/$VOLUMEGROUP-$VOLUMENAME
 +
</pre>
 +
 
 +
=== Mounting an LVM from a device ===
 +
 
 +
To list the Volume Groups (VG) run:
 +
<pre>
 +
pvs
 +
</pre>
 +
 
 +
To list information about a Volume Group (VG) run:
 +
<pre>
 +
lvdisplay $VOLUMEGROUP
 +
</pre>
 +
 
 +
The field "LV Name" provides the volume name
 +
 
 +
To make the volume group known to the system
 +
<pre>
 +
vgexport $VOLUMEGROUP
 +
</pre>
 +
 
 +
And active the volumes in the volume group
 +
<pre>
 +
vgchange -a y $VOLUMEGROUP
 +
</pre>
 +
 
 +
The individual volume devices are now available in:
 +
<pre>
 +
/dev/mapper/$VOLUMEGROUP-$VOLUMENAME
 +
</pre>
 +
 
 +
These now can be analyzed with e.g. a tool like the [[Sleuthkit]] or loop-back mounted.
 +
 
 +
To read-only loop-back mount an individual volume:
 +
<pre>
 +
mount -o ro /dev/mapper/$VOLUMEGROUP-$VOLUMENAME filesystem/
 +
</pre>
 +
 
 +
== Also see ==
 +
* [[:Category:File Systems | File Systems]]
  
 
== External Links ==
 
== External Links ==
 
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29 Wikipedia article on Logical Volume Manager]
 
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29 Wikipedia article on Logical Volume Manager]
 +
* [http://www.tldp.org/HOWTO/LVM-HOWTO/ LVM Howto], by [http://www.tldp.org/ The Linux Documentation Project]
 +
* [http://www.sourceware.org/lvm2/ LVM2 Resource Page]
 +
* [http://www.redhat.com/magazine/009jul05/features/lvm2/ The Linux Logical Volume Manager], by Heinz Mauelshagen and Matthew O'Keefe
 +
* [http://www.datadisk.co.uk/html_docs/redhat/rh_lvm.htm LVM cheatsheet], by [[RedHat]]
 +
* [http://content.hccfl.edu/pollock/aunix1/lvm.htm Unix/Linux Administration Logical Volume Management Guide], by Wayne Pollock, 2005
 +
* [http://lvb.sti.fce.vutbr.cz/public/LinuxAlt_2009/2009_11_08_LA_04_LVM/2009_11_08_LA_04_LVM.pdf LVM2 – data recovery], by Milan Brož, LinuxAlt 2009
 +
 +
[[Category:Volume Systems]]

Revision as of 09:56, 2 February 2014

Information icon.png

Please help to improve this article by expanding it.
Further information might be found on the discussion page.

The Linux Logical Volume Manager, is commonly abbreviated to LVM. Although LVM can used for other Logical Volume Management variants as well.

Not all forensic tools have support for Linux Logical Volume Manager (LVM) volumes, but most modern Linux distributions do.

Forensic analysis

The metadata area of a LVM Physical Volume can contain multiple versions of metadata section that contains the LVM Volume Group definitions, including a creation date and time value.

Mounting an LVM

Mounting an LVM from an image

If you have an image mount the LVM read-only on a loopback device (e.g. /dev/loop1) by:

sudo losetup -r -o $OFFSET /dev/loop1 image.raw

Note that the offset is in bytes.

If you need to write to the image, e.g. for recovery, use xmount to write the changes to a shadow file (or cachefile in xmount terminology).

sudo xmount --in dd --cache sda.shadow sda.raw image/

You can then safely mount the LVM in read-write mode (just omit the -r in the previous losetup command).

To remove this mapping afterwards run:

sudo losetup -d /dev/loop1

To scan for new physical volumes:

lvm pvscan

You cannot unmount an active volume group. To detach (or deactivate) the volume group:

vgchange -a n $VOLUMEGROUP

Where $VOLUMEGROUP is the corresponding name of the volume group

The individual volume devices are now available in:

/dev/mapper/$VOLUMEGROUP-$VOLUMENAME

Mounting an LVM from a device

To list the Volume Groups (VG) run:

pvs

To list information about a Volume Group (VG) run:

lvdisplay $VOLUMEGROUP

The field "LV Name" provides the volume name

To make the volume group known to the system

vgexport $VOLUMEGROUP

And active the volumes in the volume group

vgchange -a y $VOLUMEGROUP

The individual volume devices are now available in:

/dev/mapper/$VOLUMEGROUP-$VOLUMENAME

These now can be analyzed with e.g. a tool like the Sleuthkit or loop-back mounted.

To read-only loop-back mount an individual volume:

mount -o ro /dev/mapper/$VOLUMEGROUP-$VOLUMENAME filesystem/

Also see

External Links