
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.