सवाल एक वर्चुअलबॉक्स ड्राइव छवि (vdi) माउंट करें?


क्या वर्चुअलबॉक्स ड्राइव छवि (.vdi) को माउंट करना संभव है ताकि सामग्रियों को नॉटिलस आदि में देखा जा सके?

मेरे पास एक विंडोज 2000 है। Vdi जो वर्चुअलबॉक्स 2.x से 3.1.6 तक अपग्रेड करने के बाद बूट नहीं करेगा ("पहुंच योग्य बूट डिवाइस")। मेरा मानना ​​है कि आईडीई ड्राइव विवरण बदल गए हैं और मुझे बस इतना करना है कि आंतरिक ड्राइव छवि तक पहुंचें और विंडोज़ को संपादित करें boot.ini नए स्थान पर इंगित करने के लिए।


76
2017-12-30 14:44


मूल


यदि आपकी .vdi और फिर .img फ़ाइल में 1 विभाजन है, तो यह बहुत उपयोगी है: ब्राउज़-img-बिना-बढ़ते - user2689749


जवाब:


आप मानक छवि में परिवर्तित कर सकते हैं और फिर इसे माउंट कर सकते हैं।

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

फिर

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

आपको फ़ाइल सिस्टम के प्रकार को जानना होगा, ext3 इस मामले में। इसे घुमाने के बाद, अपनी पसंद के संपादक के साथ अंदर जाएं और संपादित करें। अंदर फ़ाइलों को भ्रमित मत करो /mnt चल रहे मेजबान के साथ स्थान, या यह बुरा होगा।

अपनी वीडीआई फ़ाइल के बारे में विवरण जांचने के लिए, चलाएं: VBoxManage showhdinfo ubuntu.vdi

स्रोत: [हल] आर्काइव मैनेजर के साथ ओपन .vdi? - ubuntuforums.org


48
2017-12-30 14:47



इस तरह की स्थिति में काफी उपयोगी है। ओपी मूल को बैकअप के रूप में रखने की प्रतिलिपि पर काम करने में सक्षम हो जाएगा। - Javier Rivera
गतिशील रूप से आकार की .vdi फ़ाइलों के साथ यह सावधानीपूर्वक कर रहे हैं। .Img में कनवर्ट करने से छवि फ़ाइल को डिस्क के तार्किक आकार के रूप में बड़ा करने के लिए मजबूर किया जाएगा, यही कारण है कि यह दृष्टिकोण काम करता है, लेकिन यह .vdi फ़ाइल से बहुत बड़ा हो सकता है। के आउटपुट पर एक नज़र डालें VBoxManage showhdinfo [your vdi file] यदि आप निश्चित नहीं हैं। - Jack O'Connor
-1, stwissel तथा मैक्सिम आरके जवाब समाधान प्रदान करते हैं - यह एक उचित कामकाज है, लेकिन सवाल का सबसे अच्छा जवाब नहीं है - STW
अगर छवि में विभाजन तालिका है (अधिकांश ड्राइव की तरह), तो आपको इस उत्तर को साथ जोड़ना होगा यह वाला व्यक्तिगत विभाजन को माउंट करने के लिए। - bain
काम नहीं करता बढ़ते त्रुटियों को गलत fs प्रकार प्राप्त करना जारी रखें। मैंने ext3 और ext2 और ext4 की कोशिश की। वर्चुअल बॉक्स का कहना है कि एचडी एफएस प्रकार ext4 है। - Joshua Robison


उपयोग qemu-nbd, प्रक्रिया समझाया गया है सर्वरफॉल्ट पर तथा इस ब्लॉग में

असल में, आपको स्थापित करना होगा qemu अगर जरुरत हो:

sudo apt-get install qemu

फिर आपको लोड करना होगा नेटवर्क ब्लॉक डिवाइस मॉड्यूल:

sudo rmmod nbd
sudo modprobe nbd max_part=16

