VirtualBox मशीन का एक क्लोन बनाएं जो विंडोज को स्थापित करने के बाद विंडोज रि-एक्टिवेशन का कारण नहीं बनता है


14

विंडोज पर वर्चुअलबॉक्स स्थापित करने के लिए अधिकांश गाइड त्वरित विंडोज नौकरियों के लिए टेम्पलेट के रूप में कार्य करने के लिए आपको बताते हैं कि विंडोज स्थापित करने से पहले वर्चुअल मशीन तैयार करने के लिए कुछ कदम उठाए जाएं (सबसे अच्छा गाइड जो मुझे मिला: grahamrhay.wordpress.com ; एक और काफी अच्छा गाइड: www; .windowstablettv.com )। दुर्भाग्य से, मैंने वीएम पर विंडोज स्थापित करने और सक्रिय करने से पहले इन गाइडों को नहीं पढ़ा था जिसे मैं एक टेम्पलेट के रूप में उपयोग करना चाहता था।

मैं जानना चाहता हूं कि मेरे पहले से सक्रिय वीएम को इस तरह से कैसे क्लोन किया जाए जिसके लिए विंडोज से पुन: सक्रियण की आवश्यकता न हो।

टेम्पलेट वीएम डेफिनिशन फ़ाइल (वीएमबी के लिए वीबीओएक्स या एक्सएमएल फ़ाइल) में देखते हुए, /VirtualBox/Machine/Hardware(एक्सपीथ आईडी) नोड में कोई uuidविशेषता नहीं है। लेकिन, अगर मैं VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>टेम्पलेट VM के लिए एक नया UUID सेट करने के लिए उपयोग करने का प्रयास करता हूं , तो टेम्पलेट VM अपनी सक्रियण स्थिति खो देता है! (शुक्र है, मैंने टेम्पलेट का बैकअप बना लिया था।) इसलिए, अपने उद्देश्य को पूरा करने के लिए, मैं सिर्फ उन गाइडों का पालन नहीं कर सकता, जो मैं अभी तक विंडोज स्थापित नहीं कर चुका हूं।

जवाबों:


11

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

मैंने दौड़कर VBoxManage showvminfo <uuid|name>देखा कि UUIDमूल्यवान मूल्य से मेल खाता है Hardware UUID, जिससे मुझे यह पता चल गया कि अगर किसी VM परिभाषा uuidमें /VirtualBox/Machine/Hardwareनोड में कोई विशेषता नहीं है , तो VM "हार्डवेयर यूयूआईडी" मान के रूप में "मशीन यूआईडी" मूल्य का उपयोग करेगा। इसलिए, मेरे टेम्पलेट VM के लिए, इसमें एक "हार्डवेयर UUID" था जिसका मैं उपयोग कर सकता था; मुझे सिर्फ यह पता लगाना था कि मैं इसे किसी भी क्लोन में कैसे स्थानांतरित करूं।

यह सुनिश्चित करने के लिए कि यूयूआईडी स्थानान्तरण करता है, आप दो तरीकों में से एक ले सकते हैं:

  • आप टेम्पलेट VM परिभाषा फ़ाइल को सीधे संपादित कर सकते हैं। "हार्डवेयर UUID" केवल क्लोन में स्थानांतरित हो जाएगा अगर /VirtualBox/Machine/Hardwareहै uuidविशेषता। तो, /VirtualBox/Machine uuidविशेषता को कॉपी करें और इसे विशेषता में जोड़ें /VirtualBox/Machine/Hardware uuid। आप शायद इसके बाद वर्चुअलबॉक्स मशीन डेटाबेस को फिर से शुरू करना चाहते हैं, जो आप चला रहे हैं किसी भी वर्चुअलबॉक्स को बंद / मारकर। (VBoxSVC कभी-कभी विंडोज पर lingers; आपको टास्क मैनेजर से इसे मारना पड़ सकता है।)
  • आप अपने टेम्पलेट को क्लोन कर सकते हैं और एक नया टेम्पलेट VM बना सकते हैं, और फिर VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>नए टेम्पलेट के "हार्डवेयर UUID" को मूल टेम्पलेट के "मशीन UUID" / "हार्डवेयर UUID" पर सेट करने के लिए उपयोग कर सकते हैं। मैं कहता हूं कि आपको नया टेम्प्लेट VM बनाने के लिए VM को क्लोन करना होगा क्योंकि यदि आप मूल टेम्पलेट पर इस कमांड के साथ "हार्डवेयर UUID" सेट करने का प्रयास करते हैं, तो यह नोड में uuidविशेषता नहीं जोड़ेगा /VirtualBox/Machine/Hardware, क्योंकि यह अभी भी इसे लागू कर सकता है "मशीन UUID" से, और इस प्रकार यह मान किसी भी क्लोन को कॉपी नहीं करेगा।

यह स्पष्ट नहीं है कि आप किस वीएम के बारे में बात कर रहे हैं; यह भी उपयोग करना बेहतर हैVBoxManage modifyvm --hardwareuuid <uuid>
चार्ल्सबी

