एक वर्चुअल मशीन (वीएम) से एक भौतिक प्रणाली में माइग्रेट करें


124

Aka: मैं भौतिक डिस्क पर वास्तविक स्थापना के लिए .vdi या .vmdk को कैसे परिवर्तित कर सकता हूं?

क्या भौतिक मशीन पर उबंटू की वर्चुअल मशीन स्थापना को स्थानांतरित करना संभव / संभव है? यदि संभव हो, तो यह पूरा करना कितना मुश्किल होगा और प्रवास की तैयारी के लिए मुझे कौन से कदम उठाने होंगे।

मैं एक वीएम पर कुछ परीक्षण करना चाहता हूं और अगर यह काम करता है तो उस सिस्टम को भौतिक हार्डवेयर में सब कुछ पुनः इंस्टॉल करने के बजाय माइग्रेट करता है। क्या यह संभव है?


जवाबों:


98

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

प्रारंभिक चरण: डिस्क को कुछ उपयोगी में परिवर्तित करें

VMWare और VirtualBox (दूसरों के बीच) दोनों डिस्क स्वरूपों का उपयोग करते हैं जो सीधे डिस्क पर सीधे लिखे जाने के लिए अच्छी तरह से उधार नहीं देते हैं। आप कर सकते हैं, लेकिन मैं व्यक्तिगत रूप से इसे एक मध्यस्थ, मानक छवि पर लिखने के लिए अधिक सुविधाजनक महसूस कर रहा हूं। आप अपने मौजूदा सिस्टम से बिना लाइवसीडी के बूट कर सकते हैं।

  • एक टर्मिनल और आग में लोड करें:

    cd /media/wherever-the-image-is/
    
    # for VMWare
    sudo apt-get install qemu-kvm
    qemu-img convert your-vmware-disk.vmdk -O raw disk.img
    
    # For VirtualBox
    VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW
    
  • /media/wherever-the-image-is/disk.imgउस जगह ले जाएं जहां आप लिखने के बारे में नहीं हैं। यदि आप इसे उस डिस्क पर लिखने की योजना बना रहे हैं जिस पर यह वर्तमान में बैठा है, तो आप इसे एक अलग आंतरिक डिस्क पर चिपकाना चाहेंगे, या, सबसे खराब-से-सबसे खराब बाहरी डिस्क।

  • निम्न निर्देश मान लें कि आप इसे स्थानांतरित कर चुके हैं /media/dave/disk.img( daveएक बाहरी USB डिस्क है)

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

छवि को अपनी स्वयं की डिस्क पर लिखें

आप ऐसा कुछ करना चाहेंगे। यह मानता है कि आप एक पूरी डिस्क को अधिलेखित करने जा रहे हैं। यदि आप एक साथ विंडोज-इंस्टाल करना चाहते हैं, तो इन निर्देशों का पालन न करें! गोलियों के बाद छोड़ दें।

  • एक उबंटू लाइव सीडी में बूट करें और कोशिश करें उबंटू पर क्लिक करें।

  • अपनी वह जगह माउंट करें जहां आपकी vmdk छवि संग्रहीत की जा रही है (उदाहरण के लिए बाहरी USB डिस्क /media/dave)। उस स्थान को माउंट करें जहां आप लिखना चाहते हैं।

  • फिर हम काम पर जाते हैं:

    sudo dd if=/media/dave/disk.img of=/dev/sdX
    

    आप sdXअपने गंतव्य डिस्क पर सही पथ से प्रतिस्थापित करना चाहते हैं । sudoपासवर्ड खाली, बदले सिर्फ मारा है।

  • तब आप खोल सकते हैं gpartedया कुछ और कर सकते हैं और आपको डिस्क पर बैठे अपने उबंटू विभाजन को देखना चाहिए। आपको इसका विस्तार करने में सक्षम होना चाहिए।

एक अन्य ऑपरेटिंग सिस्टम के साथ डिस्क पर छवि लिखें