आपके द्वारा अभी बनाई गई एनबीआई में से एक को .vdi छवि संलग्न करें:

sudo qemu-nbd -c /dev/nbd0 drive.vdi

अब आपको कई / dev / nbd0p * विभाजन डिवाइस नोड्स के साथ एक / dev / nbd0 ब्लॉक डिवाइस मिलेगा।

sudo mount /dev/nbd0p1 /mnt

एक बार पूरा हो जाने के बाद, सबकुछ अनमाउंट करें और डिवाइस को डिस्कनेक्ट करें:

sudo qemu-nbd -d /dev/nbd0

75
2018-06-24 01:48



मैं इसे ध्यान में रखना चाहता हूं max_part=16 एक महत्वपूर्ण हिस्सा प्रतीत होता है। इसके बिना आप कोई नहीं देखेंगे /dev/nbd0pX मुख्य उपकरण के बावजूद फ़ाइलों को ठीक से काम करेगा। निम्नलिखित चर्चा की जांच करें Gentoo मंच लोगों को इस परेशानी से मुलाकात देखने के लिए। - firegurafiku
सभी उत्तर कुछ हद तक काम करते हैं लेकिन यह मेरा पसंदीदा है और स्वीकार्य होना चाहिए। क्लोनहैड नौकरी करता है लेकिन डबल्स भंडारण आवश्यकताओं को करता है। वर्चुअलबॉक्स-फ्यूज आदर्श है लेकिन यद्यपि आप इसे अभी भी प्राप्त कर सकते हैं, लेकिन यह ओएस के आधुनिक रिलीज में रिपो को नहीं बना पाया। - Hatoru Hansou
आश्चर्यजनक! एक .vdi फ़ाइल का उपयोग करने के लिए यह बिल्कुल सही तरीका है! मुझे वीडीआई क्लोनिंग या आकार बदलने में गूंगा त्रुटियां मिल रही थीं, लेकिन यह विधि सभी समस्याओं को दूर करती है :) VBoxManage: error: Could not create the clone medium '/mnt/temp6/xubuntu-14.04-64bit.img'. VBoxManage: error: Raw: disk would overflow creating image '/mnt/temp6/xubuntu-14.04-64bit.img' (VERR_DISK_FULL)   VBOX_E_NOT_SUPPORTED VBoxManage: error: Resize hard disk operation for this format is not implemented yet! - Avio
यह बहुत अच्छा काम किया। ध्यान दें कि स्थापित करना qemu-kvm के बजाय qemu बस भी काम कर सकते हैं। यह मेरे Ububtu 16.04 पर मेरे लिए किया, और 230 एमबी के बजाय केवल 23 एमबी और 13 निर्भरताओं को स्थापित किया और पूर्ण qemu इंस्टॉल के लिए कई और निर्भरताओं को स्थापित किया। - mivk
मैं इसे स्पष्ट रूप से जोड़ना चाहता हूं sudo partprobe नए कर्नेल के साथ निष्पादित करने की जरूरत है ताकि /dev/nbd0p* डेबियन / उबंटू में बनाए गए हैं (bugs.debian.org/cgi-bin/bugreport.cgi?bug=824553)। - Kai


ऐसा लग रहा है vdfuse वह उपकरण है जिसे आप ढूंढ रहे हैं। यह उबंटू भंडारों में है। यदि आप स्वयं को संकलित करना चाहते हैं (2010 स्रोत) तो आप कर सकते हैं वह भी करो

हालांकि हम में से अधिकांश के लिए यह एक साधारण के लिए उबाल जाता है:

sudo apt-get install virtualbox-fuse

ऐसा लगता है कि यह अब गतिशील वीडीआई का भी समर्थन करता है।

और माउंट करने के लिए .vdi में फाइल /mnt डीआईआर कमांड का उपयोग करें:

sudo vdfuse -a -f /path-to-vdi-file /mnt

