ESXi image(raw) 映像档转换成VMDK

ESXi image(raw) 映像档转换成VMDK

虚拟化的过程中可能会遇到手上取得执行像档并非ESXi使用的档案格式VMDK(Virtual Machine Disk),像丹尼要在ESXi上安装DD-WRT时,遇到官网提供的只有image映像档,此篇要使用qemu提供的工具qemu-img进行转换。

安装qemu

qemu能执行于许多平台,像Windows、MacOSX、Linux,官网都有提供下载方式及安装,以Linux的Arch分支及Windows安装为例子。

Windows

Windows的安装程式官网建议从Stefan Weil提供的安装包进行下载及安装,它分为32bit64bit, 查看你的Windows执行版本选择下载,丹尼使用64bit为例子下载并安装。

依照你目前的时间选择最新的年份,进入此年份目录后并找寻离你时间最近版本进行下载

下载完成后再执行安装程式安装qemu。

Next进行下一步

I Agree我同意版权宣告

Next使用已勾选的预设值,

安装路径选择,不选择按下Install进行安装,如果有要安装至其他路径选择Browser开启目录的选择,

安装完成,按下Finish离开安装画面。

Bash on Windows

Windows 10之后还有选一种选择,开启Bash应用,依照Ubuntu安装套件的方式安装qemu

apt install qemu

安装过程参考

~# apt install qemu
正在读取套件清单... 完成
正在重建相依关系
正在读取状态资料... 完成
下列的额外套件将被安装:
  binfmt-support cpu-checker ipxe-qemu libaio1 libasound2 libasound2-data libasyncns0 libbluetooth3
  libboost-iostreams1.58.0 libboost-random1.58.0 libboost-system1.58.0 libboost-thread1.58.0 libbrlapi0.6 libcaca0
  libcacard0 libfdt1 libflac8 libiscsi2 libjpeg-turbo8 libjpeg8 libnspr4 libnss3 libnss3-nssdb libogg0 libopus0
  libpixman-1-0 libpulse0 librados2 librbd1 libsdl1.2debian libsndfile1 libspice-server1 libusbredirparser1
  libvorbis0a libvorbisenc2 libxen-4.6 libxenstore3.0 libyajl2 msr-tools qemu-block-extra qemu-slof qemu-system
  qemu-system-arm qemu-system-common qemu-system-mips qemu-system-misc qemu-system-ppc qemu-system-sparc
  qemu-system-x86 qemu-user qemu-user-binfmt qemu-utils seabios sharutils
建议套件:
  libasound2-plugins alsa-utils opus-tools pulseaudio qemu-user-static samba vde2 openbios-ppc openhackware sgabios
  ovmf debootstrap bsd-mailx | mailx
下列【新】套件将会被安装:
  binfmt-support cpu-checker ipxe-qemu libaio1 libasound2 libasound2-data libasyncns0 libbluetooth3
  libboost-iostreams1.58.0 libboost-random1.58.0 libboost-system1.58.0 libboost-thread1.58.0 libbrlapi0.6 libcaca0
  libcacard0 libfdt1 libflac8 libiscsi2 libjpeg-turbo8 libjpeg8 libnspr4 libnss3 libnss3-nssdb libogg0 libopus0
  libpixman-1-0 libpulse0 librados2 librbd1 libsdl1.2debian libsndfile1 libspice-server1 libusbredirparser1
  libvorbis0a libvorbisenc2 libxen-4.6 libxenstore3.0 libyajl2 msr-tools qemu qemu-block-extra qemu-slof qemu-system
  qemu-system-arm qemu-system-common qemu-system-mips qemu-system-misc qemu-system-ppc qemu-system-sparc
  qemu-system-x86 qemu-user qemu-user-binfmt qemu-utils seabios sharutils
