网硕互联技术交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3604|回复: 0

通过qemu-img工具转换镜像格式(vhd、vmdk、qcow2、raw、vhdx、qcow等)

[复制链接]

4

主题

4

帖子

42

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
42
发表于 2021-8-25 10:09:52 | 显示全部楼层 |阅读模式
  通过qemu-img工具转换镜像格式

  操作场景

  支持导入vhd、vmdk、qcow2、raw、vhdx、qcow、vdi、qed、zvhd或zvhd2格式镜像文件。其他镜像文件,需要转换格式后再导入。本节操作指导您使用开源qemu-img工具转换镜像格式。

  背景信息

  qemu-img镜像格式转换工具支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed社区格式的镜像的相互转换。


  vhd格式镜像在执行命令转换格式时请使用vpc代替,否则可能造成qemu-img工具无法识别镜像格式。


  本地为Windows操作系统

  安装qemu-img。

  下载qemu-img安装包至本地:https://qemu.weilnetz.de/w64/

  双击setup文件安装qemu-img,以下操作以安装路径为“D:\Program Files\qemu”为例。

  配置环境变量。

  选择“开始 > 计算机”,右键单击“属性”。

  单击“高级系统设置”。

  在“系统属性”对话框里,单击“高级 > 环境变量"。

  在环境变量对话框里,在系统变量部分找到Path,并单击“编辑”。在“变量值”里,添加“D:\Program Files\qemu”,不同的变量值之间以“;”分隔。
  如果没有Path变量请新建,并补充Path的变量值为“D:\Program Files\qemu”。

  单击“确定”,保存修改。

  验证安装成功。

  单击“开始 > 运行”,输入“cmd”后按回车键,在“cmd”窗口输入qemu-img --help,如回显信息中出现qemu-img工具的版本信息,即表示安装成功。

  转换镜像格式。在“cmd”窗口输入如下命令切换文件目录,以安装目录为“D:\Program Files\qemu”为例。

  d:

  cd D:\Program Files\qemu

  执行如下命令转换镜像文件格式,以转换vmdk格式为qcow2格式的镜像为例:


      将CentOS 6.9镜像的vmdk格式转换为qcow2格式,如下命令:

  1. qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2
复制代码

      将CentOS 6.9镜像的vhd格式转换为qcow2格式,如下命令:

  1. qemu-img convert -p -f vpc -O qcow2 centos6.9.vhd centos6.9.qcow2
复制代码

      将CentOS 6.9镜像的vhdx格式转换为qcow2格式,如下命令:

  1. qemu-img convert -p -f vhdx -O qcow2 centos6.9.vhdx centos6.9.qcow2
