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
,但我得到“没有足够的权限来执行此操作”?
您还可以使用 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不存在”
tar -tf image.ova
tar -xvf image.ova
Run Code Online (Sandbox Code Playgroud)
上面的命令将提取.vmdk
磁盘,然后安装它。
我的配置:
Run Code Online (Sandbox Code Playgroud)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