Ubuntuに仮想ハードディスク(VHD、HDD、VDI、VMDK)をマウントすることは可能ですか?これをどのように行うことができますか?
これによると 記事 :
Linuxおよびその他のUnixライクホストは、ループバックデバイスを使用して、raw形式タイプで作成されたイメージをマウントできます。ルートログインから(またはSudoを使用して)、32,256のオフセットでループバックをマウントします。
mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint
他のタイプのqemuイメージの場合、qemu-nbdを使用できます
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 image.qcow2
partprobe /dev/nbd0
mount /dev/nbd0p1 /mnt/image
さらに、通常、画像をある形式から別の形式に変換できます。
raw - (default) the raw format is a plain binary image of the disc
image, and is very portable.
On filesystems that support sparse files,
images in this format only use the
space actually used by the data recorded in them.
cloop - Compressed Loop format, mainly used for reading Knoppix
and similar live CD image formats
cow - copy-on-write format, supported for historical reasons only and
not available to QEMU on Windows
qcow - the old QEMU copy-on-write format, supported for
historical reasons and superseded by qcow2
qcow2 - QEMU copy-on-write format with a range of special features,
including the ability to take multiple snapshots, smaller
images on filesystems that don't support sparse files,
optional AES encryption, and optional zlib compression
vmdk - VMware 3 & 4, or 6 image format, for exchanging images
with that product
vdi - VirtualBox 1.1 compatible image format, for exchanging
images with VirtualBox.
グーグルを試してみて、私は(VirtualBox).VDIの解決策を1つに見つけました second :
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 /path/to/some.vdi
mount -o loop /dev/nbd0p1 /mnt
# do stuff
umount /mnt
qemu-nbd -d /dev/nbd0
rmmod nbd
「Qemuの方法」コマンドと同じです。国境はありません!
これはbuntu 16.04にあります。
apt-get install afflib-tools
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
echo 2048*512 | bc
1048576
mount -o ro,loop,offset=1048576 /mnt/vmdk/file.raw /mnt/vmdisk
vmdk
およびvhd
ファイルの場合、以下のkpartx
コマンドでのみ幸運になりました。
Sudo kpartx -a -v <image-flat.vmdk>
losetup
の出力を確認します。ループデバイス/dev/loop0
が含まれている必要があります。パーティションSudo blkid
の/dev/mapper/loop0p1
も確認してから、mountコマンドで使用します。
Sudo mount -o rw /dev/mapper/loop0p1 /mnt/vmdk
/ mnt/vmdkはマウントポイントで、存在しない場合はSudo mkdir /mnt/vmdk
で作成されます。
commandlinefu.comのソース(kpartxおよびmountコマンド)
マウント解除:
Sudo umount /mnt/vmdk
Sudo kpartx -d -v <image-flat.vmdk>
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
が時々「マウント:特別なデバイス/ dev/nbd0p1は存在しません」と表示するため、nbd0
を使用します
tar -tf image.ova
tar -xvf image.ova
上記は.vmdk
ディスクを抽出してからマウントします。