On 03/25/2010 12:52 PM, Jan Kiszka wrote:
This adds the "map" subcommand to qemu-img. It is able to expose the raw
content of a disk image via a FUSE filesystem. Both the whole disk can
be accessed, e.g. to run partitioning tools against it, as well as
individual partitions. This allows to create new filesystems in the
image or loop-back mount exiting ones. Using the great mountlo tool
from the FUSE collection [1][2], the latter can even be done by non-root
users (the former anyway).
There are some dependency to fulfill to gain all features: Partition
scanning is done via recent libblkid (I used version 2.17.1). If this
library is not available, only the disk file is provide. Fortunately,
mountlo can do partition scanning as well ("-p n") to work around this.
Moreover, libfuse>= 2.8 and a host kernel>= 2.6.29 is required for
seamless disk access via fdisk. Otherwise, the BLKGETSIZE64 IOCTL cannot
be provided, and the number of cylinders has to set explicitly (e.g. via
"-C n").
This work was inspired by Ashley Saulsbury's qemu-diskp [3].
[1]
http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FileSystems#Mountlo
[2] http://sourceforge.net/projects/fuse/files/mountlo/
[3] http://www.saulsbury.org/software/virtualization.html
Signed-off-by: Jan Kiszka<address@hidden>
This has been proposed quite a few times.
In fact, I wrote something like this prior to implementing qemu-nbd.
The problem with fuse is that as default configured, you can't actually
enter into a fuse filesystem as root and since you need to be root to
loopback mount it, it pretty nasty from a usability perspective.