वर्चुअलबॉक्स हार्ड डिस्क को पहले से मौजूद नहीं रजिस्टर कर सकता है


151

मैंने एक वर्चुअल डिस्क फ़ाइल VM_1_Ubuntu.vdi बनाई है । फिर मैंने इसे दूसरे फ़ोल्डर में स्थानांतरित कर दिया। मैंने VM सेटिंग अपडेट करने की कोशिश की (वर्चुअल मशीन पर राइट क्लिक करें -> सेटिंग्स -> स्टोरेज -> नियंत्रक SATA टैब, VM_1_Ubuntu.vdi पथ)। मैं एक नया रास्ता तय करना चाहता था।

यह कहता है कि हार्ड डिस्क पहले से मौजूद नहीं है

जवाबों:


220

मुझे एक उपाय मिला

फ़ाइल -> वर्चुअल मीडिया मैनेजर -> मौजूदा छवियों को हटा दिया (ध्यान दें, मैंने उन्हें केवल रजिस्ट्री से हटा दिया है)।

मैंने इन चरणों का पालन किया।

http://www.webdesignblog.asia/software/virtualbox-moving-vdi-file-re-linking-guest/#sthash.1QOHeiw5.dpbs

उसके बाद मैं VM सेटिंग्स में पथ को अपडेट कर सकता था।


2
यदि ड्राइव जहां डिस्क संग्रहीत की गई थी, तो उपलब्ध नहीं है तो पहले VM (और Ctrl + D) से डिस्क (Ctrl + L) जारी करें। अन्यथा डिस्क को रिलीज़ करने से पहले आप हटा नहीं पाएंगे। उसके बाद उपरोक्त लिंक में दिए चरणों का पालन करें या वर्चुअल मशीन की "सेटिंग" खोलें, "स्टोरेज" पर जाएं, "एड अटैचमेंट" पर क्लिक करें, "हार्ड डिस्क जोड़ें" और "मौजूदा डिस्क चुनें" का चयन करें, फिर वीडी फाइल और आप का चयन करें कार्य पूर्ण।
सैयद नासिर अब्बास

1
आपको सभी स्नैपशॉट को हटाना होगा ताकि हटाएं बटन को बाहर निकाला न जाए।
ऋषि

150

आदेश का उपयोग करके VDI फ़ाइल पर UUID को बदलना संभव है:

 VBoxManage internalcommands sethduuid <file.vdi>

ऐसा लगता है कि यह कमांड फ़ाइल में एक नया "यादृच्छिक" यूयूआईडी प्रदान करता है। इस पर कोई बहुत अधिक प्रलेखन, हालांकि।


2
मेरी जरूरतों के लिए बिल्कुल सही (एक आभासी हार्ड ड्राइव का आकार बदलना, बिना इसे चलाए काम नहीं कर रहा था)।
शिरी

3
VBoxManage एक exe है जो मेरे लिए "C: \ Program Files \ Oracle \ VirtualBox" में था, इसलिए बस एक cmd विंडो से चलाएं।
गाइल्स

1
यह एक आदर्श समाधान है जब आपके पास एक आधार ओएस छवि है और आधार को कॉपी करने के लिए बिना आधार को बदलने के लिए कई एप्लिकेशन इंस्टॉल करने के लिए एक कॉप बनाना चाहता है।
जर्सी_गुय

मुझे एक ड्राइव का आकार देने में मदद की
ज़ुमतेउफ़ेल

इस समाधान ने एक स्थिति को भी हल किया जहां मैंने VM को दूसरे स्थान पर कॉपी किया था, वर्चुअलबॉक्स से मूल को हटा दिया, और डिस्क को कॉम्पैक्ट करने की कोशिश कर रहा था। कमांड: $ VBoxManage modifymedium Windows \ 7 \ Professional.vdi --compact त्रुटि: VBoxManage: त्रुटि: हार्ड डिस्क को पंजीकृत नहीं कर सकता / 'उपयोगकर्ता / c / VirtualBox VMs / विंडोज 7 व्यावसायिक / विंडोज प्रोफेशनल .vdi' {a510ee0d- 2cef-47db-b25f-acae9e341d45} क्योंकि एक हार्ड डिस्क '/ खंड / रैमडिस्क / विंडोज 7 प्रोफेशनल / विंडोज 7 Professional.vdi' UUID {a510ee0d-2cef-47db-b25f-acae9e341d45} के साथ पहले से मौजूद है
EmpathicSage

27
  1. Oracle VM VirtualBox प्रबंधक से फ़ाइल का चयन करें
  2. वर्चुअल मीडिया मैनेजर
  3. हार्ड डिस्क टैब से फ़ाइल (हाइलाइटेड पीला) निकालें।

7

यदि वर्चुअल मीडिया मैनेजर (मेरे मामले में) का उपयोग करके हार्ड डिस्क फ़ाइल में पथ को हटाने या बदलने की कोई संभावना नहीं है, तो:

  1. किसी भी पाठ संपादक में ' .vbox' और ' .vbox-prev' (यदि मौजूद है) फाइलें खोलें ।
  2. अपने पथ पर 'हार्डडिस्क' तत्व का 'स्थान' गुण संपादित करें, उदाहरण के लिए: "d: /VM/VirtualBox/Win10/Win10.vmdk" ( स्क्रीनशॉट )।

4

कुछ मामलों में पहले आपकी रिलीज़ की आवश्यकता है, फिर वर्चुअल मीडिया मैनेजर के माध्यम से निकालें और पुनः जोड़ें


