Linux下挂载VMWare磁盘镜像

xpt*_*xpt 3 linux mount vmdk ubuntu disk-image

Linux下还可以挂载VMWare磁盘镜像吗?

我找到了以下两篇文章,它们都推荐使用kpartx -av diskimage-flat.vmdk. 然而这两篇文章都很旧了,当我在 Ubuntu Utopic 14.10 上尝试它时,它不再起作用了。

$ sudo kpartx -av MyWin81.vmdk

$ sudo ls /dev/mapper/loop* | wc -l 
ls: cannot access /dev/mapper/loop*: No such file or directory
0
Run Code Online (Sandbox Code Playgroud)

披露:我的 VMWare 磁盘映像是平面磁盘映像。此外(在推荐循环挂载之前),它是一个多分区磁盘映像,第一个分区是 Window8,接下来的两个分区是 Linux。我更感兴趣的是接下来的两个 Linux 分区。

有人可以确认一下吗?谢谢。

在 Linux 下挂载平面 VMWare 磁盘映像 http://cromoteca.com/en/blog/mountflatvmwarediskimagesunderlinux/

在 Linux 机器上挂载 VMware 虚拟磁盘 (.vmdk) 文件 http://www.commandlinefu.com/commands/view/12554/mo ​​unt-a-vmware-virtual-disk-.vmdk-file-on-a-linux -盒子

更新:

vmware-mount看起来很有希望,但我还无法让它发挥作用:

$ vmware-mount -p Win81.vmdk
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Nr      Start       Size Type Id Sytem                   
-- ---------- ---------- ---- -- ------------------------
 1       2048   78643200 BIOS  7 HPFS/NTFS
 2   78645248    6039552 BIOS 83 Linux
 3   84684800   41144320 BIOS 83 Linux

% vmware-mount Win81.vmdk 1 /mnt/tmp1/
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Failed to mount partition 1 of disk 'Win81.vmdk' on '/mnt/tmp1/': Insufficient permissions to perform this operation

% vmware-mount -L
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
No mounted disks.

$ vmware-mount | head -3
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
VMware DiskMount Utility version 6.0.0, build-2496824

Usage: vmware-mount diskPath [partition num] mountPoint
Run Code Online (Sandbox Code Playgroud)

注意,第二个和第三个命令直接运行root,但我得到“没有足够的权限来执行此操作”?

Edu*_*scu 5

您还可以使用 qemu:

为了.vdi

sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
Run Code Online (Sandbox Code Playgroud)

如果它们没有安装,你可以安装它们(在 Ubuntu 上是这个命令)

sudo apt install qemu-utils
Run Code Online (Sandbox Code Playgroud)

然后安装它

mount /dev/nbd1p1 /mnt
Run Code Online (Sandbox Code Playgroud)

为了.vmdk

sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
Run Code Online (Sandbox Code Playgroud)

请注意,我使用该选项-r是因为VMDK 版本 3 必须是只读的才能由 qemu 挂载

然后我安装它

mount /dev/nbd1p1 /mnt
Run Code Online (Sandbox Code Playgroud)

我使用是nbd1因为nbd0有时会给出“挂载:特殊设备/dev/nbd0p1不存在”

对于.ova

tar -tf image.ova
tar -xvf image.ova
Run Code Online (Sandbox Code Playgroud)

上面的命令将提取.vmdk磁盘,然后安装它。

我的配置:

Ubuntu: 16.04.3 LTS 
Kernel: 4.4.0-112-generic  
Package: qemu-utils version: 1:2.5+dfsg-5ubuntu10.22 
Vmdk: 3 but should be any
Run Code Online (Sandbox Code Playgroud)

  • 在 Arch Linux 上与 `qemu-nbd 2.12.0 ` 配合使用 - 我必须跳过对安装了 `ro` 的文件系统上的文件使用 `-r` (2认同)