[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH][RFC] To mount qemu disk image on the host

From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH][RFC] To mount qemu disk image on the host
Date: Fri, 25 Jan 2008 09:18:22 -0600
User-agent: Thunderbird (X11/20071022)

Laurent Vivier wrote:

this patch allows to mount qemu disk images on the host.

Note, the general problem with this approach is that mounting a NBD device locally with write access can lead to dead locks. If you look through the mailing list archives, you'll find a number of conversations on the topic.


Anthony Liguori

It is based on the Network Block Device protocol and allows qemu-img to
become an NBD server (Yes, Anthony, userspace block device is the right
way to do that... :-P ).

Once you've applied the attached patch to Qemu and build the binaries,
you can use it like that:

# ./qemu-img server -d 1234 etch.qcow2

This starts an NBD server on port 1234. This server will expose
the disk image etch.qcow2. "-d" means it will be daemonize and will run
in background.

Then you need to connect the block device to the server:

# nbd-client localhost 1234 /dev/nbd0
Negotiation: ..size = 4194304KB
bs=1024, sz=4194304

This will link etch.qcow2 to /dev/nbd0.

Then to see partitions, you can use kpartx, as explained Daniel, or my
patched loop modules (I can send an updated and bug free version).
# kpartx -a /dev/nbd0
# rmmod loop
# insmod drivers/block/loop.ko max_part=64
# losetup -f /dev/nbd0
# mount /dev/loop0p1 /mnt
# ls /mnt
bench  cdrom    etc     initrd.img  media  proc  selinux  tmp  vmlinuz
bin    clients  home    lib         mnt    root  srv      usr
boot   dev      initrd  lost+found  opt    sbin  sys      var
# cd
# umount /mnt
# losetup -d  /dev/loop0
# nbd-client -d /dev/nbd0

TODO: security/host client checking, device lock...

As usual all comments are welcome,
have fun,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]