From: Stefan Hajnoczi <stefanha@gmail.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: aliguori@us.ibm.com, gaowanlong@cn.fujitsu.com,
qemu-devel@nongnu.org, 马磊 <aware.why@gmail.com>
Subject: Re: [Qemu-devel] [PATCH] reading files from qcow2-formated image disk for windows system
Date: Mon, 14 Jan 2013 10:13:26 +0100 [thread overview]
Message-ID: <20130114091326.GC11260@stefanha-thinkpad.redhat.com> (raw)
In-Reply-To: <CAAu8pHvY-Yg1z2A1pqU6WRmsr0tkF_ss75MbvO3Es9oNLfG3BQ@mail.gmail.com>
On Sat, Jan 12, 2013 at 12:00:45PM +0000, Blue Swirl wrote:
> On Fri, Jan 11, 2013 at 7:27 AM, 马磊 <aware.why@gmail.com> wrote:
> >
> >
> > On Fri, Jan 11, 2013 at 2:28 PM, Wanlong Gao <gaowanlong@cn.fujitsu.com>
> > wrote:
> >>
> >> On 01/11/2013 11:39 AM, 马磊 wrote:
> >> >
> >> >
> >> > On Thu, Jan 10, 2013 at 8:20 PM, Daniel P. Berrange <berrange@redhat.com
> >> > <mailto:berrange@redhat.com>> wrote:
> >> >
> >> > On Wed, Jan 09, 2013 at 09:37:54PM +0000, Blue Swirl wrote:
> >> > > On Wed, Jan 9, 2013 at 7:31 AM, 马磊 <aware.why@gmail.com
> >> > <mailto:aware.why@gmail.com>> wrote:
> >> > > >
> >> > > >
> >> > > >>> Hi,
> >> > > >>> The final effect is as follows:
> >> > > >>>
> >> > > >>>
> >> > > >>> [malei@xentest-4-1 Fri Dec 28 ~/honeypot/xen/xen-4.1.2]$
> >> > qemu-img-xen cat
> >> > > >>> -f /1/boot.ini ~/vm-check.img
> >> > > >>> [boot loader]
> >> > > >>> timeout=30
> >> > > >>> default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
> >> > > >>> [operating systems]
> >> > > >>> multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows
> >> > XP
> >> > > >>> Professional" /noexecute=optin /fastdetect
> >> > > >>>
> >> > > >>> [malei@xentest-4-1 Fri Dec 28 ~/honeypot/xen/xen-4.1.2]$
> >> > qemu-img-xen ls
> >> > > >>> -l -d /1/ ~/vm-check.img
> >> > > >>> 【name size(bytes) dir? date
> >> > > >>> create-time】
> >> > > >>> AUTOEXEC.BAT 0 file 2010-12-22 17:30:37
> >> > > >>> boot.ini 211 file 2010-12-23
> >> > 01:24:41
> >> > > >>> bootfont.bin 322730 file 2004-11-23
> >> > 20:00:00
> >> > > >>>
> >> > > >>>
> >> > > >>>
> >> > > >>> As you see above, the patch add two sub-commands for
> >> > qemu-img-xen:cat and
> >> > > >>> ls.
> >> > > >>>
> >> > > >>> For details in the patch, please check the attachment.
> >> > > >>>
> >> > > >>>
> >> > > >
> >> > > > Does anyone prefer this feature?!
> >> > >
> >> > > Nice feature, but this approach would just clutter QEMU and give
> >> > only
> >> > > readonly FAT or NTFS support. I think a more generally useful
> >> > approach
> >> > > would be to use NBD or iSCSI to export the block device data from
> >> > the
> >> > > image file (qemu-nbd already exists) and then make a tool that
> >> > uses
> >> > > some combination of NBD/iSCSI client, all GRUB file systems and
> >> > FUSE
> >> > > or other user space methods to access the contents of the
> >> > filesystem.
> >> > > Probably also UML with a simple guest agent could provide
> >> > read/write
> >> > > access to any file system that Linux supports.
> >> >
> >> > The latter is what libguestfs already provides. It boots a Linux
> >> > kernel
> >> > and mini initrd containing a guest agent, to provide APIs to do
> >> > arbitrary
> >> > manipulation of guest OS images.
> >> >
> >> > The reason libguestfs used a linux guest was precisely to avoid
> >> > having
> >> > to re-implement drivers for every filesystem in existance like this
> >> > patch is trying todo.
> >> >
> >> > I don't think QEMU wants to be in the business of maintaining
> >> > filesystem
> >> > drivers, so I'd reject this proposed patch.
> >> >
> >> > Regards,
> >> > Daniel
> >> > --
> >> > |: http://berrange.com -o-
> >> > http://www.flickr.com/photos/dberrange/ :|
> >> > |: http://libvirt.org -o-
> >> > http://virt-manager.org :|
> >> > |: http://autobuild.org -o-
> >> > http://search.cpan.org/~danberr/ :|
> >> > |: http://entangle-photo.org -o-
> >> > http://live.gnome.org/gtk-vnc :|
> >> >
> >> >
> >> >
> >> > This feature could be configured to be optional in make file
> >> > configuration according to individual preference.
> >> > _In addition, the fat32 and ntfs filesystem driver will not change for a
> >> > long time so it needs no much maintainence once implemented._
> >>
> >> As Daniel and Stefan said, you can try to use libguestfs [libguestfs.org]
> >> and qemu-nbd.
> >> In libguestfs, we provide virt-cat, virt-ls, etc. And support all the disk
> >> type which QEMU supported.
> >>
> >> Thanks,
> >> Wanlong Gao
> >>
> >
> > I used libguest, it's startup takes too long to meet specific requirements
> > under some time-sensitive circumstance.
>
> For maximum speed, the backing formats (QCOW etc) should be
> implemented in the kernel directly, somewhat like device mapper or
> /dev/loop device.
>
> A very simple and fast approach without any changes would be to
> convince the guest to not to use partitions and instead use one file
> system for an entire block device, then the backing file (in raw
> format, no QCOW etc) could be manipulated by mounting it with the
> loopback device.
>
> Alternatively, we could implement in QEMU a way to concatenate several
> separate files into one, each of the files containing a partition or
> some space for partition table. Then the files could be again accessed
> with loopback mount. The partition table could be also synthesized.
>
> I don't know why the loopback mount in the kernel does not support
> partitions, that would also solve the problem when using raw files.
The loop module supports partitions through the offset= parameter.
For example:
# fdisk -lu /dev/sda
[...]
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 500117503 249545728 83 Linux
# mount -o loop,offset=$((2048 * 512)) /dev/sda /mnt/boot # mount sda1
Stefan
next prev parent reply other threads:[~2013-01-14 9:13 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-09 7:31 [Qemu-devel] [PATCH] reading files from qcow2-formated image disk for windows system 马磊
2013-01-09 21:37 ` Blue Swirl
[not found] ` <CA+ePHTC0npDVESeqg4FMEJT68rCvujSufG080mhJ-di3wBBdUQ@mail.gmail.com>
2013-01-10 8:04 ` 马磊
2013-01-10 8:33 ` 陳韋任 (Wei-Ren Chen)
2013-01-10 8:44 ` 马磊
2013-01-10 8:50 ` 陳韋任 (Wei-Ren Chen)
2013-01-10 8:57 ` 马磊
2013-01-10 8:37 ` Paolo Bonzini
[not found] ` <CA+ePHTBOKSizctD+MJTaKfa8Ufag=SnGMcWiibVM9E7r7c0UuA@mail.gmail.com>
2013-01-10 8:50 ` 马磊
2013-01-10 12:20 ` Daniel P. Berrange
2013-01-11 3:39 ` 马磊
2013-01-11 6:28 ` Wanlong Gao
2013-01-11 7:27 ` 马磊
2013-01-11 9:26 ` Stefan Hajnoczi
2013-01-12 12:00 ` Blue Swirl
2013-01-14 2:04 ` Wanlong Gao
2013-01-14 9:13 ` Stefan Hajnoczi [this message]
2013-01-17 20:22 ` Blue Swirl
2013-01-18 11:54 ` Stefan Hajnoczi
2013-01-10 12:01 ` Stefan Hajnoczi
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=20130114091326.GC11260@stefanha-thinkpad.redhat.com \
--to=stefanha@gmail.com \
--cc=aliguori@us.ibm.com \
--cc=aware.why@gmail.com \
--cc=blauwirbel@gmail.com \
--cc=gaowanlong@cn.fujitsu.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).