3

1 - किसी भी टेक्स्ट एडिटर में फाइलें '.vbox' और '.vbox-prev' (यदि मौजूद हैं) फाइलें खोलें और हार्डडिस्क uuid के पहले चरित्र को बदलें (चरण 6 पर इस परिवर्तन को वापस लेने के लिए ध्यान दें)

उदाहरण: nano /home/virtualbox/WindowsServer/WindowsServer.vbox

परिवर्तन:

<HardDisks>
        <HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

सेवा:

<HardDisks>
        <HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

2 - रिबूट मशीन

4 - वर्चुअल मशीन बंद करो (यदि शुरू किया गया)

5 - टर्मिनल पर:

su vbox
cd /home/virtualbox/WindowsServer/
VBoxManage modifyhd WindowsServer.vdi --resize SIZE
exit
exit

मेगाबाइट में एक नंबर के लिए SIZE बदलें, उदाहरण के लिए 80000 (80GB)

6 - किसी भी टेक्स्ट एडिटर में फ़ाइलें '.vbox' और '.vbox-prev' (यदि मौजूद हैं) को फिर से खोलें और हार्डडिस्क uuid के पहले चरित्र को मूल मान से बदल दें

उदाहरण: nano /home/virtualbox/WindowsServer/WindowsServer.vbox

परिवर्तन:

<HardDisks>
        <HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

सेवा:

<HardDisks>
        <HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

7 - रिबूट मशीन


3

मैं वास्तव में यहां दिए गए सुझावों की सराहना करता हूं। इम्पेलर और ओलेग की टिप्पणियों ने मुझे एक साथ समाधान करने में मदद की।

VBoxManage CLI का उपयोग करें। एक --setlocationविकल्प के साथ एक modifymedium कमांड है ।

मेरा सुझाव है कि VBox GUI (VM VirtualBox Manager 6.0 पर) खोलने
- "वर्चुअल मीडिया मैनेजर" का चयन करें (मैंने फ़ाइल मेनू का उपयोग किया)
- डिस्क के लिए "सूचना" बटन का चयन करें जिससे आपको यह त्रुटि
मिली - UUID
नोट की प्रतिलिपि बनाएँ : मैंने हटा दिया अगले चरण से पहले "संग्रहण" सेटिंग से नियंत्रक।
- अपना कमांड प्रॉम्प्ट खोलें और .vdi फ़ाइल के स्थान पर नेविगेट
करें। विकल्पों की सूची देखने के लिए VBoxMange टाइप करना एक अच्छा विचार है, लेकिन यह चलाने के लिए कमांड है:

VBoxManage modifymedium[यहाँ मध्यम प्रकार डालें] [UUID] --setlocation[.vdi फ़ाइल का पूर्ण पथ]

अंत में, किसी भी वीएम को कंट्रोलर को रीटेट करें - अधिमानतः जिसे आप ठीक करना चाहते हैं।


0

मेरे लिए काम किया समाधान इस प्रकार है:

  1. सुनिश्चित करें कि VirtualBox प्रबंधक नहीं चल रहा है।
  2. फ़ाइलों का बैकअप लें ~\.VirtualBox\VirtualBox.xmlऔर ~\.VirtualBox\VirtualBox.xml-prev
  3. <HardDisks>...</HardDisks>की डुप्लिकेट प्रविष्टि को हटाने के लिए अनुभाग को संशोधित करने के लिए इन फ़ाइलों को संपादित करें <HardDisk />
  4. अब VirtualBox प्रबंधक चलाएं।

उदाहरण:

  <HardDisks>
    <HardDisk uuid="{38f266bd-0959-4caf-a0de-27ac9d52e3663}" location="~/VirtualBox VMs/VM1/box-disk001.vmdk" format="VMDK" type="Normal"/>
    <HardDisk uuid="{a6708d79-7393-4d96-89da-2539f75c5465e}" location="~/VirtualBox VMs/VM2/box-disk001.vmdk" format="VMDK" type="Normal"/>
    <HardDisk uuid="{bdce5d4e-9a1c-4f57-acfd-e2acfc8920552}" location="~/VirtualBox VMs/VM2/box-disk001.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

उपरोक्त खंड में ध्यान दें कि अंतिम दो प्रविष्टियां एक ही वीएम को संदर्भित करती हैं लेकिन अलग-अलग यूआईडी है। उनमें से एक अमान्य है और उसे हटा दिया जाना चाहिए। जो एक अमान्य है उसे हिट और ट्रायल द्वारा पता लगाया जा सकता है - पहले दूसरी प्रविष्टि को हटा दें और कोशिश करें; यदि यह काम नहीं करता है, तो तीसरी प्रविष्टि को हटा दें।


0

कई दिनों तक संघर्ष करने के बाद आखिरकार एक ऐसा समाधान मिला जो पूरी तरह से काम करता है।

Mac OS ~ (लायब्रेरी फ़ोल्डर) (अपने होम डायरेक्टरी में) खोलें और VirtulBox फ़ोल्डर को हटा दें। यह सभी कॉन्फ़िगरेशन को हटा देगा और आप फिर से वर्चुअल बॉक्स शुरू कर सकते हैं!

अन्य लोग आपके घर निर्देशिका में .virtualbox फ़ोल्डर की तलाश करते हैं। इसे निकालें और VirtualBox को खोलें आपकी समस्या को हल करना चाहिए।

चीयर्स !!

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