复制代码

  上述命令中各参数对应的说明如下:

  -p:表示镜像转换的进度。

  -f后面为源镜像格式。

  -O(必须是大写)后面的参数由如下3个部分组成:转换出来的镜像格式 + 源镜像文件名称 + 目标文件名称。

  转换完成后,目标文件会出现在源镜像文件所在的目录下。


  回显信息如下所示:

  # qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2

  (100.00/100%)

  执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

  qemu-img info centos6.9.qcow2

  回显信息如下所示:

  # qemu-img info centos6.9.qcow2

  image: centos6.9.qcow2

  file format: qcow2

  virtual size: 1.0G (1073741824 bytes)

  disk size: 200K

  cluster_size: 65536

  Format specific information

  compat: 1.1

  lazy refcounts: false

  本地为Linux操作系统

  安装qemu-img。

  Ubuntu、Debian系列操作系统,请执行如下命令:

  apt install qemu-img

  CentOS、Red Hat、Oracle系列操作系统,请执行如下命令:

  yum install qemu-img

  SUSE、openSUSE系列操作系统,请执行如下命令:

  zypper install qemu-img

  执行如下命令,验证安装成功。

  qemu-img -v

  如回显信息中出现qemu-img工具的版本信息和帮助手册,即表示安装成功。以CentOS 7为例,回显信息如下所示:

  [root@CentOS7 ~]# qemu-img -v

  qemu-img version 1.5.3, Copyright (c) 2004-2008 Fabrice Bellard

  usage: qemu-img command [command options]

  QEMU disk image utility

  Command syntax

  check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename

  create [-q] [-f fmt] [-o options] filename

  commit [-q] [-f fmt] [-t cache] filename

  compare [-f fmt] [-F fmt] [-T src_cach]

  转换镜像格式,以CentOS 7操作系统中转换vmdk格式为qcow2格式的镜像为例。

  执行如下命令转换镜像文件格式。

  qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2

  上述命令中各参数对应的说明如下:

  -p标识转换的进度条。

  -f后面为源镜像格式。

  -O(必须是大写)后面的参数为转换出来的镜像格式 + 源镜像文件名称 + 目标文件名称。

  转换完成后,目标文件会出现在源镜像文件所在的目录下。

  回显信息如下所示:

  [root@CentOS7 home]# qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2

  (100.00/100%)

  执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

  qemu-img info centos6.9.qcow2

  回显信息如下所示:

  [root@CentOS7 home]# qemu-img info centos6.9.qcow2

  image: centos6.9.qcow2

  file format: qcow2

  virtual size: 1.0G (1073741824 bytes)

  disk size: 200K

  cluster_size: 65536

  Format specific information

  compat: 1.1

  lazy refcounts: false

  典型应用举例

  用户从VMware平台导出一个pre-allocated格式的镜像文件(pre-allocated格式是VMDK monolithic Flat子格式类型),pre-allocated格式镜像依赖2个文件“xxxx.vmdk”和“xxxx-flat.vmdk”(“xxxx.vmdk”是一个配置文件,“xxxx-flat.vmdk”是实际数据文件),这两种格式的镜像文件不能直接导入到云平台,需提前转换成通用的vmdk或qcow2格式才能导入。

  以下以镜像文件格式为centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk为例,通过qemu-img工具转换镜像格式。

  执行如下命令,查询镜像文件的详细信息。

  ls -lh centos6.9-64bit*

  qemu-img info centos6.9-64bit.vmdk

  qemu-img info centos6.9-64bit-flat.vmdk

  回显信息如下所示:

  [root@CentOS7 tmp]# ls -lh centos6.9-64bit*

  -rw-r--r--. 1 root root 10G Jun 13 05:30 centos6.9-64bit-flat.vmdk

  -rw-r--r--. 1 root root 327 Jun 13 05:30 centos6.9-64bit.vmdk

  [root@CentOS7 tmp]# qemu-img info centos6.9-64bit.vmdk

  image: centos6.9-64bit.vmdk

  file format: vmdk

  virtual size: 10G (10737418240 bytes)

  disk size: 4.0K

  Format specific information

  cid: 3302005459

  parent cid: 4294967295

  create type: monolithicFlat

  extents

  [0]

  virtual size: 10737418240

  filename: centos6.9-64bit-flat.vmdk

  format: FLAT

  [root@CentOS7 tmp]# qemu-img info centos6.9-64bit-flat.vmdk

  image: centos6.9-64bit-flat.vmdk

  file format: raw

  virtual size: 10G (10737418240 bytes)

  disk size: 0

  从回显信息中看出,centos6.9-64bit.vmdk文件的格式为vmdk,centos6.9-64bit-flat.vmdk文件的格式为raw,在执行镜像格式转换命令时,源镜像文件必须使用centos6.9-64bit.vmdk(详见步骤3)。

  执行如下命令,查看pre-allocated格式的镜像文件的相关配置信息。

  cat centos6.9-64bit.vmdk

  回显信息如下所示:

  [root@CentOS7 tmp]# cat centos6.9-64bit.vmdk

  # Disk DescriptorFile

  version=1

  CID=c4d09ad3

  parentCID=ffffffff

  createType="monolithicFlat"

  # Extent description

  RW 20971520 FLAT "centos6.9-64bit-flat.vmdk" 0

  # The Disk Data Base

  #DDB

  ddb.virtualHWVersion = "4"

  ddb.geometry.cylinders = "20805"

  ddb.geometry.heads = "16"

  ddb.geometry.sectors = "63"

  ddb.adapterType = "ide"

  将centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk放在同一个目录下,执行如下命令,通过qemu-img工具转换镜像格式为qcow2。

  [root@CentOS7 tmp]# qemu-img convert -p -f vmdk -O qcow2 centos6.9-64bit.vmdk centos6.9-64bit.qcow2

  (100.00/100%)

  执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

  qemu-img info centos6.9-64bit.qcow2

  回显信息如下所示:

  [root@CentOS7 tmp]# qemu-img info centos6.9-64bit.qcow2

  image: centos6.9-64bit.qcow2

  file format: qcow2

  virtual size: 10G (10737418240 bytes)

  disk size: 200K

  cluster_size: 65536

  Format specific information

  compat: 1.1

  lazy refcounts: false


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网硕互联技术交流社区

GMT+8, 2024-4-20 00:18 , Processed in 0.223936 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表