क्या आभासी मशीनों को भौतिक वातावरण में परिवर्तित करना संभव है?


78

क्या .vdi फ़ाइल को .iso में बदलना संभव है जिसे सीडी या डीवीडी में जलाया जा सकता है और इसे इंस्टॉलर की तरह बनाया जा सकता है। या आभासी मशीनों को भौतिक वातावरण में परिवर्तित करना संभव है?


1
AskUbuntu.com पर यह उत्तर संभवतः लिनक्स होस्ट मशीनों पर चलने वाले बहुत सारे परिवेशों पर लागू होता है: askubuntu.com/a/32506/31592
blong

जवाबों:


64

हां और ना।

आप VDI को VBoxManage टूल के साथ डिस्क इमेज में बदल सकते हैं । यह कमांड एक रजिस्टर्ड वर्चुअल डिस्क इमेज को दूसरी इमेज फाइल में क्लोन करता है। यदि आप अपनी वर्चुअल डिस्क को किसी अन्य प्रारूप में बदलना चाहते हैं, तो यह [*] उपयोग करने के लिए आधिकारिक वर्चुअलबॉक्स टूल है।

VBoxManage clonehd file.vdi output.img --format RAW
  • यदि आप एक गतिशील VDI का उपयोग कर रहे हैं, और आपके पास वर्चुअलबॉक्स का पुराना संस्करण है, तो क्लोन ठीक से काम नहीं कर सकता है। VBoxManage के internalcommands उपकरण शामिल converttoraw है, जो एक कच्चे डिस्क छवि (में एक गतिशील वीडीआई परिवर्तित कर सकते हैं स्रोत ) [+]।

VBoxManage internalcommands converttoraw file.vdi output.img

लेकिन ... वह आउटपुट IMG फ़ाइल एक ISO छवि नहीं है, और जो OS स्थापित है वह बूट करने योग्य CD / DVD से चलाने के लिए कॉन्फ़िगर नहीं किया जाएगा। आप हार्ड ड्राइव पर IMG को "बर्न" (लिख) सकते हैं, और यह नंगे हार्डवेयर पर बूट कर सकता है (उदाहरण के लिए वर्चुअल मशीन में नहीं)। लेकिन ऐसा नहीं हो सकता है, क्योंकि उस IMG पर स्थापित OS को वर्चुअल हार्डवेयर जो VirtualBox प्रदान करता है, देखने की उम्मीद कर रहा है, और आप इसे वास्तविक हार्डवेयर पर बूट कर रहे हैं, जिसकी वह अपेक्षा नहीं कर रहा है।

विंडोज के कुछ संस्करण इस स्थिति को अच्छी तरह से संभाल नहीं पाते हैं; कुछ लिनक्स वितरण करते हैं। कभी-कभी एक ओएस (पहले या बाद में) को कॉन्फ़िगर करना संभव होता है ताकि इसे एक पर्यावरण से दूसरे में इस तरह से स्थानांतरित किया जा सके, लेकिन विशिष्ट चरण पूरी तरह से ओएस पर माइग्रेट होने पर निर्भर करते हैं।


विंडोज पर, आपको कार्यक्रम के लिए पूर्ण पथ निर्दिष्ट करना पड़ सकता है:

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

लघु संस्करण का उपयोग करने के लिए अपने PATH में C: \ Program Files \ Sun \ VirtualBox जोड़ें ।


[*] मैं मान रहा हूं कि "--फॉर्म रॉ" विकल्प एक मानक डिस्क छवि में परिवर्तित हो जाएगा, जैसे कि आपने भौतिक हार्डड्राइव पर dd कमांड का उपयोग किया है । लेकिन स्पष्ट रूप से, मुझे ऐसा कोई दस्तावेज नहीं मिला है जो इस बात का समर्थन करता है, इसलिए ध्यान रखें कि यह सही नहीं हो सकता है।

[+] मैंने अभी-अभी वर्चुअलबॉक्स 3.1.2 के तहत दोनों कमांड्स का परीक्षण किया है। दोनों आउटपुट फाइलें md5sum के अनुसार समान हैं , लेकिन मैंने आउटपुट फाइलों का पूरी तरह से परीक्षण नहीं किया है।