यह शायद चीजों को करने का एक पूरी तरह से सुरक्षित तरीका है। विचार बहुत समान है इसके अलावा आप उबंटू की एक उचित स्थापना करते हैं और फिर फ़ाइलों से बस सिंक करते हैं disk.img

  • इस बार आपके लाइवसीडी को उबंटू के उसी संस्करण के रूप में आपके वर्चुअल इंस्टॉल के रूप में होना चाहिए। लाइव सीडी में बूट करें और, फिर से, इंस्टॉल पर क्लिक करें।

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

  • अपने नए इंस्टॉल के विभाजन और अपनी बाहरी डिस्क को माउंट करें जहां आपने पहले से संग्रहीत किया disk.imgहै (बस उन्हें नॉटिलस में डबल क्लिक करें)।

  • किसी टर्मिनल में अपनी डिस्क माउंट करें। आईएसओ:

    sudo mkdir /media/oldinstall
    sudo mount -o loop /media/dave/disk.img /media/oldinstall
    

    -नोट - वांछित .img फ़ाइल बनाने के बाद, कभी-कभी जब आप इसे लूप डिवाइस के रूप में माउंट करने का प्रयास करते हैं तो आपको निम्न त्रुटि मिल सकती है

    "NTFS हस्ताक्षर गायब है। '/ dev / loop0' माउंट करने में विफल: अमान्य तर्क डिवाइस '/ dev / loop0' के पास मान्य NTFS नहीं है।"

    .Img फ़ाइल में कभी-कभी मास्टर बूट रिकॉर्ड और वास्तविक विभाजन से पहले एक विभाजन तालिका होती है जिसे आप माउंट करना चाहते हैं। इसलिए आपको आवश्यक विभाजन का पता लगाने की आवश्यकता है। इसके लिए, कोई पार्टी किए गए टूल का उपयोग कर सकता है । एक उदाहरण के लिए, sisco311 के उत्तर को इस लिंक http://ubuntuforums.org/archive/index.php/t-1576011.html पर देखें

    इसलिए, यदि आपने अपने ऑफसेट को 'xxx' होने के लिए निर्धारित किया है, तो आप अपने विभाजन का उपयोग करके माउंट कर सकते हैं

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • वहाँ से आप या तो चेरी-पिक फाइल्स ले सकते हैं या सिर्फ अपने नए उबंटू के शीर्ष पर सब कुछ कॉपी कर सकते हैं जैसे कुछ का उपयोग करके स्थापित करें:

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • रिबूट और आपको अपने पुराने VMWare इंस्टॉल के साथ स्वागत किया जाना चाहिए , लेकिन नंगे धातु पर। यदि आपको गंदे मुद्दे मिलते हैं, तो आप इसे लाइव सीडी पर वापस जाकर ठीक कर सकते हैं, चीजों को काट सकते हैं और ठीक कर सकते हैं


7
क्या आप एक ऐसे उपकरण के बारे में जानते हैं जो यह स्वचालित रूप से करता है?
the_drow

1
विंडोज / वर्चुअलबॉक्स पर सेटअप के लिए, VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXकमांड अभी भी काम करेगा। Program Files\Oracle\VirtualBoxपहली कमांड को चलाने से पहले सभी की जरूरत होती है ।
ऑस्ट

2
@ मुझे संदेह है कि /dev/sdXविंडोज में वैध लक्ष्य है। AFAIK यह \\Device\Harddisk0या ऐसा कुछ होगा।
दनाटेला

3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXकाम नहीं करता है। लिनक्स में यह त्रुटि देता है VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS:। VBoxManageपहले एक छवि पर भेजने के लिए कमांड का उपयोग करना आवश्यक है । फिर छवि को भौतिक डिस्क पर रखने के लिए डीडी का उपयोग करें।
LD जेम्स

8

शायद यह वही नहीं है जो आप पूछ रहे हैं, लेकिन यह पूरा हो सकता है कि आप क्या करना चाहते हैं।

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

आप एक बहुत ही साफ बैकअप प्रोग्राम का उपयोग कर सकते हैं जिसे Déjà Dup कहा जाता है ।

