Apakah mungkin untuk memasang hard disk virtual (VHD, HDD, VDI, VMDK) di Ubuntu? Bagaimana ini bisa dilakukan?
Apakah mungkin untuk memasang hard disk virtual (VHD, HDD, VDI, VMDK) di Ubuntu? Bagaimana ini bisa dilakukan?
Jawaban:
Menurut artikel ini :
Linux dan host seperti Unix lainnya dapat memasang gambar yang dibuat dengan jenis format mentah menggunakan perangkat loopback. Dari login root (atau menggunakan sudo), pasang loopback dengan offset 32.256.
mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint
Untuk jenis gambar qemu lainnya, Anda dapat menggunakan qemu-nbd
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 image.qcow2
partprobe /dev/nbd0
mount /dev/nbd0p1 /mnt/image
Plus, biasanya, Anda dapat mengubah gambar dari satu format ke format lainnya.
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.
Coba ke google, saya menemukan solusi untuk (VirtualBox) .VDI dalam satu detik :
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
Sama dengan perintah "Qemu's way". Tanpa batas!
Ini ada di Ubuntu 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
mount -o ro,loop,offset=1048576 ./foo.raw /mnt/foo
gagal dengan only root can use "--options" option
. Dengan sudo
, gagal dengan failed to setup loop device: Permission denied
.
Anda juga dapat menggunakan qemu:
.vdi
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
jika tidak installe, Anda dapat menginstalnya (di Ubuntu adalah perintah ini)
sudo apt install qemu-utils
dan kemudian pasang itu
mount /dev/nbd1p1 /mnt
.vmdk
sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
perhatikan bahwa saya menggunakan opsi -r
itu karena VMDK versi 3 harus dibaca hanya untuk dapat dipasang oleh qemu
dan kemudian saya memasangnya
mount /dev/nbd1p1 /mnt
Saya menggunakan nbd1
karena nbd0
terkadang memberi 'mount: perangkat khusus / dev / nbd0p1 tidak ada'
tar -tf image.ova
tar -xvf image.ova
Di atas akan mengekstrak .vmdk
cakram dan kemudian memasang itu.
Untuk vmdk
dan vhd
file, saya hanya beruntung dengan kpartx
perintah di bawah ini:
sudo kpartx -a -v <image-flat.vmdk>
Periksa output untuk losetup
, itu harus berisi perangkat loop /dev/loop0
; periksa juga sudo blkid
partisi /dev/mapper/loop0p1
, lalu gunakan dalam perintah mount:
sudo mount -o rw /dev/mapper/loop0p1 /mnt/vmdk
Di mana / mnt / vmdk adalah titik mount Anda, harus dibuat dengan sudo mkdir /mnt/vmdk
jika tidak ada.
source di commandlinefu.com (perintah kpartx and mount)
Lepas dengan:
sudo umount /mnt/vmdk
sudo kpartx -d -v <image-flat.vmdk>
vhd
, itu berhasil!