VMWare के विपरीत, हाइपर-V में वर्चुअल मशीन्स को क्लोन करने के लिए बिल्ट-इन फीचर नहीं है (क्लोनिंग केवल वर्चुअल मशीन मैनेजर में उपलब्ध है)। किसी मौजूदा VM की पूरी कॉपी बनाने के लिए, आपको हाइपर-V के इम्पोर्ट और एक्सपोर्ट फीचर्स का उपयोग करना होगा। इस लेख में, हम दिखाएंगे कि हाइपर-V मैनेजर GUI, पावरशेल, और विंडोज एडमिन सेंटर (WAC) का उपयोग करके इम्पोर्ट और एक्सपोर्ट के साथ हाइपर-V में वर्चुअल मशीन को कैसे क्लोन किया जाए।
विंडोज चलाने वाली वर्चुअल मशीन को क्लोन करते समय, याद रखें कि VM कॉपी का सोर्स के समान SID होगा। आपको विंडोज गेस्ट SID को रीसेट करने के लिए Sysprep टूल का उपयोग करना होगा। यदि आपने एक रेफरेंस विंडोज इमेज बनाई है, तो क्लोनिंग से पहले इसमें नीचे दी गई कमांड चलाएं:
%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
VM शट डाउन हो जाएगा और अगले स्टार्टअप पर सोर्स VM और उसकी क्लोन कॉपी दोनों पर नए SIDs जनरेट होंगे। साथ ही, एक्टिव डायरेक्टरी डोमेन से जुड़ी VM को क्लोन करना अनुशंसित नहीं है।
हाइपर-V मैनेजर में VMs एक्सपोर्ट और इम्पोर्ट करना
पहले, एक VM को अलग डायरेक्टरी में एक्सपोर्ट करें। हाइपर-V मैनेजर कंसोल खोलें, VM पर राइट-क्लिक करें और संदर्भ मेनू में एक्सपोर्ट चुनें।
विंडोज सर्वर 2012 R2 और नए पर हाइपर-V में (फ्री हाइपर-V सर्वर सहित), आप रनिंग वर्चुअल मशीन्स को भी बिना रोके एक्सपोर्ट कर सकते हैं।
वह डायरेक्टरी निर्दिष्ट करें जिसमें आप वर्चुअल मशीन एक्सपोर्ट करना चाहते हैं।
VM एक्सपोर्ट स्टेटस आपके हाइपर-V कंसोल में VM स्टेट पेन में प्रदर्शित होगा।
कई एडमिन्स VM एक्सपोर्ट का उपयोग हाइपर-V में VM का बैकअप लेने के सबसे आसान तरीके के रूप में करते हैं।
आप वर्चुअल मशीन के एक विशिष्ट चेकपॉइंट (स्नैपशॉट) को एक्सपोर्ट कर सकते हैं। ऐसा करने के लिए, चेकपॉइंट्स ट्री में आवश्यक चेकपॉइंट पर राइट-क्लिक करें और एक्सपोर्ट चुनें।
VM इम्पोर्ट करने के लिए, हाइपर-V मैनेजर में होस्टनाम पर क्लिक करें और वर्चुअल मशीन इम्पोर्ट करें चुनें।
फिर उस डायरेक्टरी का पथ निर्दिष्ट करें जहां इम्पोर्ट की गई VM फाइल्स वाले फोल्डर्स स्थित हैं। जब आप हाइपर-V में VM इम्पोर्ट करते हैं, तो आपको होस्ट पर VM रजिस्ट्रेशन के 3 विकल्प दिए जाते हैं:
- वर्चुअल मशीन को स्थानांतरित करें (मौजूदा अद्वितीय ID का उपयोग करें) — इम्पोर्ट की गई फाइल्स वाले डायरेक्टरी में VM रजिस्टर करें (VM ID वही रहता है)
- वर्चुअल मशीन को रिस्टोर करें (मौजूदा अद्वितीय ID का उपयोग करें) — VM फाइल्स को दूसरे फोल्डर में कॉपी करें (मूल VM ID बरकरार रहता है)
- वर्चुअल मशीन को कॉपी करें (नया अद्वितीय ID बनाएं) — VM को दूसरी डायरेक्टरी में कॉपी करें और नया VM ID जनरेट करें
हाइपर-V होस्ट पर प्रत्येक VM का एक ID होता है जो होस्ट के भीतर अद्वितीय होना चाहिए। यदि आप किसी VM को दूसरे होस्ट पर इम्पोर्ट या क्लोन करते हैं, तो आपको VM ID बदलने की आवश्यकता नहीं है।
यदि आप डुप्लीकेट ID वाले VM को इम्पोर्ट करने का प्रयास करते हैं, तो निम्न त्रुटि होती है:
ऑपरेशन विफल रहा क्योंकि उसी पहचानकर्ता वाली एक वर्चुअल मशीन पहले से मौजूद है। एक नया पहचानकर्ता चुनें और ऑपरेशन को फिर से प्रयास करें।
नए ID के साथ VM क्लोन बनाने के लिए, हमने तीसरा विकल्प चुना है। विज़ार्ड आपको वह फोल्डर निर्दिष्ट करने के लिए कहता है जहां आप VM फाइल्स रखना चाहते हैं। डिफ़ॉल्ट रूप से, हाइपर-V होस्ट सेटिंग्स में निर्दिष्ट फोल्डर्स उपयोग किए जाते हैं।
फिर वह डायरेक्टरी चुनें जहां वर्चुअल मशीन के वर्चुअल डिस्क (vhdx फाइल्स) स्टोर किए जाएंगे।
फिर एक नई क्लोन की गई वर्चुअल मशीन आपके हाइपर-V कंसोल में दिखाई देगी।
पावरशेल के साथ हाइपर-V VMs को कैसे एक्सपोर्ट, इम्पोर्ट, और क्लोन करें?
आइए देखते हैं कि पावरशेल का उपयोग करके एक्सपोर्ट/इम्पोर्ट के साथ हाइपर-V वर्चुअल मशीन को कैसे क्लोन किया जाए।
VM एक्सपोर्ट करने के लिए, नीचे दी गई कमांड चलाएं:
Export-VM -Name win10 -Path 'C:\VHD\export'
यदि आप रनिंग VM एक्सपोर्ट करना चाहते हैं, तो आप CaptureLiveState विकल्प का उपयोग कर सकते हैं जो निर्धारित करता है कि VM मेमोरी कैसे एक्सपोर्ट की जाए। तीन विकल्प उपलब्ध हैं:
CaptureSavedState– मेमोरी एक्सपोर्ट करें (डिफ़ॉल्ट)CaptureDataConsistentState– हाइपर-V प्रोडक्शन चेकपॉइंट से VM स्टेट एक्सपोर्ट करेंCaptureCrashConsistentState– मेमोरी कंटेंट सेव न करें
Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState
यदि आप विशिष्ट चेकपॉइंट से VM स्टेट एक्सपोर्ट करना चाहते हैं, तो उसका नाम निर्दिष्ट करें।
पहले, VM के लिए उपलब्ध चेकपॉइंट्स की सूची प्रदर्शित करें:
Get-VMSnapshot -VMName win10
फिर उसके नाम से चेकपॉइंट एक्सपोर्ट करें:
Export-VMSnapshot -Name "win10 - (6/17/2021 - 3:12:205 PM) Standard" -VMName win10 -Path 'C:\VHD\export'
VM एक्सपोर्ट होने के बाद, आप इसे इम्पोर्ट कर सकते हैं। यदि आप VM को स्थानांतरित रजिस्टर करना चाहते हैं, तो निम्न कमांड चलाएं:
Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx"
Path विकल्प में, VM कॉन्फिगरेशन फाइल का स्थान निर्दिष्ट करें (VMCX फाइल फॉर्मेट ने हाइपर-V सर्वर 2016 में VM कॉन्फिगरेशन फाइल्स के XML फॉर्मेट को प्रतिस्थापित किया)। VM को उसी ID के साथ दूसरे फोल्डर में कॉपी करने के लिए, Copy विकल्प का उपयोग करें। नया VM ID जनरेट करने के लिए, GenerateNewId विकल्प का उपयोग करें:
Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"
VhdDestinationPath वह डायरेक्टरी निर्दिष्ट करता है जहां VM की VHDX फाइल्स कॉपी की जाएंगी, और VirtualMachinePath VM कॉन्फिगरेशन फाइल्स की डायरेक्टरी सेट करता है। यदि विकल्प सेट नहीं हैं, तो VM फाइल्स हाइपर-V होस्ट सेटिंग्स में निर्दिष्ट डिफ़ॉल्ट डायरेक्टरी में कॉपी की जाएंगी (C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\)।
आप चेकपॉइंट्स (SnapshotFilePath) और पेजफाइल (SmartPagingFilePath) को स्टोर करने के लिए फोल्डर्स भी सेट कर सकते हैं।
ध्यान दें कि क्लोन की गई VM सोर्स VM नाम के साथ हाइपर-V कंसोल में दिखाई दी है। आइए इसे रीनेम करें, लेकिन पहले हमें इसका VMID चाहिए:
get-vm | select VMNAME,VMId
जैसा कि आप देख सकते हैं, होस्ट पर दो VMs हैं जिनका नाम समान है और IDs अलग हैं। उस VM को रीनेम करें जिसका ID इम्पोर्ट किए गए VM के ID से अलग है। नई VM का ID कॉपी करें और इसे रीनेम करें:
get-vm | Where-Object {$_.VMId -eq "9a9d3332-f332-a231-8abc-9221aab32287"} | Rename-VM -NewName win10_2
फिर आप वर्चुअल हार्ड डिस्क फाइल को भी रीनेम कर सकते हैं:
Get-VHD -VMId 9a9d3332-f332-a231-8abc-9221aab32287| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"
अपने वर्चुअल एडाप्टर का MAC पता बदलें (आप नया स्टेटिक MAC पता निर्दिष्ट कर सकते हैं या डायनामिक रूप से MAC पता प्राप्त करने के लिए कॉन्फिगर कर सकते हैं)।
Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2
अपने नए VM को नेटवर्क से कनेक्ट करने से पहले, इसे रीनेम करने और इसके IP पते को नए में बदलने की सिफारिश की जाती है (यदि आप अपने LAN में DHCP का उपयोग कर रहे हैं, तो आप इस चरण को छोड़ सकते हैं)। फिर आप Invoke-Command या Enter-PSSession कमांडलेट का उपयोग करके अपने नए VM से पावरशेल डायरेक्ट के माध्यम से कनेक्ट कर पाएंगे:
Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias "Ethernet" -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.13.71 -InterfaceAlias "Ethernet" -AddressFamily IPv4 -PrefixLength 24
Restart-Computer
विंडोज एडमिन सेंटर का उपयोग करके हाइपर-V वर्चुअल मशीन्स को कैसे क्लोन करें?
आप विंडोज एडमिन सेंटर v2009 या नए में एक्सपोर्ट और इम्पोर्ट के बिना सीधे हाइपर-V VM को क्लोन कर सकते हैं।
WAC चलाएं, वर्चुअल मशीन्स सेक्शन चुनें, और फिर VM -> प्रबंधित -> क्लोन पर क्लिक करें।
फिर अपने नए VM का नाम निर्दिष्ट करें और वह डायरेक्टरी चुनें जहां आप इसकी फाइल्स रखना चाहते हैं।
ध्यान दें कि क्लोन विज़ार्ड में "मैंने पहले ही अपने VM पर Sysprep चलाया है" विकल्प है। यदि आपने Sysprep का उपयोग करके इमेज को जनरलाइज़ नहीं किया है और इस विकल्प को सक्षम नहीं किया है, तो हाइपर-V सोर्स VM का स्नैपशॉट बनाएगा, Sysprep चलाएगा, और इसे नए VM में क्लोन करेगा (सोर्स VM कई बार पुनरारंभ होगा और प्रक्रिया के दौरान उपयोग के लिए उपलब्ध नहीं होगा)। फिर सोर्स VM को उसकी मूल स्थिति में वापस कर दिया जाएगा, और स्नैपशॉट हटा दिया जाएगा।
नॉन-विंडोज गेस्ट OS वाली किसी भी VM को क्लोन करते समय, हमेशा ऊपर वर्णित विकल्प को सक्षम करें।
VM क्लोन होने तक प्रतीक्षा करें। नया ID नए VM को स्वचालित रूप से असाइन किया जाएगा।