转换镜像格式

ECS仅支持导入RAW、VHD和QCOW2格式的镜像文件。如果您的镜像文件是其他格式,需要转换格式后再导入。本文介绍如何通过开源的转换工具qemu-img转换镜像文件的格式。

约束限制

  • qemu-img工具支持RAW、QCOW2、QCOW1、VMDK、VDI、VHD、VHDX或QED格式的镜像相互转换。

  • qemu-img工具不支持直接将ISO镜像转换为RAW、VHD和QCOW2格式。

    如需转换,建议先创建一个虚拟机,并使用ISO镜像来引导虚拟机启动操作系统。然后在虚拟机中安装操作系统,最后将虚拟机的磁盘导出为RAW、VHD和QCOW2格式的虚拟磁盘镜像。具体操作,请参见创建虚拟机并安装操作系统(Linux)或者创建虚拟机并安装操作系统(Windows)

  • 将VHD格式转换为其他格式或者将其他文件格式转换为VHD格式时,需使用vpc参数代替VHD格式,否则可能造成qemu-img工具无法识别VHD镜像格式导致转换失败,类似报错信息如下。

    image.png

操作步骤

本地为Windows操作系统

您可以按照以下步骤在Windows操作系统上安装qemu-img工具并转换镜像文件格式。

说明

以下操作以Windows Server 2016操作系统为例,不同版本操作系统的操作路径可能不同,请您根据实际环境进行操作。

  1. 安装qemu-img工具。

    下载并安装qemu-img工具,以下操作以安装路径是C:\Program Files\qemu为例。

  2. 为qemu-img工具配置环境变量。

    1. 在Windows Server桌面,右键单击image.png图标,然后单击系统

    2. 在左侧导航栏,单击高级系统设置

    3. 系统属性对话框里,单击高级页签,并单击环境变量

    4. 环境变量对话框里,在系统变量部分找到Path,并单击编辑。如果Path变量不存在,单击新建

      image.png

    5. 添加系统变量值。

      • 编辑系统变量

        单击新建,添加C:\Program Files\qemu变量值。

        image.png

      • 新建系统变量

        变量名处输入Path,在变量值处输入C:\Program Files\qemu

        image.png

    6. 测试环境变量是否配置成功。

      1. 打开Windows命令行窗口。

      2. 运行qemu-img --help命令。

        如果回显信息出现qemu-img工具的版本信息,则表示环境变量配置完成。

  3. 转换镜像格式。

    1. 在命令行窗口运行以下命令,切换到源镜像文件所在目录,例如C:\Program Files\ConvertImage

      cd C:\Program Files\ConvertImage
    2. 运行以下命令,转换镜像文件格式。

      以下转换命令分别以QCOW2转换为RAW格式、VHD转换为RAW格式为例,请您根据实际镜像格式进行替换。

      QCOW2转换为RAW格式

      qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw

      其中:

      • -f(可选):参数值qcow2表示源镜像文件的格式是QCOW2。

        说明

        您也可以省略-f及其参数值,直接执行qemu-img convert -O raw centos.qcow2 centos.raw转换。

      • -O(必须大写):参数值依次表示目标镜像格式、源镜像文件名称和目标文件名称。该示例表示将源镜像文件centos.qcow2转换为RAW格式,并指定文件名称为centos.raw。

      VHD转换为RAW格式

      qemu-img convert -f vpc -O raw centos.vhd centos.raw

      其中:

      • -f (可选):参数值vpc表示源镜像文件的格式是VHD格式。

        说明

        您也可以省略-f及其参数值,直接执行qemu-img convert -O raw centos.vhd centos.raw转换。

      • -O(必须大写):参数值依次表示目标镜像格式、源镜像文件名称和目标文件名称。该示例表示将源镜像文件centos.vhd转换为RAW格式,并指定文件名称为centos.raw。

        重要

        如果是将其他格式转换为VHD格式,目标文件格式需使用vpc替代。例如将RAW格式转换为VHD格式,示例命令:qemu-img convert -f raw -O vpc centos.raw centos.vhd

    3. 获取转换后的镜像文件。

      • 转换后的镜像文件保存在源镜像文件所在的目录下,本示例为C:\Program Files\ConvertImage,您可以前往该目录获取。

      • 您也可以运行qemu-img info <目标文件名称>命令查看转换后的镜像文件的详细信息。

        image.png