2
modifyvmआदेश सेट नहीं करेगा /VirtualBox/Machine/Hardwareनोड uuidविशेषता अगर आप वी एम के रूप में एक ही मूल्य के साथ एक UUID पारित /VirtalBox/Machineनोड uuidविशेषता। आपको VBOX फ़ाइल को सीधे संपादित करना होगा।
पालस्विम

3

यह पॉवरशेल स्क्रिप्ट काम करती है:

  1. उस मशीन को क्लोन करें जो पहले से सक्रिय है।
  2. कार्य प्रबंधक से पास वर्चुअलबॉक्स प्रीसेस होता है।
  3. इस स्क्रिप्ट को चलाएं, चर को अपने मूल्यों में बदल दें।

याद रखें कि आभासी मशीनों के नाम केस संवेदी हैं।

$ORIGVirtualMachineName="BaseDevWin7"
$clonedVirtualMachineName="DevWin7a"
$vboxDir="c:\Program Files\Oracle\VirtualBox"
cd $vboxDir
$uid=$($($(.\VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
.\VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid

2

ऊपर दिए गए संकेतों के लिए धन्यवाद कि मैंने फिर से सक्रियण के बिना परीक्षण उद्देश्यों के लिए कुबंटू मेजबान पर चलने वाले Win7 अतिथि के साथ एक मशीन को सफलतापूर्वक क्लोन किया है।

मेरी मशीन पहले से ही सक्रिय थी और (जैसा कि ऊपर वर्णित है) वास्तव में कोई हार्डवेयर यूयूआईडी नहीं था।

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

तो यह है कि यह मेरे मामले में फिर से सक्रियण के बिना अच्छी तरह से कैसे काम किया: 1) सामान्य फ़ाइल ब्राउज़र के साथ आभासी मशीन (फ़ोल्डर) की प्रतिलिपि बनाएँ। 2) एक साधारण पाठ संपादक में .vbox फ़ाइल खोलें। 3) जैसा कि "हार्डवेयर" के लिए कोई यूयूआईडी विशेषता नहीं थी, मशीन को "हार्डवेयर" प्रविष्टि के लिए मशीन यूयूआईडी विशेषता (जैसे uuid = "{xxx11111-2222-3333-4444-xxxxxxxxxxxx}") को कॉपी करें। 4) मशीन के लिए एक नया UUID उत्पन्न करें, जैसे uuidgenerator.net के साथ। 5) उत्पन्न यूयूआईडी मूल्य के साथ यूयूआईडी मशीन मूल्य को ओवरराइट करें। => हो गया।

VB प्रबंधक में समानांतर में दोनों मशीनों को प्रबंधित करने के लिए यह अधिक मुश्किल है:
1. क्लोन की हार्डडिस्क .vdi फ़ाइल का नाम बदलें।
2. कमांड लाइन में कमांड के माध्यम से हार्डडिस्क को एक नया यूयूआईडी प्रदान करें "VBoxManage internalcommands sethduuid .vdi। VBManager एक नया UUID सेट करेगा और इसे प्रदर्शित करेगा।
3. VB प्रबंधक में नई मशीन जोड़ें। नई हार्डडिस्क फ़ाइल को जोड़कर मशीन को संपादित करें। (और मूल vdi को हटा दें, अगर अभी भी मौजूद है)।

अब आपके पास सभी वर्चुअल मशीनों और हार्डडिस्क के लिए यूनिक आईडी है। आप समानांतर में VB प्रबंधक के भीतर दोनों मशीन का प्रबंधन कर सकते हैं।


1

फुल क्लोन मशीन। इसे शुरू न करें।

कमांड लाइन से:

VBoxManage संशोधित करें "क्लोन VM का नाम"

UUID के रूप में मूल मशीन से मशीन आईडी (या यदि वर्तमान में हार्डवेयर आईडी) का उपयोग करें।

उस UUID का उपयोग करने के लिए:

VBoxManage showvminfo "मूल VM नाम"

यह काम करना चाहिए। पहले से सक्रिय विंडोज 10 गेस्ट पर परीक्षण किया गया।


यह ज्यादातर मामलों में काम करता है, सिवाय इसके कि यूयूआईडी वीएम के /VirtalBox/Machineनोड की uuidविशेषता से मेल खाता है , जैसा कि प्रश्न और एक अन्य टिप्पणी से संकेत मिलता है।
पालस्विम

0

उपरोक्त उत्तर काम करता है! मैंने इसे विंडोज 10 टेम्पलेट पर परीक्षण किया।

"फुल क्लोन मशीन। इसे शुरू न करें। कमांड लाइन से: VBoxManage में संशोधित करें" क्लोन VM का नाम " मूल मशीन। उस UUID का उपयोग करने के लिए: VBoxManage showvminfo "मूल VM नाम"

यह काम करना चाहिए। पहले से सक्रिय विंडोज 10 गेस्ट पर परीक्षण किया गया।

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