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 ディスク イメージはフラット ディスク イメージです。さらに (ループ マウントを推奨する前に)、これはマルチパーティション ディスク イメージであり、最初のパーティションは Windows8、次の 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
が、 "この操作を実行するための権限が不十分です「?」
答え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
時々「マウント: 特殊デバイス /dev/nbd0p1 が存在しません」nbd1
と表示されるので使用します。nbd0
.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にマウントされ、読み取り可能になっているはずです。