On 06/20/2011 08:40 AM, Avi Kivity wrote:
On 06/14/2011 04:31 PM, Corey Bryant wrote:
> - Starting Qemu with a backing file
>
For this we could tell qemu that a file named "xyz" is available via fd
n, via an extension of the getfd command.
For example
(qemu) getfd path="/images/my-image.img"
(qemu) getfd path="/images/template.img"
(qemu) drive-add path="/images/my-image.img"
The open() for my-image.img first looks up the name in the getfd
database, and finds it, so it returns the fd from there instead of
opening. It then opens the backing file ("template.img") and looks it up
again, and finds the second fd from the session.
The way I've been thinking about this is:
-blockdev id=hd0-back,file=fd:4,format=raw \
-blockdev file=fd:3,format=qcow2,backing=hd0-back
While your proposal is clever, it makes me a little nervous about subtle
security ramifications.
Regards,
Anthony Liguori
The result is that open()s are satisfied from the monitor, instead of
the host kernel, but without reversing the request/reply nature of the
monitor protocol.
A similar extension could be added to the command line:
qemu -drive file=fd:4,cache=none -path-alias
name=/images/template.img,path=fd:5
Here the main image is opened via a fd 4; if it needs template.img, it
gets shunted to fd 5.