使用`bdrv_pread(..)`或替代方法读取qcow2图像的内容

时间:2015-06-12 20:41:41

标签: c++ c qemu kvm

我想使用QEMU中的.qcow2函数读取bdrv_pread(...)图像中的内容。 比方说,我的图像的完整路径是/path/to/myimage.qcow2,我希望能够在特定偏移处读取该图像的'n'字节数据。现在bdrv_pread函数采用这些参数“BlockDriverState *bs, int64_t offset, void *buf, int count1”,我如何从图像路径初始化BlockDriverState(设备?)。除BlockDriverState以外的所有其他参数对我来说都很清楚。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您的目标是从您自己的程序访问qcow2文件,我建议您不要尝试使用QEMU功能。如果您只想读取qcow2文件的内容,那么它们将与QEMU关联很多状态。相反,您可以查看qcow2 specification,或者如果您想在更高的抽象级别工作,可以查看libguestfs库,该库声明它具有用于访问支持的VM磁盘格式的API(虽然我自己从未使用过它。有一些示例代码here可以帮助您入门。