本地为Linux操作系统

您可以按照以下步骤在Linux操作系统上安装qemu-img工具并转换镜像文件格式。

说明

以下操作以Alibaba Cloud Linux 3及Ubuntu操作系统为例进行镜像格式转换。不同操作系统版本可能会有区别,请您根据实际环境进行操作。

  1. 运行以下命令,安装qemu-img工具。

    • Alibaba Cloud Linux 3

      sudo yum install qemu-img
      说明

      如果在安装qemu-img时报错,且没有明确提示缺少哪些依赖库,您可以根据cloud-init的requirements.txt文件里显示的库,并运行sudo pip install -r requirements.txt命令安装所有依赖库。

    • Ubuntu

      sudo apt-get install qemu-utils
      说明

      如果出现Unable to locate package qemu-utils错误,请重新运行以下命令安装qemu-img工具。

      sudo apt-get update #更新包列表
      sudo apt-get install qemu-utils #安装qemu-img工具
  2. 运行以下命令,转换镜像文件格式。

    以下转换命令分别以QCOW2转换为RAW格式、VHD转换为RAW格式为例,请您根据实际镜像格式进行替换。

    QCOW2转换为RAW格式

    qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw

    其中:

    • -f(可选):参数值qcow2表示源镜像文件的格式是QCOW2。

      说明

      您也可以省略-f及其参数值,直接执行qemu-img convert -O raw centos.qcow2 centos.raw转换。

    • -O(必须大写):参数值依次表示目标镜像格式、源镜像文件名称和目标文件名称。该示例表示将源镜像文件centos.qcow2转换为RAW格式,并指定文件名称为centos.raw。

    VHD转换为RAW格式

    qemu-img convert -f vpc -O raw centos.vhd centos.raw

    其中:

    • -f (可选):参数值vpc表示源镜像文件的格式是VHD格式。

      说明

      您也可以省略-f及其参数值,直接执行qemu-img convert -O raw centos.vhd centos.raw转换。

    • -O(必须大写):参数值依次表示目标镜像格式、源镜像文件名称和目标文件名称。该示例表示将源镜像文件centos.vhd转换为RAW格式,并指定文件名称为centos.raw。

      重要

      如果是将其他格式转换为VHD格式,目标文件格式需使用vpc替代。例如将RAW格式转换为VHD格式,示例命令:qemu-img convert -f raw -O vpc centos.raw centos.vhd

  3. 获取转换后的镜像文件。

    • 转换后的镜像文件保存在源镜像文件所在的目录下,您可以前往该目录获取。

    • 您也可以运行qemu-img info <目标文件名称>命令查看转换后的镜像文件的详细信息。

      image.png

后续步骤

镜像文件格式完成转换后,您需要将镜像文件上传至OSS Bucket,以便后续导入自定义镜像。具体操作,请参见上传镜像文件至OSS

相关文档

  • qemu-img是用于创建、转换和管理虚拟机镜像的命令行工具。它是QEMU(Quick EMUlator)项目的一部分,除了转换镜像格式以外,还支持创建镜像、调整虚拟机镜像大小等多种功能。更多信息,请参见QEMU官网

  • qemu-img工具本身并不直接支持OVA (Open Virtualization Appliance) 和OVF (Open Virtualization Format) 格式。因为qemu-img工具主要针对磁盘映像文件的创建、转换和管理,而OVA和OVF是虚拟化软件包封装格式,它们包括配置文件、描述文件以及磁盘映像。OVA和OVF格式由DMTF (Distributed Management Task Force) 维护。更多信息,请参见DMTF官网