Ubuntu सॉफ्टवेयर सेंटर से जानकारी:

Déjà Dup एक साधारण बैकअप टूल है। यह राईट वे (एन्क्रिप्टेड, ऑफ-साइट और रेगुलर) का बैकअप लेने की जटिलता को छुपाता है और बैकएंड के रूप में दोहराव का उपयोग करता है।

विशेषताएं:

  • स्थानीय, दूरस्थ या क्लाउड बैकअप स्थानों के लिए समर्थन, जैसे कि अमेजन S3 या रैकस्पेस क्लाउड फाइल्स

  • सुरक्षित रूप से आपके डेटा को एन्क्रिप्ट और संपीड़ित करता है

  • इंक्रीमेंटल बैक अप, आपको किसी विशेष बैकअप से पुनर्स्थापित करने देता है

  • अनुसूचियां नियमित बैकअप

  • अपने गनोम डेस्कटॉप में अच्छी तरह से एकीकृत करता है

यहां छवि विवरण दर्ज करें

आपको दो घंटे से भी कम समय में किया जाएगा!

सौभाग्य!


1
आसान लगता है। क्या s / o पुष्टि कर सकता है कि यह वास्तव में इस तरह से काम करता है?
14

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

5

UDPCast का प्रयास करें

यह विचार आपके पूरे vmdk को वर्चुअल मशीन से भौतिक मशीन में प्रवाहित करने का है, जहाँ इसे भौतिक hdd को लिखा गया है।

प्रक्रिया नीचे उल्लिखित है।

चूंकि आपके पास एक vmdk फ़ाइल है, तो आपके पास अपने निपटान में VMWare वर्कस्टेशन हो सकता है, यहां तक ​​कि वर्चुअल मशीन को पूरा करने के लिए यह vmdk से जुड़ा हुआ है। इस विशेष vmdk के साथ अपनी वर्चुअल मशीन को चलाएँ, लेकिन साधारण बूट के बजाय से बूट करने के लिए PartedMagic liveCD का उपयोग करें।

जब लाइवसीडी शुरू हो जाती है, तो मुख्य मेनू पर जाएं और खोजें UDPCast Disk Cloning। इसके संवाद स्व-व्याख्यात्मक हैं (स्क्रीनशॉट देखें) UDPCast डिस्क क्लोनिंग स्टार्ट स्क्रीन

होने के लिए इस वर्चुअल मशीन का चयन करने के बाद sender, आपको यह चुनना चाहिए कि आप किस ड्राइव को प्रसारित करना चाहते हैं (यूनिक्स संकेतन, जैसे कि / dev / sda का उपयोग करके)।

आप आरंभ करने के बाद sender, आप शुरू करने की आवश्यकता receiverके रूप में अच्छी तरह से। चूंकि आपके पास एक भौतिक hdd है, इसलिए मैं मान रहा हूं, आपके पास इस hdd के साथ एक पूर्ण पीसी भी है। यहाँ एक ही बात: आप के साथ LiveCD शुरू करने की आवश्यकता UDPCast Disk Cloningका चयन receiverइस समय के साथ-साथ उचित शारीरिक HDD।

वर्थ नोटिंग, कि आप अपने वर्चुअल मशीन और भौतिक हार्डवेयर के बीच नेटवर्क कनेक्टिविटी के लिए सभी आवश्यक व्यवस्थाएं करें। यदि आपके vmdk में निजी डेटा शामिल है, तो आपको आवश्यक सावधानी बरतनी चाहिए, क्योंकि इसकी सामग्री आपके नेटवर्क पर प्रभावी रूप से स्ट्रीमिंग होगी। एक और बात यह है कि आपके लक्ष्य HDD में आपके vmdk की क्षमता से कम संग्रहण क्षमता नहीं होनी चाहिए। यह स्पष्ट है, लेकिन यह भी ध्यान देने योग्य है कि आपकी छवि को आपके लक्ष्य hdd पर वन-टू-वन रखा गया है और आपको gparted के साथ उपयुक्त संचालन करने की आवश्यकता है या अपने नए hdd की अधिक क्षमता का उपयोग करने की तरह।


