वर्चुअल हार्ड डिस्क कैसे माउंट करें?


23

क्या उबंटू पर वर्चुअल हार्ड डिस्क (VHD, HDD, VDI, VMDK) को माउंट करना संभव है? यह कैसे किया जा सकता है?


1
क्या आपने Google खोजा है? यह उबंटू पर बढ़ते वीएमडीके, वीडीआई, वीएचडी, और कच्ची डिस्क छवि फ़ाइलों पर गाइड के साथ गर्भपात करता है
सिरचलो

2
मैंने Google खोज की है, लेकिन मुझे आपका परिणाम नहीं मिला। धन्यवाद :)
हिम तेंदुआ

ऊपर VHD के लिए Ubuntugeek लिंक विफल रहा।
K7AAY

जवाबों:


16

इस लेख के अनुसार :

लिनक्स और अन्य यूनिक्स जैसे होस्ट एक लूपबैक डिवाइस का उपयोग करके कच्चे प्रारूप प्रकार के साथ बनाई गई छवियों को माउंट कर सकते हैं। रूट लॉगिन (या 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.

Google पर कोशिश करें, मुझे (VirtualBox) के लिए समाधान मिल गया है। एक सेकंड में VDI :

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

"क्यूमू का रास्ता" के समान है। कोई सीमाएं नहीं!


6

यह उबंटू 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

गुणा और स्टार्टर। उदाहरण के लिए यह 2048 * 512 होगा

echo 2048*512 | bc
1048576

उस ऑफसेट का उपयोग करके माउंट

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

डिस्क अब आरोहित और पढ़ने योग्य / mnt / vmdisk पर होनी चाहिए


1
महान!!! यह मेरे लिए Ubuntu 17.10 पर
cljk

यह मेरे लिए 16.04.5 पर मेरे .vmdk के लिए काम नहीं कर रहा है ... fdisk कदम के माध्यम से काम करता है, और मेरे VM का मुख्य विभाजन, जिसे मैं माउंट करना चाहता हूं, वह भी 2048 से शुरू होता है, लेकिन इसके mount -o ro,loop,offset=1048576 ./foo.raw /mnt/fooसाथ विफल रहता है only root can use "--options" option। इसके साथ sudo, यह विफल रहता है failed to setup loop device: Permission denied
थियोडोर मर्डॉक

3

आप qemu का उपयोग भी कर सकते हैं:

के लिये .vdi

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

अगर वे अस्थिर नहीं हैं तो आप उन्हें स्थापित कर सकते हैं (उबंटू पर यह कॉमैंड है)

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कभी-कभी 'माउंट: विशेष उपकरण / देव / nbd0p1 मौजूद नहीं होता है'

.Ova के लिए

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

ऊपर .vmdkडिस्क को निकालेगा और फिर उसे माउंट करेगा।


2

के लिए vmdkऔर vhdफ़ाइलों, मैं केवल के साथ भाग्यशाली kpartxनीचे आदेश:

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

के लिए आउटपुट की जांच करें losetup, इसमें लूप डिवाइस होना चाहिए /dev/loop0; sudo blkidविभाजन के लिए भी जाँच करें /dev/mapper/loop0p1, फिर इसे माउंट कमांड में उपयोग करें:

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

जहां / mnt / vmdk आपका आरोह बिंदु है, sudo mkdir /mnt/vmdkयदि गैर-मौजूद है तो बनाया जाएगा ।

sourcelinefu.com पर स्रोत (kpartx और माउंट कमांड)

साथ अनमाउंट करें:

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

बस के साथ इस विधि का परीक्षण किया vhd, यह काम करता है!
N0rbert
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.