May 072011
As mentioned in a previous post, I use LVM volumes directly to store the virtual disks for my Virtualbox VMs. This post will guide you through how to access the contents of the virtual disk directly (so that you don’t need to boot the VM). The disk I’m working with is called ‘debian’.
# lvscan | grep debian ACTIVE '/dev/vbox/debian' [5.00 GiB] inherit
We need to create device maps from this LVM device’s partition tables.
# kpartx -av /dev/vbox/debian add map vbox-debian1 (253:8): 0 9912042 linear /dev/vbox/debian 63 add map vbox-debian2 (253:9): 0 562275 linear /dev/vbox/debian 9912105 add map vbox-debian5 : 0 562212 linear 253:9 9912168
Now we can mount the image and grab any files we may need.
# mkdir foo # mount /dev/mapper/vbox-debian1 foo/ # ls foo/ bin cdrom etc home lib lost+found mnt proc sbin srv tmp var boot dev foo initrd.img lib64 media opt root selinux sys usr vmlinuz
Once we are done accessing our files, we can go ahead and unmount the partition and delete the partition mappings.
# umount foo/ # kpartx -d /dev/vbox/debian