Vmdk拡張子を持つ単一のvmwareディスクイメージファイルがあります
これをマウントして、すべてのパーティション(非表示のパーティションを含む)を探索しようとしています。
http://forums.opensuse.org/showthread.php/469942-mounting-virtual-box-machine-images-Host など、いくつかのガイドに従うことを試みました。
Vdfuseを使用してイメージをマウントできます
vdfuse -w -f windows.vmdk /mnt/
この後、1つのパーティションとディスク全体が表示されます
# ll /mnt/
total 41942016
-r-------- 1 te users 21474836480 Feb 28 14:16 EntireDisk
-r-------- 1 te users 1569718272 Feb 28 14:16 Partition1
引き続きガイドを使用して、EntireDiskまたはPartition1をマウントしようとします
mount -o loop,ro /mnt/Partition1 mnt2/
しかし、それは私にエラーを与えます 'マウント:ファイルシステムタイプを指定する必要があります'
正しいタイプを見つけようとして、私は試しました
dd if=/mnt/EntireDisk | file -
which outputs a ton of information but of note is:
/dev/stdin: x86 boot sector; partition 1: ....... FATs ....
だから私はvfatとしてマウントするのに疲れたが、それは私に与えた
mount: wrong fs type, bad option, bad superblock ...etc
何が間違っていますか?
新しいLinuxシステムには、コマンド「guestmount」があります。これをインストールした後、次のコマンドを実行してVMDKイメージ内の3番目のパーティションをマウントできます。
guestmount -a xyz.vmdk -m /dev/sda3 --ro /mnt/vmdk
または、イメージを自動検出してマウントする(信頼性が低い)には、次を試してください:
guestmount -a xyz.vmdk -i --ro /mnt/vmdk
フラグ--ro
は単にイメージを読み取り専用としてマウントすることに注意してください。イメージを読み書き可能としてマウントするには、フラグを--rw
に置き換えます。
guestmountは、ディストリビューションごとに次のパッケージに含まれています。
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
を使用します: 'mount:special device/dev/nbd0p1 does not exist'
.ova
ディスクの場合tar -tf image.ova
tar -xvf image.ova
上記は.vmdk
ディスクを抽出してからマウントします。
Affuseをインストールし、それを使用してマウントします。
affuse /path/file.vmdk /mnt/vmdk
Rawディスクイメージは/ 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にマウントされ、読み取り可能になります。
私は commandlinefu.com とてもいいから見つけて答えました:
kpartx -av <image-flat.vmdk>; mount -o /dev/mapper/loop0p1 /mnt/vmdk
次を実行して、イメージ内のLVMボリュームをアクティブ化することもできます。
vgchange -a y
そして、LVをイメージ内にマウントできます。
イメージをアンマウントするには、パーティション/ LVをアンマウントし、イメージのVGを非アクティブ化します
vgchange -a n <volume_group>
その後、実行します
kpartx -dv <image-flad.vmdk>
パーティションマッピングを削除します。
@Thomasの投稿にコメントすることはできません(38回の回答).
ERROR: qemu-img: '' uses a vmdk feature which is not supported by this qemu version: VMDK version
Vmdkmountを使用して.vmdkの未加工バージョンを生成してみてください
# vmdkmount {file}.vmdk /ur/mount/path
マウントされたディレクトリ内にvmdk1ファイル(rawファイル)があります
ここで、guestmountを使用してvmdkをロードしてみてください
# guestmount -a vmdk1 -i --ro /ur/mount/path
Ntfsのソフトウェアパッケージはありますか?
試してみる
apt-get install ntfs-3g
debianベースのシステムで。