पूरी डिस्क विभाजन के साथ आरोहित किया जाएगा Partition1 , Partition2 नामकरण प्रारूप। फिर उन फ़ाइलों को लूप घुड़सवार किया जा सकता है। उदाहरण के लिए,

sudo mount -o loop /mnt/Parition1 /mountpoint

35
2018-05-07 06:02



@mattwilkie: अब अंतर: कोई मैन्युअल संकलन अब और आवश्यक नहीं है - stwissel
आपका स्वागत है। ग्लास पर चिपकने के बजाय एक प्रोपर स्क्रीन / कीबोर्ड पर बैठकर सभी अंतर :-) - stwissel
यह 14.04 में उपलब्ध नहीं है। - int_ua
कोई इसे यहां से डाउनलोड कर सकता है: sourceforge.net/projects/vdfuse/?source=typ_redirect और यह काम करता है (15.04 को) - sup
16.10 के लिए मान्य नहीं है, पैकेज अब मौजूद नहीं है। - Piskvor


किसी अन्य वर्चुअल ओएस के लिए डिस्क को द्वितीयक मास्टर के रूप में सेट करें, फिर इस (वर्चुअल) ओएस में बूट करें और आप इसे माउंट कर सकते हैं।

चरण 1: मान लें कि आपके पास आभासी ओएस (उबंटू 16.04 कहें) वर्चुअल बॉक्स में पहले से स्थापित है, उस वर्चुअल ओएस की सेटिंग्स से एक नया स्टोरेज जोड़ें। enter image description here

चरण 2: उस वीडीआई फ़ाइल को ब्राउज़ करें जिसे आप एक्सेस करना चाहते हैं और इसे चुनें।

चरण 3: वर्चुअल ओएस पर लॉगऑन करें।

चरण 4: वर्चुअल डिस्क शायद ओएस के अंदर उपलब्ध होगी। यदि नहीं, तो चरण 5 का पालन करें

चरण 5: वर्चुअल ओएस के अंदर, Gparted का उपयोग करें और डिस्क की जांच करें। और सुनिश्चित करें कि डिस्क प्रकार का है जो वर्चुअल ओएस द्वारा सुलभ है। यदि ऐसा नहीं है, तो आपको डिस्क को संपादित करना पड़ सकता है, लेकिन फिर आप मौजूदा सामग्री खो देंगे।


14
2017-12-30 15:13



रिकॉर्ड के लिए, 2016 में यह काम नहीं करेगा - Paulo Pedroso
यह उबंटू 16.04 में काम करता है। - Sharun
यह वास्तव में एकमात्र समाधान है जब आपको परिवर्तन करने की आवश्यकता होती है और फिर इसका उपयोग करने के लिए वापस जाना पड़ता है, vdfuse के साथ काम नहीं कर सका - DuBistKomisch


मैंने खुद का परीक्षण नहीं किया लेकिन उन्हें माउंट करने के लिए एक फ्यूज मॉड्यूल प्रतीत होता है (vfduse), निम्न पेज की जांच करें:

कृपया ध्यान दें कि लेखन पहुंच के लिए इसका उपयोग जोखिम भरा है।


उपयोग:

$ ./vdfuse-v<version> -h
USAGE: ./vdfuse [options] -f image-file mountpoint
   -h   help
   -r   readonly
   -t   specify type (VDI, VMDK, VHD, or raw; default: auto)
   -f   VDimage file
   -a   allow all users to read disk
   -w   allow all users to read and write to disk
   -g   run in foreground
   -v   verbose
   -d   debug

सीधे अपने फ़ाइल नाम का उपयोग कर छवि को माउंट करने के लिए:

$ ./vdfuse-v<version> -f image.vdi /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP

मशीन डिस्क (स्नैपशॉट सहित) को माउंट करने के लिए:

$ ./vdautomount-<version> -p /path/to/vdfuse WinXP /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP

6
2017-12-30 15:08



इस उपयोगिता के रूप में अब प्रासंगिक नहीं है। - Evan Carroll


