Hi,
On Thursday 06 February 2014 02:53:05 Patrick Schleizer wrote:
Apparently,
guestmount -o allow_other -a "/path/to/raw_file" -m /dev/sda1
"/path/to/mountfolder"
is much slower than
kpartx -av "/path/to/raw_file"
mount /dev/mapper/loop0p1 /path/to/mountfolder
(Doing lots of read/write inside the image.)
I thought guestmount "only" scripts the above. Seems I was wrong on
that.
As also described in our documentation[1], libguestfs uses a virtual
machine to handle the images. It does so also to not require root
permissions on your host (which you need when using kpartx+mount), and
to isolate the host from whatever is into the image [2].
[1]
http://libguestfs.org/guestfs.3.html#architecture
[2]
http://libguestfs.org/guestfs.3.html#security
Seems my version is higher than 1.13.16, so far so good. I am using
guestmount inside a virtual machine (to prevent damaging my hosts due
to own stuff).
Since libguestfs uses a VM internally already, you could avoid this
step. VM-in-VM certainly makes things slower too.
It's a sparse raw image (because the tool I am using to create
them
(grml-debootstrap [3]) can only create raw images).
With guestmount,
time sudo chroot /path/to/mountfolder sudo -u user echo test
takes ~1 second. In comparison, doing the same using kpartx/mount only
takes ~0.01 seconds.
Note also guestmount uses FUSE to mount the provided image using
libguestfs, so there is also an additional layer between the commands in
the mountpoint and the actual access to the data in the image.
--
Pino Toscano