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
揭露:我的 VMWare 磁碟映像是平面磁碟映像。此外(在推薦循環掛載之前),它是一個多分割磁碟映像,第一個分割區是 Window8,接下來的兩個分割區是 Linux。我更感興趣的是接下來的兩個 Linux 分割區。
有人可以確認一下嗎?謝謝。
在 Linux 下掛載平面 VMWare 磁碟映像 http://cromoteca.com/en/blog/mountflatvmwarediskimagesunderlinux/
在 Linux 機器上掛載 VMware 虛擬磁碟 (.vmdk) 文件 http://www.commandlinefu.com/commands/view/12554/mount-a-vmware-virtual-disk-.vmdk-file-on-a-linux-box
更新:
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
注意,第二個和第三個命令直接運行root
,但我得到“權限不足,無法執行此操作「?
答案1
您也可以使用 qemu:
為了.vdi
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
如果它們沒有安裝,你可以安裝它們(在 Ubuntu 上是這個命令)
sudo apt install qemu-utils
然後安裝它
mount /dev/nbd1p1 /mnt
為了.vmdk
sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
請注意,我使用該選項-r
是因為VMDK 版本 3 必須是唯讀的能夠被qemu掛載
然後我安裝它
mount /dev/nbd1p1 /mnt
我使用是nbd1
因為nbd0
有時會給出“掛載:特殊設備/dev/nbd0p1不存在”
對於.ova
tar -tf image.ova
tar -xvf image.ova
上面的命令將提取.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
答案2
答案3
安裝 affuse,然後用它掛載檔案:
affuse /path/file.vmdk /mnt/vmdk
檢查扇區大小
fdisk -l /mnt/vmdk/file.vmdk.raw
# example
Disk file.vmdk.raw: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000da525
Device Boot Start End Sectors Size Id Type
/mnt/vmdk/file.vmdk.raw1 * 2048 41943039 41940992 20G 83 Linux
乘以扇區大小並啟動扇區。例如,它將是 2048*512
echo 2048*512 | bc
1048576
使用該偏移量安裝
mount -o ro,loop,offset=1048576 /mnt/vmdk/file.raw /mnt/vmdisk
磁碟現在應該已在 /mnt/vmdisk 上掛載並可讀