वर्चुअलबॉक्स मंचों पर "सभी VDI के बारे में" ट्यूटोरियल भी देखें ।


3
VDI के आकार के बारे में क्या? क्या वो वजह बन रही हे? मान लीजिए कि VDI का आकार 20GB है और वास्तव में HDD का आकार 200GB है ... क्या होगा?
पन्ना

वह पहली विधि "क्लोन" धीमी गति से लगती है। लेकिन दूसरे ने एक इलाज किया।
मैट एच

1
यह भी ध्यान दें कि यदि आप बूट करने के लिए एक विंडोज़ ओएस प्राप्त करने का प्रबंधन करते हैं तो आपको ज्यादातर मामलों में इसे फिर से सक्रिय करना होगा।
किममैक्स

यदि आप sysprep /generalizeपहले वर्चुअल इंस्टॉल में थे तो क्या होगा ? यह निश्चित रूप से नए हार्डवेयर (या इस मामले में भौतिक हार्डवेयर) पर स्थापित होने के लिए इंस्टॉल तैयार करेगा
रोबुला

1
@Pwnna आप हार्ड डिस्क के एक img की नकल कर रहे हैं (न केवल एक विभाजन बल्कि विभाजन के साथ एक संपूर्ण विभाजन मानचित्र)। मैंने इसे अतीत में किया है और याद है कि यह उत्तर क्या बताता है, अप्रयुक्त / अप्रतिबंधित स्थान अंत में: serverfault.com/questions/268889/…
sudo

21

यदि आपकी vdi फ़ाइल में विभाजन हैं और आप उनमें से केवल एक का उपयोग करना चाहते हैं, तो निम्न का उपयोग करें:

सबसे पहले, जैसा कि क्वैक क्विकोट ने कहा है, vdi फ़ाइल को कच्ची छवि फ़ाइल में बदलें:

# VBoxManage clonehd file.vdi file.raw --format RAW

फिर छवि के लिए एक लूप डिवाइस सेट करें:

# loopdev=$(losetup --show -r -f file.raw)

कच्ची फ़ाइल में प्रत्येक विभाजन के लिए उपकरण बनाने के लिए kpartx का उपयोग करें:

# apt-get install kpartx
# kpartx -a $loopdev

देखें कि हमारे पास अब कौन से उपकरण हैं। इस उदाहरण में, केवल एक उपकरण है क्योंकि कच्ची छवि में केवल एक ही विभाजन है:

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

अब इसे सत्यापित करने के लिए माउंट करें कि सभी ठीक से काम करते हैं:

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

विभाजन सामग्री को किसी अन्य लक्ष्य विभाजन में कॉपी करने के लिए dd का उपयोग करें:

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

आपके द्वारा डिवाइस मैपिंग को फिर से निकालने के बाद:

# kpartx -d file.raw

क्या यह विंडोज के साथ संभव है?
एहसान

13

जवाब एक निश्चित हाँ है, यदि आपका होस्ट और अतिथि सिस्टम लिनक्स है। यह संकुल qemuऔर के साथ किया जाता है TKLPatch। आप VDI या VMDK दोनों फ़ाइलों का उपयोग कर सकते हैं।

अधिक पढ़ें:


3
+1 "निश्चित" कैविएट के साथ ".. जब तक आपका मेहमान लिनक्स है" । और उनका (आपका?) समाधान कुछ टर्नकी लिनक्स उपकरणों पर निर्भर करता है। लेकिन प्रक्रिया ध्वनि लग रहा है। (सुपर यूजर में आपका स्वागत है!)
क्विक्सोटे को क्विकोट करें

5

मैंने स्वीकार किए गए उत्तरVBoxManage clonehd file.vdi output.img --format RAW से कोशिश की लेकिन बहुत सफलता के बिना।

