From: Jan Kiszka <jan.kiszka@web.de>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] qemu-img: add FUSE-based image access
Date: Thu, 25 Mar 2010 22:46:43 +0100 [thread overview]
Message-ID: <4BABD9C3.9010309@web.de> (raw)
In-Reply-To: <4BABCE82.7000105@codemonkey.ws>
[-- Attachment #1: Type: text/plain, Size: 2249 bytes --]
Anthony Liguori wrote:
> 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<jan.kiszka@web.de>
>>
>
> 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.
You don't, see mountlo.
>
> So why did you go the fuse route instead of using qemu-nbd?
Mostly usability. It's really straightforward to stack mountlo on top of
the mapped image. And you can run (almost) all the filesystem and
partitioning tools.
Moreover, blkid_partlist provides a more complete partition parser than
rolling your own version - which I briefly considered and then quickly
dropped after looking at some implementations.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
next prev parent reply other threads:[~2010-03-25 21:46 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-25 17:52 [Qemu-devel] [PATCH] qemu-img: add FUSE-based image access Jan Kiszka
2010-03-25 20:58 ` Anthony Liguori
2010-03-25 21:46 ` Jan Kiszka [this message]
2010-03-25 22:04 ` Anthony Liguori
2010-03-25 22:27 ` Jan Kiszka
2010-03-25 22:54 ` Anthony Liguori
2010-03-26 7:59 ` Jan Kiszka
2010-03-28 11:02 ` Christoph Hellwig
2010-03-29 7:46 ` Jan Kiszka
2010-03-29 8:57 ` Alexander Graf
2010-03-29 9:37 ` Jan Kiszka
2010-03-29 9:39 ` Alexander Graf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BABD9C3.9010309@web.de \
--to=jan.kiszka@web.de \
--cc=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.