web-dev-qa-db-ja.com

LinuxでのVMWareディスクイメージのマウント

LinuxでVMWareディスクイメージをマウントすることはまだ可能ですか?

次の2つの記事が見つかりました。どちらも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ディスクイメージISフラットディスクイメージ。さらに(ループマウントを推奨する前に)、これはマルチパーティションディスクイメージであり、最初のパーティションはWindow8で、次の2つはLinuxです。私がもっと興味を持っているのは、次の2つの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

注意、2番目と3番目のコマンドはrootとして直接実行されますが、「この操作を実行するには権限が不十分です」というメッセージが表示されますか?

3
xpt

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
3

私のマシンでは、ループデバイスは/devにあります。 この記事 /dev/wrapperと/ devについて言及しているので、役立つかもしれません。

一方、 この他の記事vmware-mountコマンドを使用して同じことを実行します。

注:私のシステムはSlackware64-current(ほとんど)ですが、主にgtkベースのソフトウェアを使用しています。

2
jcoppens

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

セクターサイズとstartsectorを乗算します。たとえば、2048 * 512になります。

echo 2048*512 | bc
1048576

そのオフセットを使用してマウントします

mount -o ro,loop,offset=1048576 /mnt/vmdk/file.raw /mnt/vmdisk

これで、ディスクがマウントされ、/ mnt/vmdiskで読み取り可能になります。

2
MetalGodwin