【问题标题】:Using qemu-img 2.8,How to convert raw image to a luks encryption qcow image?使用 qemu-img 2.8,如何将原始图像转换为 luks 加密 qcow 图像?
【发布时间】:2017-11-23 18:11:37
【问题描述】:

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

我使用的是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 参数来运行这个镜像?

【问题讨论】:

    标签: qemu


    【解决方案1】:

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

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

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

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

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

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

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

    $ 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
    

    注意,如上所述,这是目前仅在 GIT master 中的功能

    commit 305b4c60f200ee8e6267ac75f3f5b5d09fda1079
    Author: Daniel P. Berrange <berrange@redhat.com>
    Date:   Mon May 15 17:47:11 2017 +0100
    
        qemu-img: introduce --target-image-opts for 'convert' command
    

    所以第一个可用的版本是下一个 QEMU 2.10 版本。

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 2022-01-09
      • 2014-10-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-02
      相关资源
      最近更新 更多