Linux下掛載VMWare磁碟鏡像

Linux下掛載VMWare磁碟鏡像

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/mo​​unt-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

在我的機器中,循環設備位於/dev.本文提到了 /dev/wrapper 和 /dev,所以它可能對你有幫助。

另一方面,另一篇文章使用該vmware-mount命令來完成相同的任務。

注意:我的系統(大部分)是 Slackware64-current,但主要是基於 gtk 的軟體。

答案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 上掛載並可讀

相關內容