विंडोज 7 होस्ट पर विंडोज 8.1 वर्चुअल मशीन के साथ मेरे लिए क्या काम किया गया है:

  1. VirtualBox में विंडोज 8.1 मशीन बनाएं, इंस्टॉल करें और उपयोग करें जैसा कि आप सामान्य रूप से वीएम के साथ करते हैं।
  2. वर्चुअल बॉक्स .vdi हार्ड डिस्क को Windows VHD के साथ बदलेंVBoxManage clonehd source.vdi target.vhd --format vhd
  3. एक ड्राइव के रूप में मेजबान विंडोज मशीन में VHD माउंट करें (आप कंप्यूटर प्रबंधन में डिस्क प्रबंधक में एक VHD माउंट कर सकते हैं।
  4. एक अन्य नई हार्ड डिस्क (मेरे मामले में एक यूएसबी संलग्न लैपटॉप एचडी) ड्राइवआईएमज एक्सएमएल या एक समान डिस्क क्लोनिंग टूल में वीएचडी (ड्राइव के रूप में घुड़सवार) को क्लोन करें। अब आपने मूल रूप से वर्चुअल हार्ड डिस्क .vdi को नंगे धातु पर क्लोन किया है।
  5. एक मशीन में नई हार्ड डिस्क स्थापित करें। (मेरे मामले में लैपटॉप HDD स्वैप)
  6. एक विंडोज 8.1 डालें यूएसबी / सीडी स्थापित करें, उसमें से बूट करें, उन्नत विकल्प और स्वचालित मरम्मत चुनें। स्वचालित मरम्मत नई हार्ड डिस्क को बूट करने योग्य बनाएगी।
  7. क्लोन किए गए विंडोज 8.1 के साथ नई हार्ड डिस्क से बूट करें और विंडोज अपडेट चलाएं। यह आपके कंप्यूटर के हार्डवेयर के लिए ड्राइवरों को डाउनलोड करेगा, जिन्हें पता नहीं था कि आप वर्चुअलबॉक्स में विंडोज कब चलाते हैं। यदि कोई हो तो आपको मैन्युअल रूप से लापता ड्राइवरों को स्थापित करना होगा।
  8. VirtualBox अतिथि परिवर्धन की स्थापना रद्द करें। वैकल्पिक रूप से VirtualBox स्थापित करें ताकि आपकी नंगे धातु विंडोज 8.1 एक वर्चुअलबॉक्स होस्ट हो सके।

1
@Sum से : आप 6 वें चरण को बदलने के लिए BootICE आज़मा सकते हैं और सही MBR इंस्टॉल करना सुनिश्चित कर सकते हैं।
फिक्सर 1234

धन्यवाद। क्या विंडोज 8.1 स्थापित की तुलना में बूटिश कुछ वाट में अधिक विश्वसनीय है? चरण 6 मैं वर्णित संभवतः एमबीआर को गड़बड़ कर देगा?
Jan H

1
यह एक नए उपयोगकर्ता (मुझे विश्वास है कि superuser.com/users/523958/sum ) द्वारा एक उत्तर के रूप में पोस्ट किया गया था । इसे हटाया जा रहा था क्योंकि यह एक उत्तर के रूप में योग्य नहीं था, इसलिए मैंने पोस्ट की प्रतिलिपि बनाई और इसे टिप्पणी के रूप में सहेजा ताकि यह खो न जाए। मैं व्यक्तिगत रूप से इससे परिचित नहीं हूँ।
fixer1234

3

मैं लिनक्स में कमांड की सिर्फ दो पंक्तियों के साथ इस प्रक्रिया को बहुत तेजी से करता हूं:

#VBoxManage इंटरनलैंड्स कन्वर्टटरॉ your_disk_virtual.vmdk your_disk_virtual.img

या

#VBoxManage इंटरनलैंड्स कन्वर्टटरॉ your_disk_virtual.vdi your_disk_virtual.vg

# mv your_disk_virtual.img your_disk_virtual.iso

मेरा पूरा लेख: http://www.previsioni.com.br/jailsonjan/?p=389


क्या इस मामले में .gg बूट करने योग्य होगा?
पम्फाउस

मेरे ख़्याल से नहीं। मैंने 0-रेप यूजर से इसी तरह का जवाब देखा है, जो आसान तरीका लग रहा था, हालांकि, बेकार हो गया।
टोडुआ

0

परिवर्तित करने के लिए निम्न आदेश का उपयोग करें:

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

यहाँ उत्पादन है:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.