qemu-img:无法打开 $FILE

qemu-img:无法打开 $FILE

我从一家供应商处收到了一个单文件 VMDK,该供应商拥有一款针对我感兴趣的特定产品的虚拟设备。

我们运行 KVM 解决方案 (Proxmox),因此我尝试转换文件,但在该系统上 qemu-img 崩溃了。(我能够从 bitnami 转换 (多部分) VMDK 文件而没有错误。)

因此,我认为我只需在 RHEL 6.3 VM 上运行 yum install qemu-img 并在那里执行此操作即可。但是,尽管file我在运行 qemu-img 时可以正常打开文件,但我收到无法打开文件的错误:

[root@host dir]# file 1.vmdk 
1.vmdk: VMware4 disk image
[root@host dir]# qemu-img info 1.vmdk 
qemu-img: Could not open 'vmdk'

我在互联网上看到其他人发帖说他们遇到了这个问题,但似乎都没有解决办法。

有人有什么想法吗?我已经检查过 MD5SUM 了。

编辑1:

[root@host dir]# qemu-img info -f vmdk 1.vmdk 
qemu-img: Could not open '1.vmdk'

编辑2:

根据建议运行 strace。不确定要查找什么...

这是一个可能的:

ioctl(3, CDROM_DRIVE_STATUS, 0x7fffffff) = -1 ENOTTY (Inappropriate ioctl for device)

答案1

我收到一个文件时也遇到了类似的问题。有人告诉我该文件是 qcow 格式。以下是我首先尝试的方法:

% qemu-img convert -f qcow2 box.img -O vdi box.vdi                                                        
qemu-img: Could not open 'box.img': Invalid argument
qemu-img: Could not open 'box.img'
% qemu-img convert -f qcow box.img -O vdi box.vdi                                                         
qemu-img: Could not open 'box.img': Operation not permitted
qemu-img: Could not open 'box.img'

省略文件输入格式最终效果很好:

% qemu-img convert -O vdi box.img box.vdi

答案2

我知道这个帖子有点老了,但我遇到了类似的问题,想分享我的解决方案,以防它能帮助别人。我刚从合作伙伴那里收到一个 OVA 文件,但我们也在使用 KVM,所以我不能直接使用该文件。网上有人说 OVA 文件基本上是一个带有 vmdk 的 tar,但当我从 OVA 中提取 vmdk 文件并尝试转换它时,我收到以下错误:

[root@box ~]# qemu-img convert -f vmdk vm.vmdk -O raw vm.raw
qemu-img: Could not open 'vm.vmdk'
qemu-img: Could not open 'vm.vmdk'

为了解决这个问题,我将 OVA 导入 VM Player(免费),然后转换从那里提取的 vmdk 文件(在导入 VM Player 期间,它说 VM 没有通过合规性检查,所以我点击了“重试”,然后成功导入;这就是为什么我假设它在从 OVA vmdk 转换为原始文件时最初不起作用的原因)。因此,请尝试将您的 vmdk 文件导入 VM Player,看看这是否会将 vmdk 文件“转换”为 qemu-img 可以读取的格式。希望这能有所帮助!

答案3

将 vmdk 转换为 qcow2 qemu-img 时出现类似问题:无法打开“image.vmdk”:无法打开备份文件:未知协议

我使用 vmware 中的导出到 ova/ovf 生成了不同的 vmdk 输出,qemu-img 可以接受并顺利转换。

相关内容