Sanal bir sabit disk nasıl takılır?


23

Ubuntu'ya sanal bir sabit disk (VHD, HDD, VDI, VMDK) monte etmek mümkün mü? Bu nasıl yapılabilir?


1
Google'ı aradınız mı? Ubuntu'da VMDK, VDI, VHD ve ham disk görüntü dosyalarının montajı üzerine kılavuzlarla doludur .
SirCharlo

2
Google'ı aradım, ancak sonucunuzu beğenmedim. Thanks :)
Snow Leopard

Yukarıdaki VHD için Ubuntugeek bağlantısı başarısız oldu.
K7AAY

Yanıtlar:


16

Bu makaleye göre :

Linux ve diğer Unix benzeri ana bilgisayarlar, geridöngü aygıtı kullanarak ham format türünde oluşturulan görüntüleri bağlayabilir. Bir kök girişinden (veya sudo kullanarak), 32.256 ofset ile bir geri döngü ekleyin.

mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint

Diğer qemu görüntüleri için, qemu-nbd kullanabilirsiniz.

modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 image.qcow2
partprobe /dev/nbd0
mount /dev/nbd0p1 /mnt/image

Artı, genellikle görüntüyü bir formattan diğerine dönüştürebilirsiniz.

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.

Google’ı deneyin, bir saniyede (VirtualBox) .VDI için bir çözüm buldum :

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'nun yolu" komutları ile aynı. Sınır yok!


6

Bu, 16.04 Ubuntu'da .

Kök olarak:

Affuse kullanarak kurun ve monte edin.

apt-get install afflib-tools

affuse /path/file.vmdk /mnt/vmdk

Sektör boyutunu kontrol et

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

Sektör boyutunu ve başlatıcıyı çarpın. Örneğin, 2048 * 512 olur

echo 2048*512 | bc
1048576

Bu dengeyi kullanarak bağla

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

Disk şimdi monte edilmeli ve / mnt / vmdisk üzerine okunabilir olmalıdır


1
harika!!! benim için Ubuntu
17.10'da yaptı

Bu benim için 16.04.5'te .vmdk'im için çalışmıyor ... fdisk adımında çalışıyor ve monte etmek istediğim VMimin ana bölümü de 2048'de başlıyor, ancak mount -o ro,loop,offset=1048576 ./foo.raw /mnt/foobaşarısız oluyor only root can use "--options" option. İle sudo, başarısız olur failed to setup loop device: Permission denied.
Theodore Murdock

3

Ayrıca qemu kullanabilirsiniz:

İçin .vdi

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

eğer kurulum yapmazlarsa onları kurabilirsiniz (Ubuntu'da bu komuttur)

sudo apt install qemu-utils

ve sonra monte et

mount /dev/nbd1p1 /mnt

İçin .vmdk

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

farkettim, -rçünkü VMDK sürüm 3 sadece qemu ile monte edilebilmek için okunmalı

ve sonra onu monte ediyorum

mount /dev/nbd1p1 /mnt

Kullandığım nbd1çünkü nbd0bazen ': özel bir cihaz / dev / nbd0p1 yok montaj' verir

.Ova için

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

Yukarıdakiler .vmdkdiski çıkaracak ve daha sonra monte edecektir .


2

İçin vmdkve vhddosyalar, sadece konusunda şanslıydık kpartxkomuta altında:

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

Çıktısını kontrol edin losetup, bu döngü cihazı içermelidir /dev/loop0; ayrıca sudo blkidbölümü kontrol /dev/mapper/loop0p1edip mount komutunda kullanın:

sudo mount -o rw /dev/mapper/loop0p1 /mnt/vmdk

/ Mnt / vmdk sizin bağlama noktanızdır, sudo mkdir /mnt/vmdkmevcut değilse birlikte oluşturulacak .

commandlinefu.com adresinde kaynak (kpartx ve mount komutu)

Şununla bağlantısını kes:

sudo umount /mnt/vmdk
sudo kpartx -d -v <image-flat.vmdk>

Sadece bu yöntemi ile test vhd, işe yarıyor!
N0rbert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.