升级 0 个,新安装 55 个,移除 0 个,有 108 个未被升级。
需要下载 43.3 MB 的套件档。
此操作完成之后,会多占用 261 MB 的磁碟空间。
是否继续进行 [Y/n]? [Y/n] y
下载:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libasyncns0 amd64 0.8-5build1 [12.3 kB]
下载:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libiscsi2 amd64 1.12.0-2 [51.5 kB]
下载:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 libjpeg-turbo8 amd64 1.4.2-0ubuntu3 [111 kB]
下载:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 libogg0 amd64 1.3.2-1 [17.2 kB]
下载:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-iostreams1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [29.0 kB]
下载:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-system1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [9,146 B]
下载:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-random1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [11.7 kB]
下载:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-thread1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [47.0 kB]
下载:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnspr4 amd64 2:4.13.1-0ubuntu0.16.04.1 [112 kB]
下载:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnss3-nssdb all 2:3.28.4-0ubuntu0.16.04.2 [10.6 kB]
下载:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnss3 amd64 2:3.28.4-0ubuntu0.16.04.2 [1,147 kB]
下载:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librados2 amd64 10.2.7-0ubuntu0.16.04.1 [1,642 kB]
下载:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librbd1 amd64 10.2.7-0ubuntu0.16.04.1 [2,180 kB]
下载:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 qemu-block-extra amd64 1:2.5+dfsg-5ubuntu10.14 [33.6 kB]
下载:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 qemu-system-common amd64 1:2.5+dfsg-5ubuntu10.14 [281 kB]
下载:16 http://archive.ubuntu.com/ubuntu xenial/main amd64 libyajl2 amd64 2.1.0-2 [19.6 kB]
下载:17 http://archive.ubuntu.com/ubuntu xenial/main amd64 binfmt-support amd64 2.1.6-1 [50.7 kB]
下载:18 http://archive.ubuntu.com/ubuntu xenial/main amd64 msr-tools amd64 1.3-2 [10.6 kB]
下载:19 http://archive.ubuntu.com/ubuntu xenial/main amd64 cpu-checker amd64 0.7-0ubuntu7 [6,862 B]
下载:20 http://archive.ubuntu.com/ubuntu xenial/main amd64 ipxe-qemu all 1.0.0+git-20150424.a25a16d-1ubuntu1 [718 kB]
下载:21 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6,356 B]
下载:22 http://archive.ubuntu.com/ubuntu xenial/main amd64 libasound2-data all 1.1.0-0ubuntu1 [29.4 kB]
下载:23 http://archive.ubuntu.com/ubuntu xenial/main amd64 libasound2 amd64 1.1.0-0ubuntu1 [350 kB]
下载:24 http://archive.ubuntu.com/ubuntu xenial/main amd64 libbluetooth3 amd64 5.37-0ubuntu5 [61.3 kB]
下载:25 http://archive.ubuntu.com/ubuntu xenial/main amd64 libcaca0 amd64 0.99.beta19-2build2~gcc5.2 [202 kB]
下载:26 http://archive.ubuntu.com/ubuntu xenial/main amd64 libcacard0 amd64 1:2.5.0-2 [19.7 kB]
下载:27 http://archive.ubuntu.com/ubuntu xenial/main amd64 libflac8 amd64 1.3.1-4 [210 kB]
下载:28 http://archive.ubuntu.com/ubuntu xenial/main amd64 libjpeg8 amd64 8c-2ubuntu8 [2,194 B]
下载:29 http://archive.ubuntu.com/ubuntu xenial/main amd64 libopus0 amd64 1.1.2-1ubuntu1 [159 kB]
下载:30 http://archive.ubuntu.com/ubuntu xenial/main amd64 libpixman-1-0 amd64 0.33.6-1 [231 kB]
下载:31 http://archive.ubuntu.com/ubuntu xenial/main amd64 libvorbis0a amd64 1.3.5-3 [86.8 kB]
下载:32 http://archive.ubuntu.com/ubuntu xenial/main amd64 libvorbisenc2 amd64 1.3.5-3 [70.7 kB]
下载:33 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsndfile1 amd64 1.0.25-10ubuntu0.16.04.1 [138 kB]
下载:34 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpulse0 amd64 1:8.0-0ubuntu3.3 [249 kB]
下载:35 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsdl1.2debian amd64 1.2.15+dfsg1-3 [168 kB]
下载:36 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libspice-server1 amd64 0.12.6-4ubuntu0.3 [338 kB]
下载:37 http://archive.ubuntu.com/ubuntu xenial/main amd64 libusbredirparser1 amd64 0.7.1-1 [13.6 kB]
~# 

这方式除了免自行下载且方便快速的可以安装完qemu,此篇使用qemu-img工具,并未验证实际qemu在Bash on Winodws上的可用性。

Arch

Arch已经提供好安装套件,执行安装指令进行安装

pacman -S extra/qemu

安装完成后执行qemu-img应该能看到执行结果

$ qemu-img
qemu-img: Not enough arguments
Try 'qemu-img --help' for more information

转换映像档

qemu-img提供虚拟机器映像档互转的功能,功能相当完整,转换的命令如下

qemu-img -f 来源映像档案格式 -O 输出映像档案格式 来源映像档名称 输出映像档名称

档案格式支援

映像档格式 qemu-img 格式名称
VMDK (VMware) vmdk
VHD (Hyper-V) vhd
VHDX (Hyper-V) vhdx
VDI (VirtualBox) vdi
raw raw
image raw
QED (KVM) qed
QCOW (KVM, Xen) qcow
QCOW2 (KVM, Xen) qcow2

范例

丹尼下载一份DD-WRT for X86的映像档档名为dd-wrt_x64_full_vga.image要转换成ESXi能读取的vmdk,转换后档名为dd-wrt_x64_full_vga.vmdk

$ qemu-img -f raw -O vmdk dd-wrt_x64_full_vga.image dd-wrt_x64_full_vga.vmdk

转换过程中不会有进度条或是任何的讯息,转换完成会跳回命令提示字元,如果你的档案非常的大,请耐心等候它完成。如果想要有进度条必需要再加上-p变成有进度条显示

$ qemu-img -f raw -O vmdk -p dd-wrt_x64_full_vga.image dd-wrt_x64_full_vga.vmdk

转换过程的进度指示会显示在下方

$ qemu-img -f raw -O vmdk -p dd-wrt_x64_full_vga.image dd-wrt_x64_full_vga.vmdk
    (100.00/100%)
$

参考资料

更新日志

日期 内容
2017/08/08 初版

关键字

qemu 转换 convert

qemu-image convert 转换

image to vmdk

qcow to vmdk

vmdk to qcow

ESXi 映像档转换 vmdk