33.7. Accessing data from a guest disk image
kpartx tool, covered by this section, to mount the guest file system as a loop device which can then be accessed.
kpartx command creates device maps from partition tables. Each guest storage image has a partition table embedded in the file.
Warning
Procedure 33.1. Accessing guest image data
- Install the kpartx package.
# yum install kpartx
- Use kpartx to list partition device mappings attached to a file-based storage image. This example uses a image file named guest1.img.
# kpartx -l /var/lib/libvirt/images/guest1.img loop0p1 : 0 409600 /dev/loop0 63 loop0p2 : 0 10064717 /dev/loop0 409663
guest1 is a Linux guest. The first partition is the boot partition and the second partition is an EXT3 containing the root partition. - Add the partition mappings to the recognized devices in
/dev/mapper/.# kpartx -a /var/lib/libvirt/images/guest1.img
- Test that the partition mapping worked. There should be new devices in the /dev/mapper/ directory
# ls /dev/mapper/ loop0p1 loop0p2
The mappings for the image are named in the formatloopXpY.
- Mount the loop device which to a directory. If required, create the directory. This example uses
/mnt/guest1for mounting the partition.# mkdir /mnt/guest1 # mount /dev/mapper/loop0p1 /mnt/guest1 -o loop,ro
- The files are now available for reading in the
/mnt/guest1directory. Read or copy the files. - Unmount the device so the guest image can be reused by the guest. If the device is mounted the guest cannot access the image and therefore cannot start.
# umount /mnt/tmp
- Disconnect the image file from the partition mappings.
# kpartx -d /var/lib/libvirt/images/guest1.img
Many Linux guests use Logical Volume Management (LVM) volumes. Additional steps are required to read data on LVM volumes on virtual storage images.
- Add the partition mappings for the guest1.img to the recognized devices in the
/dev/mapper/directory.# kpartx -a /var/lib/libvirt/images/guest1.img
- In this example the LVM volumes are on a second partition. The volumes require a rescan with the
vgscancommand to find the new volume groups.# vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type lvm2
- Activate the volume group on the partition (called
VolGroup00by default) with thevgchange -aycommand.# vgchange -ay VolGroup00 2 logical volumes in volume group VolGroup00 now active.
- Use the
lvscommand to display information about the new volumes. The volume names (theLVcolumn) are required to mount the volumes.# lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M
- Mount
/dev/VolGroup00/LogVol00in the/mnt/guestboot/directory.# mount /dev/VolGroup00/LogVol00 /mnt/guestboot
- The files are now available for reading in the
/mnt/guestbootdirectory. Read or copy the files. - Unmount the device so the guest image can be reused by the guest. If the device is mounted the guest cannot access the image and therefore cannot start.
# umount /mnt/
- Disconnect the volume group VolGroup00
# vgchange -an VolGroup00
- Disconnect the image file from the partition mappings.
# kpartx -d /var/lib/libvirt/images/guest1.img

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.