VMWare-Mount无法识别虚拟磁盘

时间:2010-02-26 18:13:29

标签: c vmware virtualization virtual-machine mount

我有两个磁盘作为.vmdk个文件,四个磁盘作为.vdi个文件。我可以使用Sun xMV VirtualBox在它们上启动虚拟机,它们工作得很好。但是,我想将它们安装在我的本地计算机上,这样我就可以在不启动虚拟机的情况下从中读取一些文件。我下载了vmware-mount实用程序,但是我收到了这个错误:

Unable to mount the virtual disk. The disk may be in use by a virtual
machine, may not have enough volumes or mounted under another drive
letter. If not, verify that the file is a valid virtual disk file.

认为这是该实用程序的问题,我下载了SDK并在C中创建了我自己的简单程序以尝试安装磁盘。它只是初始化API,连接到它,然后尝试打开磁盘。我收到此错误,再次声称它不是虚拟磁盘:

**LOG: DISKLIB-DSCPTR: descriptor above max size: I64u
**LOG: DISKLIB-LINK  : "f:\programming\VMs\windowstrash.vdi" : failed to open (The file specified is not a virtual disk).
**LOG: DISKLIB-CHAIN : "f:\programming\VMs\windowstrash.vdi" : failed to open (The file specified is not a virtual disk).
**LOG: DISKLIB-LIB   : Failed to open 'f:\programming\VMs\windowstrash.vdi' with flags 0x1e (The file specified is not a virtual disk).
** FAILURE ** : The file specified is not a virtual disk

这些文件显然是虚拟磁盘,因为我实际上可以在虚拟机上安装和使用它们。我尝试从任何虚拟机中分离它们并再次尝试,但我得到了相同的结果。

有什么想法吗?也许“超过最大尺寸的描述符”是一个提示?

2 个答案:

答案 0 :(得分:1)

.vdi是VirtualBox支持的格式,但VMWare不支持。

.vmdk文件是VMWare图像 - 你应该可以使用vmware工具加载它们(VirtualBox也支持这些,但反之则不然)。

答案 1 :(得分:0)

但是,如果您尝试以某种方式安装VDI映像....

试试此博客

http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/

如果你想在几秒钟内完成这项工作,那么你应该注意这一点。

我只发布了这个,因为访问此页面的其他人会发现它更容易。

感谢。

如果在Future中删除此博客,在此处简要发布内容将会很有帮助。所以我会提取内容并在此发布。

成为超级用户

sudo su

加载nbd内核模块。 - 网络块设备模块

modprobe nbd

运行qemu-nbd,它是QEMU支持的磁盘映像的用户空间环回块设备服务器。基本上,它知道所有关于奇怪的磁盘映像格式,并通过nbd将它们呈现给内核,并最终呈现给系统的其余部分,就好像它们是普通磁盘一样。

qemu-nbd -c /dev/nbd0 <vdi-file>

该命令将整个映像公开为名为/ dev / nbd0的块设备,并将其中的分区作为子设备公开。例如,图像中的第一个分区将显示为/ dev / nbd0p1。

现在,您可以在块设备上运行cfdisk,但您很可能希望安装单个分区。

mount /dev/nbd0p1 /mnt

完成后,卸载文件系统并关闭qemu-nbd服务。

umount /mnt
qemu-nbd -d /dev/nbd0