繁体   English   中英

将 qcow2 转换为 vmdk 并使其兼容 ESXi 6.0

[英]Convert qcow2 to vmdk and make it ESXi 6.0 Compatible

我目前正在研究 VMWare 虚拟化; 我正在尝试使用 ESXi Server 6.0 制作从 qcow2 到 vmdk 的转换图像。

我的 myImage.qcow2 带有一个为 300GB 进行精简配置的磁盘。

我使用图像转换器工具 qemu 和以下命令

qemu-img convert -f qcow2 myImage.qcow2 -O vmdk myNewImage.vmdk 

此命令为我提供了一个仅与 VMWare Workstation 兼容的 vmdk 映像。 因此,为了使其与 ESXi 兼容,我必须通过以下命令使用 vmkfstools。

vmkfstools -i myImage.vmdk outputName.vmdk -d thin

vmkfstools 命令给了我两个文件,一个 metadata.vmdk 和实际的 data.vmdk。

如上所述,我的磁盘已精简配置为 300GB,当我应用 vmkfstools 时,它会扩展磁盘并提供 300GB 的大小。

通过 vSphere Client 部署映像没有任何问题; 然而,为了这个项目的目的,我想使用 ovftool 并且使用如此大的图像这样做是不可行的。

有没有办法让我的 .vmdk ESXi 兼容而无需 vmkfstools 将我的图像扩展到 300GB?

或者有没有其他方法可以让我在磁盘映像位于数据存储上时使用 ovftool 部署那些 300GB,这样就不必通过部署过程下载/上传它?

我已经坚持了几个星期,任何帮助将不胜感激。

仅供参考:根据变更日志,此支持已在 Qemu 2.1 及更高版本中添加

qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 SC-1.qcow2 SC-1.vmdk

这对我适用于 VMware 6.7

TL; DR 是

qemu-img convert -f qcow2 -O vmdk -o subformat=streamOptimized source_qcow_image_path destination_path_to_vmdk

例如:

qemu-img convert -f qcow2 -O vmdk -o subformat=streamOptimized \
 CentOS-7-x86_64-GenericCloud-1503.qcow2 \
 CentOS-7-x86_64-GenericCloud-1503.vmdk

使用以下脚本更新嵌入在转换图像中的 vmdk 版本设置:

* 这才是真正对我有用的 *

printf '\x03' | dd conv=notrunc of=<vmdk file name> bs=1 seek=$((0x4))

例如:

printf '\x03' | dd conv=notrunc of=CentOS-7-x86_64-GenericCloud-1503.vmdk bs=1 seek=$((0x4))

来源: https : //kb.vmware.com/s/article/2144687

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM