मैं वर्चुअल डिस्क के UUID को कैसे बदलूं?


131

मैं पहले से मौजूद हार्ड डिस्क का उपयोग करके Oracle VirtualBox के साथ एक नई वर्चुअल मशीन बनाने की कोशिश कर रहा हूं। जब मैं मौजूदा हार्ड डिस्क फ़ाइल, .vhd फ़ाइल का चयन करने का प्रयास करता हूं, तो यह एक त्रुटि कहती है कि वर्चुअल हार्ड डिस्क का उपयोग नहीं किया जा सकता क्योंकि UUID पहले से मौजूद है।

इसलिए मैंने इसके UUID को बदलने के लिए निम्न आदेश की कोशिश की।

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

मुझे यह त्रुटि मिली।

सिंटैक्स त्रुटि: अमान्य यूयूआईडी पैरामीटर

मैं इसे कैसे हल करूं?


1
अंतरिक्ष वर्ण वाले पथ दोहरे उद्धरण चिह्नों में संलग्न होने चाहिए, जैसा कि आप पहले ही खोज चुके हैं।
AB

जवाबों:


171

सही कमांड निम्नलिखित है।

VBoxManage internalcommands sethduuid "/home/user/VirtualBox VMs/drupal/drupal.vhd"

वर्चुअल डिस्क के लिए पथ में एक स्थान है, इसलिए इसे दो मापदंडों के रूप में पार्स किए जाने से बचने के लिए दोहरे उद्धरणों में संलग्न किया जाना चाहिए।


25
मैं वास्तव में चाहता हूं कि
वर्चुअलबॉक्स में

1
यह फ़ाइलपथ में जगह के कारण उद्धृत किया जाना चाहिए।
क्रिस स्ट्राइकसिनस्की

यदि आप पहले से ही ज्ञात डिस्क को खोलने का प्रयास करते हैं तो वर्चुअलबॉक्स यूआई ने नया यूयूआईडी बनाने का विकल्प दिया तो अच्छा होगा। ईमानदारी से, मैं वास्तव में किसी भी चीज के लिए डिस्क मैनेजर का उपयोग नहीं करता, मैं वर्चुअलबॉक्स को केवल वर्चुअल डिस्क के रूप में फाइल पथ के रूप में मानता हूं, बजाय उन्हें प्रबंधन और ट्रैक करने के लिए संसाधनों की तरह व्यवहार करने की कोशिश करने के।
jrh

34

निम्नलिखित ने मेरे लिए काम किया:

  1. रन VBoxManage internalcommands sethduuid "वीडीआई / VMDK फ़ाइल" दो बार (पहली बार आसानी से एक UUID उत्पन्न करने के लिए बस है, तो आप किसी भी अन्य UUID पीढ़ी विधि के बजाय इस्तेमाल कर सकते हैं)

  2. एक पाठ संपादक में .vbox फ़ाइल खोलें

  3. UUID को मशीन में मिले UUID की जगह लें = "{...}" UUID के साथ जब आप पहली बार सेतुहिडिड भागे थे

  4. हार्डडिस्क में मिले यूयूआईडी को बदलें uuid = "{...}" और छवि में uuid = "{}" (अंत की ओर) यूयूआईडी के साथ जब आप दूसरी बार सेटहुड्यूड भाग गए


1
मुझे लगता है कि यह उत्तर किसी (मेरे सहित) के लिए अधिक उपयोगी है जो वर्चुअल मशीन की प्रतिलिपि बनाना चाहता है।
cbuchart 22

1
बस सोच रहा था - आपको मशीन यूआईडी को बदलने की आवश्यकता क्यों थी? अगर मैं सिर्फ एक मशीन से दूसरे में vmdk डिस्क कॉपी करना चाहता हूं, तो मुझे इसकी आवश्यकता नहीं है, है ना?
ओलेग ग्रिब

1
यदि आप वर्चुअल डिस्क को एक ही मशीन पर कॉपी करते हैं, तो आपको मशीन को बदलना होगा
borchvm

1
मेरे मामले में सही काम किया- धन्यवाद! मुझे मशीन UUID को समायोजित करने की आवश्यकता नहीं थी।
बेनको

1
@FabrizioBertoglio उम्मीद है कि आपके पास आपका उत्तर होगा - लेकिन आपको उन फ़ाइलों को संपादित करने के लिए किसी भी प्रकार की vbox सेवाओं को रोकने की आवश्यकता है - अन्यथा आपको वही ओले मिलते हैं। यह भी सुनिश्चित करें कि SATA हार्डडिस्क के लिए आपका UUID <संलग्न डिवाइस> कॉन्फिग फ़ाइल के निचले भाग में, कॉन्फ़िग फ़ाइल के शीर्ष पर हार्डड्राइव अनुभाग में हार्ड डिस्क के लिए UUID से मेल खाता है। इससे पहले कि आप इसमें से कोई भी करें हालांकि आप अपने <हार्डवेयर UUID = myMachineUUID> को भी जोड़ना चाहेंगे।
केन

12

यदि आपने डिस्क (vmdk फ़ाइल) को एक मशीन से दूसरी मशीन में कॉपी किया है और कॉपी में डिस्क का UUID बदलने की आवश्यकता है, तो आपको मशीन UUID को बदलने की आवश्यकता नहीं है जैसा कि किसी अन्य उत्तर द्वारा सुझाया गया है।

आपको बस डिस्क छवि में एक नया यूयूआईडी असाइन करना है:

VBoxManage internalcommands sethduuid your-box-disk2.vmdk
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb

और फिर पुराने UUID को आपकी * .vbox फ़ाइल में दो स्थानों पर नए जेनरेट किए गए एक के साथ बदलें

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}" location="box-disk2.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

और में

    <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
      <Image uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}"/>
    </AttachedDevice>

यह मेरे लिए VirtualBox ver के लिए काम करता है। 5.1.8 मैक ओएस एक्स एल कैपिटन पर चल रहा है।


शायद आप सही हैं। मैंने आपके निर्देश का पालन किया और मुझे अभी भी त्रुटि का सामना करना पड़ रहा है UUID विफल, भले ही हार्ड डिस्क file -> Virtual Media Managerसही UUID के साथ और मशीन सेटिंग्स पर दोनों को सही ढंग से दिखाता हो
Fabrizio Bertoglio

मुझे यकीन नहीं है कि आपका मामला क्या है। मैंने जो ऊपर वर्णित किया है वह ठीक वही है जो मैंने किया था और इसने मेरे लिए मैक पर VB 5.1.8 के साथ काम किया था
ओलेग ग्रिब

मैंने निम्नलिखित चरणों के साथ समस्या को हल किया है: 1. re-installing virtual box using synaptic package managerतब 2. In the virtual box machine configuration, I did not disable the Floppy disk and EFI Setting. I kept them enabled.समस्या ठीक हो गई थी।
फेब्रीजियो बर्टोग्लियो

@OlegGryb यह होस्ट OS और अतिथि OS पर भी निर्भर हो सकता है।
केन

11

हालाँकि आपने समस्या का समाधान कर लिया है, लेकिन मैं यहाँ कुछ अन्य लोगों के लिए भी इसी तरह की समस्या का कारण बताता हूँ।

कारण आपके रास्ते में एक स्थान है (निर्देशिका नाम VirtualBox VMs) जो कमांड को अलग करेगा। तो त्रुटि दिखाई देती है।


11

मैंने मैक ओएस के संबंध में एक उत्तर के लिए वेब खोजा है, इसलिए .. समाधान है

cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/

VBoxManage internalcommands sethduuid "full/path/to/vdi"

1
सुपर सहायक !!
Addo समाधान

6

आदेश विफल हो जाता है क्योंकि इसमें फ़ोल्डर नाम में से एक में स्थान है, अर्थात 'वर्चुअलबॉक्स वीएम।

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

यदि फ़ोल्डर नाम या फ़ाइल नाम में कोई स्थान नहीं है, तो कमांड इसे उद्धृत किए बिना भी काम करेगा, उदाहरण के लिए 'वर्चुअलबॉक्स वीएम' को 'VBoxVMs' में बदलने के बाद।

VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd

4

यह प्रश्न पूछे जाने पर भी पुराना है, ध्यान दें कि एक विंडोज़ सिस्टम में वर्चुअल HDD पर UUID बदलने से विंडोज़ इसे एक सक्रिय मशीन के रूप में व्यवहार करेगी (जैसा कि यह डिस्क परिवर्तन को नोटिस करता है) और पुनर्सक्रियन के लिए पूछेगा!


4

Windows x64 के लिए @ Al3x के रूप में समान समाधान cmd.exe:

cd %programfiles%\Oracle\VirtualBox

VBoxManage internalcommands sethduuid "full/path/to/.vdi"

यह डिस्क के UUID को यादृच्छिक बनाता है। प्रो टिप: पारी को दबाए रखते हुए .vdi फ़ाइल पर राइट क्लिक "full/path/to/.vdi"करें और cmd.exe में त्वरित संपादन प्राप्त करने और सक्षम करने के लिए "प्रतिलिपि के रूप में पथ" का चयन करें, फिर पेस्ट करने के लिए राइट क्लिक करें।


2

आपके मूल समाधान का एक और विकल्प \अंतरिक्ष से पहले भागने के पात्र का उपयोग करना होगा :

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.