VMWare-Mount 无法识别虚拟磁盘

问题描述 投票:0回答:2

我有两个磁盘作为

.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

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

有什么想法吗?也许“描述符高于最大大小”是一个提示?

virtual-machine vmware virtualization mount
2个回答
1
投票

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

.vmdk
文件是 VMWare 映像 - 您应该能够使用 vmware 工具很好地加载它们(VirtualBox 也支持这些,但反之则不然)。


0
投票

如果您尝试仅挂载 VDI 映像,请尝试按照 http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ 中所述的步骤进行操作:

  • 成为超级用户,使用

    sudo su

  • 使用

    modprobe nbd

    加载 nbd 内核模块(网络块设备模块)
  • 使用
  • qemu-nbd

    运行

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

  • 该命令会将整个映像公开为名为
/dev/nbd0

的块设备,并将其中的分区公开为子设备。例如,图像中的第一个分区将显示为

/dev/nbd0p1
例如,现在您可以在块设备上运行 

cfdisk

,但您很可能希望挂载单个分区:

mount /dev/nbd0p1 /mnt

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

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

© www.soinside.com 2019 - 2024. All rights reserved.