使用qemu-img 2.8,如何将原始图像转换为luks加密qcow图像?

时间:2017-06-21 02:34:23

标签: qemu

我正在尝试将原始图像文件转换为带有luks加密的qcow2。我搜索了很多,主要是使用“-o encryption = on”,但它将来会在qemu-img工具中删除。< / p>

我正在使用qemu-img 2.8版本,我尝试这个命令:

qemu-img convert --object secret,data=123456,id=sec0 -O luks -o key-secret=sec0 raw.img demo.luks

qemu-img: Could not open 'demo.luks': Parameter 'key-secret' is required for cipher

有人知道如何解决这个问题吗?如果这个luks加密qcow2成功创建,那么是否有必要更改qemu-system-x86-64参数来运行此图像?

2 个答案:

答案 0 :(得分:1)

不幸的是,qemu-img中的'convert'命令不支持在任何已发布的QEMU版本中输出luks格式图像所需的语法。

目前的GIT大师,有一点改进 - 您现在可以使用LUKS图像作为预先创建LUKS图像的目标提供。首先使用'qemu-img create'创建一个没有写入数据的空luks图像,然后转换为它。

首先我有一些我之前创建的随机qcow2图像

<div class="row Pad-10" style="height:33%">

我在访客中使用它或以其他方式写入数据,现在想转换为luks。首先,我必须创建一个完全相同大小的luks图像:

$ qemu-img create -f qcow2 demo.qcow2 10M

现在我可以从qcow2图像中提取数据,将其写入luks图像:

$ qemu-img create -f luks --object secret,data=123,id=sec0  \
    -o key-secret=sec0 demo.luks  10M

注意,如上所述,这只是GIT master中的功能,现在来自

$ qemu-img convert --target-image-opts \
    --object secret,data=123,id=sec0 -f qcow2 demo.qcow2 -n \
    driver=luks,file.filename=demo.luks,key-secret=sec0

所以第一个版本将在下一个QEMU 2.10版本中提供。

答案 1 :(得分:0)

现在要加密支持文件?

qemu-img create -f luks -b demo.qcow2 snap.img
Backing file not supported for file format 'luks'
qemu-img create -f qcow2 -b demo.qcow2 -o encryption=luks snap.img
qemu-img: Parameter 'encryption' expects 'on' or 'off'

如果加密=开启 - 系统仿真器不再支持AES-CBC加密的qcow2映像 感谢。