我有一个作为多个文件存在的 VMDK 磁盘映像:
2.0G guest-s001.vmdk 1.8G guest-s003.vmdk 128K guest-s005.vmdk
2.0G guest-s002.vmdk 1.7G guest-s004.vmdk 4.0K guest.vmdk
Run Code Online (Sandbox Code Playgroud)
当运行qemu-img将其转换为 qcow2 格式时,我应该指定哪个输入文件名?只是guest.vmdk,所有这些,或者类似的东西guest-*.vmdk?
Kee*_*ook 12
过去,我必须先将它们转换为原始图像,将它们连接在一起,然后将生成的原始图像转换为 qcow2:
qemu-img convert guest-s001.vmdk guest-s0001.raw
qemu-img convert guest-s002.vmdk guest-s0002.raw
qemu-img convert guest-s003.vmdk guest-s0003.raw
qemu-img convert guest-s004.vmdk guest-s0004.raw
qemu-img convert guest-s005.vmdk guest-s0005.raw
cat guest-s0001.raw guest-s0002.raw guest-s0003.raw guest-s0004.raw guest-s0005.raw > guest.raw
qemu-img convert guest.raw guest.qcow2
Run Code Online (Sandbox Code Playgroud)
如果不仅仅是最后一个文件小于 2146762752 字节,请不要惊慌。某些 VMware 产品会创建不同大小的 vmdk 跨度。该大小应与主 vmdk 文件中的区描述中列出的扇区数相匹配(可使用任何文本编辑器或“cat”读取)的 512 倍。
也可以一次完成这一切,但我还没有尝试过:
qemu-img convert guest-s001.vmdk guest-s002.vmdk guest-s003.vmdk guest-s004.vmdk guest-s005.vmdk guest.qcow2
Run Code Online (Sandbox Code Playgroud)
或者,如果它们实际上不是连续的磁盘映像,那么我不确定该建议什么。:)
祝你好运!
一次转换所有图像的快速终端脚本是:
for i in *.vmdk; do qemu-img convert -f vmdk $i -O raw $i.raw; done
cat *.raw > tmpImage.raw
qemu-img convert tmpImage.raw finalImage.qcow2
rm *.raw
Run Code Online (Sandbox Code Playgroud)
Stu*_*art 10
看起来 qemu-img 命令现在已经得到了增强。我刚刚使用以下命令将一堆 VMware 多部分映像转换为 qcow2:
$ qemu-img convert <base of the image without the S0001,2etc>.vmdk new-image.qcow2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36785 次 |
| 最近记录: |