आपने जो अनुरोध नहीं किया है, लेकिन यदि यह सिर्फ एक मामला है वीडीआई से फाइलें प्राप्त करना, और आप चाहते हैं एक बहुत तेज़ समाधान:

  1. अपने मेजबान पर एक एसएसएच सर्वर चलाएं (apt-get install openssh-server && service ssh restart)
  2. मौजूदा vdi फ़ाइल से वर्चुअल मशीन बनाने के लिए वर्चुअलबॉक्स का उपयोग करें, फिर उस वर्चुअल मशीन को बूट करें। (वीएम बनाने के दौरान मैंने डिफ़ॉल्ट नेटवर्क एडाप्टर (एनएटी) रखा है।)
  3. वर्चुअल मशीन के भीतर, अपने मेजबान के लिए sftp। (sftp hostuser@hostip)
  4. एसएफटीपी सत्र में, put आपको जितनी जरूरत हो उतनी फाइल होस्ट के रूप में।

3
2018-02-20 17:23



एक बदसूरत हैक, लेकिन यदि आप एक तंग जगह में हैं, तो यह काम पूरा हो जाता है। - Piskvor
एक समस्या यह हो सकती है कि मशीन वर्तमान में सही ढंग से बूट नहीं हो रही है, इसलिए आपको पहले उस समस्या को ठीक करने की आवश्यकता होगी और इसका मतलब है कि आप इसे भीतर से नहीं कर सकते हैं। अपने वर्चुअलबॉक्स ओएस के साथ भी एसएसएच का उपयोग करना फाइलों की प्रतिलिपि बनाने का तरीका है। डिस्क साझा करने की कोशिश करने से तेज़ तरीका। - Alexis Wilke


जैसा कि ऊपर उल्लेखित Vojtech Trefny,

1) पहले अपने वीडीआई -> आईएमजी को परिवर्तित करें

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

2) फिर आईएमजी माउंट करें

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

3) हालांकि, जैसा कि मुझे यह त्रुटि संदेश मिला है:

mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

और डीएमएसजी ने कहा:

[3105578.013671] EXT4-fs (loop0): VFS: Can't find ext3 filesystem

आपको .img की विभाजन संरचना की जांच करने की आवश्यकता है:

fdisk -l ubuntu.img

Disk ubuntu.img: 21.0 GB, 20971520000 bytes
255 heads, 63 sectors/track, 2549 cylinders, total 40960000 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
Disk identifier: 0xf45bc910

   Device Boot      Start         End      Blocks   Id  System
ubuntu.img1   *        2048    12582911     6290432   83  Linux
ubuntu.img2        12584958    16775167     2095105    5  Extended
ubuntu.img3        16775168    40959999    12092416   83  Linux
ubuntu.img5        12584960    16775167     2095104   82  Linux swap / Solaris

4) जैसा कि आप देख सकते हैं, मुख्य विभाजन बाइट्स 16775168 से शुरू हो रहा है। हालांकि, ध्यान दें कि सेक्टर का आकार 512 बाइट है, इसलिए आपको परिणाम 16775168 x 512 = 8588886016 गुणा करने की आवश्यकता है, इसलिए आपको इस तरह के माउंट को ऑफ़सेट करना होगा:

mount -t ext3 -o loop,rw,offset=8588886016 ./ubuntu.img /mnt

5) असल में यह मेरे लिए काम नहीं करता है, जहां फाइल सिस्टम का आकार बदलने के बाद गंदा था। इस मामले में मैंने आगे यह किया:

dd if=ubuntu.img of=ubuntu.disk bs=512 skip=16775168 count=12092416
e2fsck ubuntu.disk
mount ubuntu.disk /mnt

-1
2018-06-18 12:51



यह सवाल का जवाब नहीं है। आपको एक और समस्या थी - एक भ्रष्ट छवि। आपको एक नया प्रश्न आत्म-उत्तर देना चाहिए था। - Evan Carroll