मैं यह नोट करना चाहूंगा, कि यह विधि वास्तव में सीधी और अपेक्षाकृत आसान है। अर्थात्, आपको केवल एक ही कदम उठाने की आवश्यकता है, अपने लाइवसीडी को UDPCast के साथ उस पर या किसी अन्य LiveCD के साथ तैयार करने के लिए, जो UDPCast को डाउनलोड करने और चलाने के लिए पर्याप्त है। यदि आपके पास कुछ आभासी एचडी छवि है, तो आपने निश्चित रूप से एक वर्चुअल मशीन में इसका उपयोग किया है, जो पहले से ही सेट और तैयार है, दूसरी तरफ आपने अपना भौतिक सिस्टम तैयार किया है और यह कार्य के लिए भी तैयार है।
PF4Public

अधिक: UDPCast को PXE से सीधे चलाया जा सकता है। udpcast.linux.lu/bootloader.html#pxe
PF4Public

4

यदि आपने VirtualBox स्थापित किया है, तो आप कमांड का उपयोग करके VDI (वर्चुअलबॉक्स ड्राइव छवि) फ़ाइल को IMG प्रारूप में बदल सकते हैं VBoxManage, फिर भौतिक डिस्क में कॉपी कर सकते हैं, जैसे

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

तब आप ddफ़ाइल को भौतिक विभाजन में कॉपी करने के लिए कमांड का उपयोग कर सकते हैं :

dd if=./file.img of=/dev/<partition_here>

नोट: यदि आवश्यक हो तो sudo का उपयोग करें। / देव में सही उपकरण निर्दिष्ट करते समय सावधान रहें।


0

यदि आपके पास वीएम वर्चुअल डिस्क पर मशीन से जुड़ी नई भौतिक डिस्क है, तो आप एक मध्यवर्ती रूपांतरण के बिना VDI को भौतिक में परिवर्तित कर सकते हैं, शायद समय और डिस्क स्थान का एक गुच्छा बचा सकते हैं। यह मान रहा है कि आपकी भौतिक डिस्क वर्चुअल डिस्क के अधिकतम आकार से समान या बड़ी है। मेरे मामले में, लक्ष्य एक वीडीआई को ZFS zvol में परिवर्तित करना था, लेकिन दृष्टिकोण किसी भी ब्लॉक डिवाइस के साथ समान होना चाहिए।

पहले अपने ब्लॉक डिवाइस की ओर इशारा करते हुए VMDK फाइल बनाएं:

VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX

तब (VM शटडाउन के साथ!) आप VMDK को VDI क्लोन कर सकते हैं:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

यह थोड़ा समय लगेगा ... जब यह पूरा हो जाएगा, तो आप VMDK फ़ाइल को हटा सकते हैं क्योंकि यह केवल VirtualBox के लिए एक संकेतक के रूप में भौतिक डिवाइस को खोजने के लिए उपयोग किया गया था।

मेरे मामले में, नया zvol बिल्कुल वर्चुअल डिस्क के आकार जैसा था। यह देखते हुए कि आपकी भौतिक डिस्क संभवतः भिन्न है, आपको पूर्ण डिस्क को भरने के लिए किसी प्रकार के विभाजन आकार देने वाले तंत्र को नियोजित करना होगा। गपशप या शायद कुछ। आपको यह इंगित करने में सक्षम होना चाहिए कि अभी भी VM मशीन से संलग्न होने के दौरान भौतिक / देव / sdX डिवाइस पर, ताकि आपको CD के भौतिक होस्ट को बूट करने का सहारा न लेना पड़े।

एक बार आकार बदलने के बाद, अपनी भौतिक मशीन में ड्राइव को पॉप करें, आप उंगलियों को पार करें, और पावर अप करें।

उस स्थिति में जब आप VirtualBox के साथ भौतिक ड्राइव का उपयोग करना चाहते थे, VMDK को चारों ओर रखें, और VBoxManage storageattachइसे VM से कनेक्ट करने के लिए उपयोग करें।


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