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