Bagaimana cara memasang hard disk virtual?

23

Apakah mungkin untuk memasang hard disk virtual (VHD, HDD, VDI, VMDK) di Ubuntu? Bagaimana ini bisa dilakukan?

Macan Tutul Salju
sumber
1
Sudahkah Anda mencari di Google? Itu penuh dengan panduan tentang pemasangan VMDK, VDI, VHD, dan file gambar disk mentah di Ubuntu.
SirCharlo
2
Saya telah mencari di google, tetapi saya tidak menemukan hasil Anda. Terima kasih :)
Snow Leopard
Tautan Ubuntugeek untuk VHD di atas gagal.
K7AAY

Jawaban:

16

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!

beruang kutub di salju putih
sumber
6

Ini ada di Ubuntu 16.04 .

Sebagai root:

Instal dan pasang menggunakan affuse.

apt-get install afflib-tools

affuse /path/file.vmdk /mnt/vmdk

Periksa ukuran sektor

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

Lipat gandakan ukuran sektor dan mulai. Dalam contohnya adalah 2048 * 512

echo 2048*512 | bc
1048576

Pasang menggunakan offset itu

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

Disk sekarang harus dipasang dan dapat dibaca di / mnt / vmdisk

MetalGodwin
sumber
1
besar!!! melakukannya untuk saya di Ubuntu 17.10
cljk
Ini tidak berfungsi untuk saya pada 16.04.5 untuk .vmdk saya ... bekerja melalui langkah fdisk, dan partisi utama VM saya, yang ingin saya mount, juga mulai pada 2048, tetapi mount -o ro,loop,offset=1048576 ./foo.raw /mnt/foogagal dengan only root can use "--options" option. Dengan sudo, gagal dengan failed to setup loop device: Permission denied.
Theodore Murdock
3

Anda juga dapat menggunakan qemu:

Untuk .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

Untuk .vmdk

sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk

perhatikan bahwa saya menggunakan opsi -ritu karena VMDK versi 3 harus dibaca hanya untuk dapat dipasang oleh qemu

dan kemudian saya memasangnya

mount /dev/nbd1p1 /mnt

Saya menggunakan nbd1karena nbd0terkadang memberi 'mount: perangkat khusus / dev / nbd0p1 tidak ada'

Untuk .ova

tar -tf image.ova
tar -xvf image.ova

Di atas akan mengekstrak .vmdkcakram dan kemudian memasang itu.

Eduard Florinescu
sumber
2

Untuk vmdkdan vhdfile, saya hanya beruntung dengan kpartxperintah di bawah ini:

sudo kpartx -a -v <image-flat.vmdk>

Periksa output untuk losetup, itu harus berisi perangkat loop /dev/loop0; periksa juga sudo blkidpartisi /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>
Rosch
sumber
Hanya menguji metode ini dengan vhd, itu berhasil!
N0rbert