विंडोज में संशोधित कमांड के साथ निश्चित आकार का VDI कैसे बदलें?


70

मैं यह पता लगाने की कोशिश कर रहा हूं कि VDI फ़ाइल का आकार कैसे बदलना है। मैं VirtualBox के लिए नया हूं, और मुझे बहुत कुछ सीखने को मिला है। लेकिन मुझे लगता है कि मुझे मूल बातें लटक गई। मैंने पहले ही अतिथि के रूप में विंडोज 7 स्थापित कर दिया है। मेजबान भी विंडोज 7 है। मुझे यकीन नहीं था कि कितना डिस्क स्थान आवंटित करना है, इसलिए मैं 40 जीबी के एक वीडीआई आकार और बढ़े हुए प्रदर्शन के लिए निश्चित आकार के लिए गया था। लेकिन मैंने अब अपना मन बदल दिया है, और मैं एक और 10 जीबी जोड़ना चाहता हूं। मैं कार्यक्रम के आसपास क्लिक कर रहा हूं और हेल्प मेनू सामग्री पढ़ रहा हूं, लेकिन यह मदद नहीं कर रहा है। यह डिस्क कंट्रोलर, एसएएस, एसएटीए, एससीएसआई, यादा, यादा को समझाता है, लेकिन वह नहीं जो मैं देख रहा हूं।

मैंने जवाब के लिए वर्ल्ड वाइड वेब की खोज की, वर्चुअलबॉक्स फोरम का कहना है कि अगर आप सबसे आसान तरीका चाहते हैं, तो आप Gparted का उपयोग करेंगे। कुछ उपयोगकर्ता ddकमांड का उपयोग करके चर्चा करते हैं । लेकिन यह सब लिनक्स सामान है। इसके अलावा, SU पर यहाँ बहुत सारे प्रश्न हैं जो VDI फ़ाइल आकार को बढ़ाने और कम करने से संबंधित हैं, लेकिन वे अतिथि के रूप में लिनक्स और विंडोज के रूप में लिनक्स का उपयोग करने के बारे में हैं।

मुझे यह अच्छा ब्लॉग पोस्ट मिला कि इसे modifyhdVBoxManage की कमांड के साथ कैसे किया जाए। यह लड़का इसे होस्ट ओएस के रूप में लिनक्स पर भी कर रहा है। यहां तक ​​कि वह अपनी VDI फाइल के लिए भी उसी आकार (50 जीबी) को चाहता था जैसा कि मैंने अपने लिए किया, क्या संयोग है। इसलिए मैंने सोचा कि मैं इसे वैसे भी आजमाऊंगा, या तो इसे बनाऊंगा या फिर इसे तोड़ दूंगा। क्या संभवतः गलत हो सकता है? ... एह? खैर यह बदसूरत आश्चर्य मुझे मिला है।

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" --resize 51200
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not impleme
nted yet!

C:\Program Files\Oracle\VirtualBox>

ए

अब क्या कहेंगे? ... VDI प्रारूप के आभासी हार्ड डिस्क का आकार नहीं बदल सकता है? आप नहीं कहते? अपने स्वयं के प्रारूप का समर्थन नहीं कर रहे हैं? अब उसके बारे में कैसे ...

क्या वास्तव में VDI फ़ाइल के आकार को बदलने का कोई सरल तरीका नहीं है, अधिमानतः VirtualBox के अंदर कुछ क्लिक्स के साथ? प्रगति में कुछ भी?


4
मैंने VirtualBox की गुणवत्ता पर शेख़ी को हटा दिया, जो प्रश्न के लिए कुछ भी उपयोगी नहीं जोड़ता है।
sleske

1
भविष्य के संदर्भ के लिए, modifyhdअब के रूप में जाना जाता है, modifymediumलेकिन पिछड़े संगत रहता है - virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi
djule5

जवाबों:


121

सारांश:

  • VBoxManage.exe modifyhd --resize डिस्क छवि के तार्किक आकार (अतिथि OS द्वारा देखा गया आकार) को बढ़ा सकते हैं (लेकिन घटा नहीं सकते)।
  • VBoxManage.exe modifyhd inputfile.vdi --compactभौतिक डिस्क छवि आकार (डिस्क OS पर छवि फ़ाइल का आकार होस्ट OS द्वारा देखा जा सकता है) को कम कर सकता है। हालांकि यह तार्किक डिस्क आकार नहीं बदलता है। ध्यान दें कि यह केवल तभी काम करता है जब पहले अतिथि ओएस में मुफ्त स्थान शून्य किया गया हो।
  • modifyhd केवल डायनामिक प्रारूप वाले संस्करण ("डायनामिक रूप से आवंटित छवि") के साथ ही काम करता है।
  • modifyhd केवल VDI और VHD छवि प्रारूप के साथ काम करता है।
  • यदि आप स्नैपशॉट का उपयोग कर रहे हैं, तो आपको "स्नैपशॉट" सबफ़ोल्डर से नवीनतम स्नैपशॉट VDI क्लोन करना होगा।

विवरण के लिए खंड 8.23 देखें मैनुअल में VBoxManage संशोधन


VDI की तार्किक डिस्क आकार को कम करने का कारण अभी तक लागू नहीं किया गया है, डेटा भ्रष्टाचार को रोकने के लिए है जो हो सकता है और इसके परिणामस्वरूप आपके पास unbootable VMs होगा। इसलिए, जब --resizeविकल्प का उपयोग किया जाता है, तो नया डिस्क आकार वर्तमान आकार से अधिक होना चाहिए। इसे वर्तमान आकार से कम या इसके बराबर होने की अनुमति नहीं है। दूसरे शब्दों में, एक 40 जीबी डिस्क को केवल 41 जीबी या उससे अधिक आकार दिया जा सकता है, इसे 40 जीबी (यह सिर्फ गूंगा) या 39 जीबी या उससे कम नहीं किया जा सकता है।

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

तो क्या त्रुटि संदेश "इस प्रारूप के लिए संचालन अभी तक लागू नहीं हुआ है" इसका मतलब है कि आपकी VDI फ़ाइल "निश्चित" प्रारूप संस्करण का उपयोग करती है। इस समस्या को हल करने के लिए आपको clonehdकमांड का उपयोग करके अपनी VDI फाइल को क्लोन करना होगा । इस समय आपकी VDI फ़ाइल किस प्रकार की है, यह देखने के लिए, आप showhdinfoकमांड का उपयोग कर सकते हैं ।

काम करने का उदाहरण

वर्तमान डिस्क के बारे में VDI जानकारी दिखाएं।

इनपुट कमांड: vboxmanage.exe showhdinfo path\inputfile.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi"
UUID:           132e9af1-0428-49f4-bc45-4d84680e17f5
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\Name\VirtualBox VMs\sg2_win7_x64_lab\sg2_win7_x64_lab.
vdi
Storage format: VDI
Format variant: fixed default
Capacity:       40960 MBytes
Size on disk:   40962 MBytes
In use by VMs:  sg2_win7_x64_lab (UUID: dcd106b3-7ed6-4f19-ad94-820ab4dc10d3)

C:\Program Files\Oracle\VirtualBox>

देखें कि यह "निश्चित डिफ़ॉल्ट" कहां है? यही कारण है कि जब आप इसे आकार देने का प्रयास करते हैं तो यह ऊपर की त्रुटि को थूक देता है।

पुरानी VDI फ़ाइल को एक नई VDI फ़ाइल में क्लोन करें।

इनपुट कमांड: vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "%userprofile%\virtual
box vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" "%userprofile%\virtualbox vms\sg2
_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 34dafa68-3093-4946-926a-8237ea263
e5c

C:\Program Files\Oracle\VirtualBox>

देखा! पुरानी फाइल को अब नई फाइल पर क्लोन कर दिया गया है। चूंकि वर्चुअलबॉक्स के नए संस्करणों में डिफ़ॉल्ट सेटिंग "डायनामिक" प्रारूप संस्करण का उपयोग करने के लिए है, आपको स्पष्ट रूप से परिभाषित करने की आवश्यकता नहीं है। यद्यपि, यदि आप वर्चुअलबॉक्स के पुराने संस्करण के साथ काम कर रहे हैं, तो आप वर्चुअलबॉक्स के भावी संस्करणों के साथ बेहतर संगतता और / या लचीलेपन सुनिश्चित करने के लिए "डायनेमिक" (यदि उपलब्ध सभी) पर विकल्प सेट करना चाहते हैं।

क्लोन डिस्क के बारे में VDI जानकारी दिखाएं।

इनपुट कमांड: vboxmanage.exe showhdinfo path\inputfile_clone.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID:           34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       40960 MBytes
Size on disk:   7806 MBytes

C:\Program Files\Oracle\VirtualBox>

देखें कि यह अब "डायनेमिक डिफ़ॉल्ट" कैसे कहता है? कितना अच्छा है!

(साइड नोट पर! कारण यह कहता है कि 7806 एमबी भौतिक आकार के रूप में है क्योंकि मैंने --compactडायनामिक प्रारूप संस्करण में रूपांतरण को लागू करने के प्रयास में मूल VDI फ़ाइल पर विकल्प का उपयोग किया था । बस कुछ मैंने वर्चुअलबॉक्स फोरम पर पढ़ा, यह माना जाता है। पुराने संस्करणों के साथ काम किया होगा, इसलिए मुझे लगा कि मैं भी कोशिश कर सकता हूं। यह काम नहीं किया।)

क्लोन डिस्क का आकार बदलना।

इनपुट कमांड: vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

C:\Program Files\Oracle\VirtualBox>

सफलता! कोई प्रारूप नहीं बुलबुल। बस नई, क्लोन डिस्क और मूल एक का आकार बदलना याद रखें। ध्यान रखें कि एमबी में आकार व्यक्त किया गया है। मेरा मानना है कि आप जैसे उपयोग कर सकते हैं 51200और साथ ही 50G(या संभवतः "जीबी")। वहाँ भी विकल्प है --resizebyteजो बाइट्स में आकार को व्यक्त करने के लिए इस्तेमाल किया जा सकता है।

आकारित क्लोन डिस्क के बारे में VDI जानकारी दिखाएं।

इनपुट कमांड: vboxmanage.exe showhdinfo path\inputfile_clone.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID:           34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       51200 MBytes
Size on disk:   7806 MBytes

C:\Program Files\Oracle\VirtualBox>

बस! यहाँ से आपको जो करना है वह इस क्लोन ड्राइव को VM के लिए आपके नए VDI के रूप में जोड़ना है। आप VirtualBox के अंदर ऐसा करते हैं। मैं इसमें नहीं जाऊंगा यदि आप इसे अब तक पढ़ और समझ पा रहे हैं तो आपको शायद आगे मार्गदर्शन की कोई आवश्यकता नहीं है। आप या तो पुरानी "निश्चित" फ़ाइल को हटा सकते हैं, या इसे बैकअप के रूप में छोड़ सकते हैं। मूल स्रोत फ़ाइल को हटाने से पहले सुनिश्चित करें कि आप नई VDI फ़ाइल का परीक्षण करें।

ध्यान दें! आपको तुरंत क्लोन किए गए डिस्क का नया आकार दिखाई नहीं देगा। आपको इसके साथ VM को बूट करना होगा, और फिर वर्चुअल डिस्क को भरने के लिए (या अधिक विभाजन बनाने के लिए) अपने विभाजन का विस्तार करने के लिए आपको अपने विभाजन प्रबंधन उपकरण का उपयोग करना होगा। विंडोज के लिए, बस चलाएं diskmgmt.mscऔर आप वहां विभाजन का विस्तार करने में सक्षम होंगे।

स्क्रीनशॉट

ए ख सी घ इ च जी

संदर्भ


1
superuser.com/review/suggested-edits/227029 (मैंने कोशिश की।)
३०

अच्छी नज़र! मैंने संशोधित पैरामीटर को ठीक कर दिया है। इसे मेरे ध्यान में लाने के लिए धन्यवाद।
समीर

2
एक बहुत अच्छी तरह से लिखित जवाब! IMHO को बहुत अधिक वोट मिलना चाहिए।
जोहान कार्लसन

+1: यह आपके जैसे लोगों और आपके द्वारा साझा किए जाने वाले ज्ञान का हिस्सा है, जो StackExchange पारिस्थितिकी तंत्र को इस तरह के एक शानदार संसाधन बनाता है!
होम्युनकुलस रेटिकुल्ली

1
यदि आपके पास समस्याएँ हैं, क्योंकि आप स्नैपशॉट का उपयोग कर रहे हैं , तो virtualbox.org/ticket/9103 पर एक नज़र डालें । मूल रूप से, आपको स्नैपशॉट फ़ाइल पर modifymedium/ modifyhdऑपरेशन को लागू करने की आवश्यकता है।
djule5

11

यहाँ एक काफी सरल प्रक्रिया है जो मेरे लिए एक वर्चुअलबॉक्स (v। 4.3.16) के आकार का काम करती है, जो मेरे मैक (OS X 10.9.4) पर 60GB की डायनेमिक डिस्क के साथ Linux (Ubuntu 14.04) पर अतिथि OS के रूप में चल रही है।

मैक पर टर्मिनल में, VDI फ़ाइल के साथ निर्देशिका में सीडी और निम्नलिखित टाइप करें:

VBoxManage showhdinfo mydisk.vdi  
VBoxManage clonehd mydisk.vdi mydiskClone.vdi  
VBoxManage modifyhd mydiskClone.vdi --resize 61440  
VBoxManage showhdinfo mydiskClone.vdi

वर्चुअलबॉक्स एप्लिकेशन स्टोरेज सेक्शन में, दूसरे एचडी के रूप में mydiskClone.vdi जोड़ें, फिर VM को सामान्य रूप से शुरू करें।

अतिथि OS पर शेल में, टाइप करें:

sudo fdisk /dev/sdb
- delete all partitions
- create new partition on full disk

अतिथि को रिबूट करें। जब यह वापस आता है, तो फिर से शेल पर जाएं और टाइप करें:

sudo resize2fs /dev/sdb1

अतिथि OS को बंद करें।

वर्चुअलबॉक्स एप्लिकेशन स्टोरेज सेक्शन में, mydiskClone.vdi को बूट डिस्क पर सेट करें। फिर अतिथि ओएस शुरू करें और फ़ाइल ब्राउज़र में "कंप्यूटर" के गुणों का उपयोग करके नए डिस्क आकार को सत्यापित करें।


इस जवाब का कोई मतलब नहीं है। आप पहले / dev / sdb पर एक बड़ा विभाजन बनाते हैं, फिर उसे आकार देते हैं, लेकिन आप पहले उस पर एक फाइल सिस्टम नहीं बनाते हैं। क्या आप शायद मूल विभाजन की नकल करने के कदम को भूल गए हैं?
sleske

5

क्लोनिंग वास्तव में एक बेहतर उपाय है और इसे करने का एक आसान तरीका है।

फ़ाइल मेनू से, वर्चुअल मीडिया मैनेजर चुनें, फिर कॉपी पर क्लिक करें। स्रोत आपका मूल निश्चित आकार vdi हार्ड डिस्क होगा और आपका गंतव्य आपके चयन का कुछ नया होगा (इसमें एक नया का विकल्प भी शामिल है)।


यह sammyg से उत्तर का हिस्सा है।
एफ्रेन

4

ठीक है, इसलिए मैंने इसे क्लोनिंग के बिना किया

मेरे पास उबंटू के साथ एक 100GB VDI फ़ाइल (निश्चित प्रारूप) थी। अच्छा कर रहा है। मैं VM को छोटा करके मेजबान में कुछ जगह खाली करना चाहता था।

कदम:

  1. साफ - सफाई

अवांछित फ़ाइलें हटा दी गईं। 45 जीबी मुफ्त। मुझे मुक्त करने के लिए केवल 30GB चाहिए।

  1. अतिथि OS को ठीक करें

मेरे पास केवल एक विभाजन है, इसलिए अतिथि Ubuntu के अंदर से कुछ भी नहीं किया जा सकता है। VM में माउंटेड Ubuntu लाइव और इससे बूट किया गया।

gpartedविभाजन को 70GB तक सिकोड़ने के लिए उपयोग किया जाता है। में अप्रयुक्त स्थान में एक नया विभाजन बनाया ext4

  1. खाली जगह को पोंछे

नए विभाजन में मुफ्त स्थान (30 जीबी)।

इस गाइड का अनुसरण किया: ज़ीरोफ्री का उपयोग करके अतिथि और होस्ट ओएस के रूप में उबंटू पर आभासी हार्ड ड्राइव को सिकोड़ें

मेरा नया विभाजन था /dev/sda3

$ sudo apt-get install zerofree
$ sudo init 1

...

# mkdir /tmp3
# mount -o ro -t ext4 /dev/sda3 /tmp3
# zerofree -v /dev/sda3
  1. VDI को संकुचित करें

    VBoxManage में संशोधन "ubuntu.vdi" कॉम्पैक्ट

इसमें कुछ समय लगा, लेकिन यह काम कर गया!


1
क्या आप निश्चित हैं कि यह काम किया है? वर्चुअलबॉक्स मैनुअल के अनुसार, --compactकेवल गतिशील रूप से आवंटित छवियों के लिए काम करता है, न कि निश्चित आकार वाले लोगों के लिए।
sleske

1
@ ATOzTOA: यदि डिस्क छवि फ़ाइल बढ़ती है, तो यह एक "निश्चित प्रारूप" छवि नहीं है, लेकिन एक "गतिशील रूप से आवंटित" छवि है, जिसे आपने अपने उत्तर में लिखा है।
sleske

3
नहीं, यह एक गतिशील रूप से आवंटित छवि है । मैनुअल के शब्दों में: "आप एक निश्चित आकार की छवि बनाते हैं, तो एक छवि फ़ाइल अपने मेजबान सिस्टम जो आभासी डिस्क की क्षमता के रूप में लगभग एक ही आकार की है पर बनाया जाएगा।" Virtualbox.org/manual/ch05.html#vdidetails
sleske

1
"एक निश्चित आकार की छवि का मतलब है कि यह निर्दिष्ट आकार से आगे नहीं बढ़ सकता है।" नहीं। "निश्चित-आकार" का अर्थ है कि आकार निश्चित है, इसलिए हमेशा समान। डॉक्स पढ़ें।
२०:०२

1
यदि कोई इसे पढ़ रहा है और यह निश्चित नहीं है कि कौन सही है। @ स्लेसके सही है। निश्चित आकार के चित्र ठीक वैसे ही हैं जैसे वे कहते हैं। छवि बनाते समय निर्दिष्ट आकार के लिए निश्चित। बेंचमार्क में यह गतिशील रूप से आवंटित छवियों पर अधिक से अधिक प्रदर्शन प्रदान करता है, इसलिए HD गहन कार्यों के लिए VBox का उपयोग करने वाले किसी व्यक्ति को संभवतः अपनी सीमाओं के बावजूद इस प्रारूप पर विचार करना चाहिए।
जैक

2

पार्टी के लिए देर से यहाँ की तरह लेकिन मैं अपने 2 सेंट जोड़ देंगे। पहले मैं कहूंगा कि यह एक जटिल प्रक्रिया है जो अधिकांश आकस्मिक उपयोगकर्ताओं को पागल करने की कोशिश करेगी। ओरेकल ने इसे VBox GUI में शामिल क्यों नहीं किया यह एक रहस्य है।

चरण 1: ड्राइव का आकार बढ़ाने के लिए विंडोज़ कमांड लाइन (VBoxmanage) का उपयोग करें। यहाँ एक टिप vdi ड्राइव के आईडी का उपयोग करने के बजाय फ़ाइल स्थान में प्रवेश करने और त्रुटि संदेश प्राप्त करने की कोशिश कर रहा है।

चरण 2: फिर आपको नई जगह का उपयोग करने के लिए अपने प्राथमिक विभाजन का विस्तार करने की आवश्यकता है। Gparted iso को डाउनलोड करें और इसे IDE स्रोत के रूप में उपयोग करके VBox में एक नई वर्चुअल मशीन बनाएँ। फिर sata डिस्क के रूप में मौजूदा VDI ड्राइव का उपयोग करें। इस मशीन के लिए वर्चुअल ड्राइव न बनाएं। नई मशीन को बूट करें और आपके पास चलने वाली गुई होगी। यह खुद को हल करने के लिए कुछ रीबूट ले सकता है।

एक बार gparted चल रहा है तो आप अपने vdi ड्राइव के विभाजन देखेंगे जिसे आप आकार बदलना चाहते हैं। महत्वपूर्ण: आप प्राथमिक विभाजन के आकार को बढ़ाने में सक्षम होने के लिए विस्तारित विभाजन और स्वैप फ़ाइल स्थान को हटाने जा रहे हैं ताकि पीपी के लिए सभी नए स्थान आवंटित न करें। एक बार जब आप ऐसा कर लेते हैं, तो आपको नए विस्तारित विभाजन के लिए शेष स्थान को नामित करना होगा और उसके भीतर एक नया स्वैप फ़ाइल स्थान बनाना होगा। मुझे यह अब तक आसान लग रहा था और कमांड लाइन के साथ घूम रहा था।

केक का एक टुकड़ा नहीं है, लेकिन यह उल्लेखनीय है ... मुझे यह पता लगाने के लिए वेब पर शोध करने के लगभग आधे दिन लगे। VBox पर win8.1 / Ubuntu चलाना

विली


2

यहाँ मैंने एक निश्चित VDI छवि का आकार परिवर्तन / विस्तार / विस्तार किया है (उन्हें संक्षिप्त करने की मेरी प्रक्रिया एक अन्य उत्तर में है):

  1. वांछित आकार का एक नया डिस्क बनाने के लिए VirtualBox का उपयोग करें (आकार मूल रूप से कम से कम समान होना चाहिए )। अतिथि VM के लिए VirtualBox सेटिंग्स को खोलकर ऐसा करें, स्टोरेज पर जाएं, HDD नियंत्रक (उदा। "SATA") पर क्लिक करें, और फिर हार्ड डिस्क जोड़ने के लिए "+" पर क्लिक करें। फिर नई डिस्क को इच्छानुसार कॉन्फ़िगर करें।
  2. Gparted live ISO डाउनलोड करें और अतिथि VM से इसे (फिर से, स्टोरेज सेटिंग्स) बूट करने के लिए कॉन्फ़िगर करें।
  3. अपने अतिथि VM के वर्तमान संग्रहण का बैकअप लें।
  4. अतिथि VM को बूट करें (gparted लाइव वातावरण में बूट होना चाहिए)। Gparted पर्यावरण के अंदर से:
    1. सत्यापित करने के लिए gparted एप्लिकेशन का उपयोग करें कि आपकी मौजूदा डिस्क "/ dev / sda" है, और यह कि आपकी नई (बड़ी) डिस्क "/ dev / sdb" (टॉप-राइट ड्रॉप डाउन) है।
    2. बंद किए गए एप्लिकेशन को बंद करें।
    3. रूट प्राइवेट के साथ एक टर्मिनल खोलें (डेस्कटॉप पर राइट क्लिक करें -> टर्मिनल -> रूट विशेषाधिकार के साथ टर्मिनल)।
    4. निम्न कमांड टाइप करें: dd if=/dev/sda of=/dev/sdb status=progress bs=128Mऔर इसके पूरा होने की प्रतीक्षा करें। यह मूल डिस्क को नए डिस्क बाइट-फॉर-बाइट सहित MBR आदि के लिए कॉपी करेगा (नोट: मूल डिस्क के आकार, होस्ट पर डिस्क की गति, आदि के आधार पर इसे पूरा करने में कुछ समय लग सकता है)। (ध्यान दें: यदि आपके अतिथि वीएम के पास> 1 जीबी रैम आवंटित है, तो आप 'bs' परम को "bs = 256M" में बदल सकते हैं, जो कॉपी को थोड़ा तेज कर सकता है)।
    5. Gparted एप्लिकेशन को फिर से खोलें
    6. शीर्ष-दाएँ ड्रॉप-डाउन से नई (बड़ी) ड्राइव (होनी चाहिए / देव / sdb) का चयन करें।
    7. इच्छानुसार विभाजन का विस्तार करें। एक विभाजन का विस्तार करने के लिए जो अंत में नहीं है, आपको उन विभाजन को स्थानांतरित करना पड़ सकता है जो उस एक (ओं) के बाद हैं जिनका आप विस्तार करना चाहते हैं। अपनी विभाजन योजना की बारीकियों के आधार पर आपको कई चरणों में ऐसा करना पड़ सकता है जैसे कि अंतिम विभाजन को अंत तक बढ़ाना और फिर सब कुछ अंत तक इसे सिकोड़ना। मेरे मामले में, मेरा अंतिम विभाजन लिनक्स-स्वैप था, इसलिए मैंने बस इसे हटा दिया, अपने प्राथमिक विभाजन को वांछित के रूप में विस्तारित किया, और फिर अंत में स्वैप विभाजन को फिर से बनाया (इसकी मूल विभाजन योजना को दोहराने के लिए सावधान रहना)।
    8. परिवर्तन लागू करें।
    9. इस बिंदु पर आपके पास मूल सामग्री के सभी के साथ एक नया निश्चित आकार का डिस्क होना चाहिए, और मूल से अधिक स्थान होना चाहिए। आप gparted live env में नए डिस्क को माउंट कर सकते हैं और सत्यापित कर सकते हैं।
    10. अतिथि VM (gparted live) को बंद करें और VM ड्राइव से ISO निकालें।
  5. अतिथि VM के लिए VBox सेटिंग्स पर जाएं, स्टोरेज पर जाएं, और सूची से मूल डिस्क को निकालें (राइट-क्लिक करें और "अटैचमेंट निकालें" का चयन करें)। यह वीएम के लिए आपकी नई बनाई गई डिस्क को छोड़ देना चाहिए। नोट: यह चरण केवल अतिथि VM के कॉन्फ़िगरेशन से डिस्क को हटा रहा है - मेजबान मशीन पर आपका मूल अतिथि VM डिस्क (यानी। छोटा वाला) अभी भी उपलब्ध है।
  6. VM को बूट करें और आनंद लें!
  7. (एक बार सब कुछ अपेक्षित रूप से काम करने की पुष्टि हो जाने पर, आप मूल VM डिस्क को हटा सकते हैं।)

जबकि उपरोक्त ने मेरे लिए कई बार महान काम किया है, ऐसा लगता है कि LVM का उपयोग करने पर कुछ और चरणों की आवश्यकता है। (नोट: यदि एलवीएम का उपयोग किया जाता है, तो आप केवल वांछित आकार की एक नई डिस्क जोड़ सकते हैं और फिर उस डिस्क को वॉल्यूम समूह में जोड़ सकते हैं।) सेंटोस 6.6 के साथ जहां एलवीएम का उपयोग किया जाता है, मुझे एलवीएम के भीतर भी जगह बढ़ानी होगी। इसलिए ऊपर बनाई गई नई डिस्क को बूट करने के बाद, मैंने इन पंक्तियों के साथ कुछ किया (इसके सेटअप के नामों के आधार पर इसके विभिन्न भाग अलग-अलग होंगे):

  1. LVM सेटअप के बारे में जानकारी प्राप्त करें:

    # pvs
      PV         VG          Fmt  Attr PSize  PFree
      /dev/sda2  vg_rhel6bm1 lvm2 a--  31.51g    0 
    # vgs
      VG          #PV #LV #SN Attr   VSize  VFree
      vg_rhel6bm1   1   2   0 wz--n- 31.51g    0 
    # lvs
      LV      VG          Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root vg_rhel6bm1 -wi-ao---- 28.31g
      lv_swap vg_rhel6bm1 -wi-ao----  3.20g
    
  2. भौतिक मात्रा बढ़ाएँ (PV) (आयतन समूह (VG) स्वतः ही वृद्धि को दर्शाएगा):

    # pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    # pvs
      PV         VG          Fmt  Attr PSize  PFree
      /dev/sda2  vg_rhel6bm1 lvm2 a--  39.51g 8.00g
    # vgs
      VG          #PV #LV #SN Attr   VSize  VFree
      vg_rhel6bm1   1   2   0 wz--n- 39.51g 8.00g
    
  3. तार्किक आयतन (LV) बढ़ाएँ:

    # lvextend /dev/vg_rhel6bm1/lv_root /dev/sda2
      Size of logical volume vg_rhel6bm1/lv_root changed from 28.31 GiB (7247 extents) to 36.31 GiB (9295 extents).
      Logical volume lv_root successfully resized
    # lvs
      LV      VG          Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root vg_rhel6bm1 -wi-ao---- 36.31g
      lv_swap vg_rhel6bm1 -wi-ao----  3.20g
    
  4. फ़ाइल सिस्टम बढ़ाएँ:

    इससे पहले:

    # df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/vg_rhel6bm1-lv_root
                             28G   24G  3.1G  89% /
      tmpfs                 939M  232K  939M   1% /dev/shm
      /dev/sda1             477M   85M  368M  19% /boot
    

    कमान:

    # resize2fs /dev/mapper/vg_rhel6bm1-lv_root
      resize2fs 1.41.12 (17-May-2010)
      Filesystem at /dev/mapper/vg_rhel6bm1-lv_root is mounted on /; on-line resizing required
      old desc_blocks = 2, new_desc_blocks = 3
      Performing an on-line resize of /dev/mapper/vg_rhel6bm1-lv_root to 9518080 (4k) blocks.
      The filesystem on /dev/mapper/vg_rhel6bm1-lv_root is now 9518080 blocks long.
    

    उपरांत:

    # df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/vg_rhel6bm1-lv_root
                             36G   24G   11G  69% /
      tmpfs                 939M  232K  939M   1% /dev/shm
      /dev/sda1             477M   85M  368M  19% /boot
    

अच्छा जवाब! साइट पर आपका स्वागत है!
djsmiley2k - 7

1

यहाँ मैंने एक निश्चित VDI छवि का आकार बदलने / घटाने / घटाने का तरीका दिया है (इसे विस्तारित करने की मेरी प्रक्रिया इसी विषय में एक अन्य उत्तर में है):

पहली छोटी पृष्ठभूमि कि मुझे इसकी आवश्यकता क्यों थी (क्योंकि एक VDI को सिकोड़ने के लिए कई परिदृश्य हैं, जिनमें से कुछ इस दृष्टिकोण के साथ संभव नहीं हो सकते हैं): वर्षों पहले मैंने विंडोज सर्वर अतिथि के लिए एक निश्चित VDI बनाया और इसे 600GB पर आकार दिया। मुझे याद नहीं है कि मैंने इस आकार को क्यों चुना है, लेकिन आज तक मैंने उस अतिथि में केवल 100GB का उपभोग किया है और मैं शेष स्थान को पुनः प्राप्त करना चाहता हूं। इसलिए मेरे मामले में, मैं अतिथि के सभी डेटा को संरक्षित करना चाहता हूं और मैं बस अतिथि में अप्रयुक्त स्थान को मुक्त करना चाहता हूं।

(निम्नलिखित कदम ज्यादातर मेरी स्मृति से पिछले 2 घंटों में ऐसा करने के हैं, इसलिए अगर मुझे यहां कुछ याद आता है तो क्षमा करें)

  1. निर्धारित करें कि आप नया आकार कितना बड़ा चाहते हैं। स्वाभाविक रूप से आप शायद अतिथि को कुछ अतिरिक्त स्थान के साथ छोड़ना चाहते हैं जो वर्तमान में उपभोग कर रहा है। आकार कम से कम होना चाहिए जैसा कि स्रोत / मूल डिस्क में डेटा, निकटतम जीबी के लिए गोल है।
  2. पिछले चरण में निर्धारित आकार के साथ एक नई निश्चित आकार की डिस्क बनाने के लिए VirtualBox का उपयोग करें। अतिथि VM के लिए VirtualBox सेटिंग्स को खोलकर ऐसा करें, स्टोरेज पर जाएं, HDD नियंत्रक (उदा। "SATA") पर क्लिक करें, और फिर हार्ड डिस्क जोड़ने के लिए "+" पर क्लिक करें। फिर नई डिस्क को इच्छानुसार कॉन्फ़िगर करें।
  3. Gparted live ISO डाउनलोड करें और अतिथि VM से इसे (फिर से, स्टोरेज सेटिंग्स) बूट करने के लिए कॉन्फ़िगर करें।
  4. अपने अतिथि VM के वर्तमान संग्रहण का बैकअप लें।
  5. अतिथि VM को बूट करें (gparted लाइव वातावरण में बूट होना चाहिए)। Gparted पर्यावरण के अंदर से:

    1. यह निर्धारित करने के लिए gparted एप्लिकेशन का उपयोग करें कि कौन सी डिस्क "मूल" है और कौन सा "नया" है। मूल में कम से कम एक विभाजन होगा, जबकि नया पूरी तरह से खाली होगा। (आमतौर पर "मूल" पहली डिस्क होती है जिसे असाइन किया जाता है / dev / sda, और "नई" डिस्क दूसरी डिस्क होती है जिसे असाइन किया जाता है / dev / sdb।)
    2. मूल / स्रोत विभाजन (ओं) को आपके इच्छित आकार (ओं) को सिकोड़ने के लिए gparted एप्लिकेशन का उपयोग करें। याद रखें कि आप सभी कार्यों को करने के बाद "लागू करें" बटन पर क्लिक करें। (आपके विभाजन के आकार और डिस्क की गति के आधार पर इसे पूरा करने में थोड़ा समय लग सकता है।)
    3. नई डिस्क पर एक विभाजन तालिका बनाने के लिए gparted एप्लिकेशन का उपयोग करें (डिवाइस -> विभाजन तालिका बनाएं ..., MSOSOS के रूप में टाइप करें)।
    4. नई डिस्क पर समान विभाजन बनाने के लिए gparted एप्लिकेशन का उपयोग करें। (यह सुनिश्चित करने में मदद करने के लिए कि वे समान थे, मैंने विभाजन-> सूचना ... मेनू विकल्प का उपयोग करके मूल डिस्क पर प्रत्येक विभाजन के लिए विस्तृत जानकारी को खींच लिया और जब मैंने एक ही विभाजन बनाया तो उपयोग करने के लिए स्क्रीनशॉट को सहेज लिया ( s) नई / गंतव्य डिस्क पर।) सुनिश्चित करें कि:
      • मूल (नव समायोजित) मूल के समान आकार का प्रत्येक गंतव्य विभाजन बनाएँ।
      • मिलान करने के लिए विभाजन पर किसी भी झंडे को सेट करें (विभाजन बनने के बाद इसे करने की आवश्यकता हो सकती है)।
      • मिलान करने के लिए विभाजन पर कोई भी लेबल सेट करें।
      • (नोट: डेटा कॉपी होने पर UUID अपने आप सेट हो जाएगा।)
    5. सभी परिवर्तनों को करने के लिए "लागू करें" बटन पर क्लिक करें।
    6. ध्यान दें कि कौन सी डिस्क "मूल" है और जो "नई" है, और संबंधित विभाजनों की संख्याओं को नोट करें (उदा। / Dev / sda1 -> / dev / sdb1, / dev / sda2 -> / dev / sdb2,) ...)
    7. बंद किए गए एप्लिकेशन को बंद करें।
    8. रूट प्राइवेट के साथ एक टर्मिनल खोलें (डेस्कटॉप पर राइट क्लिक करें -> टर्मिनल -> रूट विशेषाधिकार के साथ टर्मिनल)।
    9. मान लें कि आपकी "मूल" डिस्क / dev / sda है और "new" / dev / sdb है (यदि नहीं, तो निम्नलिखित कमांड को उचित रूप से समायोजित करें), तो हम प्रत्येक विभाजन की प्रतिलिपि बनाने जा रहे हैं, एक बार में। ऊपर दिए गए चरण से नीचे दिए गए प्रत्येक विभाजन के लिए, टर्मिनल में निम्नलिखित कमांड दर्ज करें:

      # dd if=/dev/sda1 of=/dev/sdb1 status=progress bs=128M
      

      और इसके पूरा होने की प्रतीक्षा करें। यह मूल डिस्क से विभाजन 1 को नए डिस्क बाइट-फॉर-बाइट पर 1 कॉपी करेगा।
      प्रत्येक शेष विभाजन के लिए कमांड दोहराएं:

      # dd if=/dev/sda2 of=/dev/sdb2 status=progress bs=128M
      # dd if=/dev/sda3 of=/dev/sdb3 status=progress bs=128M
      # ...
      

      टिप्पणियाँ:

      • विभाजन के आकार, होस्ट पर डिस्क की गति, आदि के आधार पर इसे पूरा करने में थोड़ा समय लग सकता है।
      • यदि आपके अतिथि VM के पास> 1GB RAM आवंटित है, तो आप 'bs' परम को "bs = 256M" में बदल सकते हैं, जो प्रतिलिपि को थोड़ा गति कर सकता है।
    10. इस बिंदु पर आपके पास मूल सामग्री के सभी के साथ एक नई निश्चित आकार की डिस्क होनी चाहिए, और मूल की तुलना में एक छोटी VDI फ़ाइल होनी चाहिए। आप gparted live env में नई डिस्क को माउंट कर सकते हैं और डेटा को सत्यापित कर सकते हैं।
    11. अतिथि VM (gparted live) को बंद करें और VM ड्राइव से gparted ISO हटा दें।
  6. अतिथि VM के लिए VBox सेटिंग्स पर जाएं, स्टोरेज पर जाएं, और सूची से मूल डिस्क को निकालें (राइट-क्लिक करें और "अटैचमेंट निकालें" का चयन करें)। यह वीएम के लिए आपकी नई बनाई गई डिस्क को छोड़ देना चाहिए। नोट: यह चरण केवल अतिथि VM के कॉन्फ़िगरेशन से डिस्क को हटा रहा है - आपका मूल अतिथि VM डिस्क (यानी। बड़ा VDI) अभी भी मेजबान मशीन पर उपलब्ध है।
  7. अपने विंडोज गेस्ट के लिए मुझे जो आखिरी कदम उठाना था, वह एमबीआर और / या बीसीडी को सेट / फिक्स करना था। (मुझे नहीं पता कि क्या इसमें से किसी को लिनक्स अतिथि के लिए आवश्यक है जैसा कि मैंने अभी तक नहीं किया है।) यदि मैंने अपने नए VDI से बूट किया है तो मुझे इस सामग्री के साथ एक विंडोज बूट Mgr त्रुटि स्क्रीन मिली (दुर्भाग्य से मैंने ऐसा नहीं किया) इससे पहले कि मैं इस मुद्दे को तय करूँ) स्क्रीनशॉट को हड़प लूँ:

    windows failed to start
    status 0xc000000e
    information A required device isn't connected or can't be accessed.
    
  8. एक विंडोज स्थापित या मरम्मत के आईएसओ प्राप्त करें (आदर्श रूप से जो आपके ओएस संस्करण से मेल खाता है) और अतिथि वीएम को इसे (फिर से, स्टोरेज सेटिंग्स) से बूट करने के लिए कॉन्फ़िगर करें।

  9. अतिथि VM को प्रारंभ करें और CD / DVD से बूट करना चुनें।

    1. चूंकि विंडोज इंस्टॉल / मरम्मत का प्रत्येक संस्करण अलग है, मैं यहां सभी के लिए सटीक कदम नहीं दे सकता। लेकिन विचार "मरम्मत" विकल्प चुनना है और कमांड प्रॉम्प्ट के लिए अपना रास्ता खोजना है। विंडोज सर्वर 2012 के मेरे मामले में मुझे: (ए) मेरी भाषा / लोकेल चुनें; (बी) नीचे बाएं कोने में "अपने कंप्यूटर की मरम्मत" चुनें; (ग) "समस्या निवारण" चुनें; (d) "कमांड प्रॉम्प्ट" चुनें।
    2. एक बार जब आप कमांड प्रॉम्प्ट पर होते हैं, तो निम्न कमांड चलाते हैं ( जानकारी के लिए http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html पर धन्यवाद !)।

      > bootrec /fixmbr
      > bootrec /fixboot
      > bootrec /rebuildBcd
      

      इस अंतिम कमांड को आपके विंडोज इंस्टाल का पता लगाना चाहिए और इसे बीसीडी में जोड़ने के लिए संकेत देना चाहिए। उत्तर 'वाई'।

    3. कमांड प्रॉम्प्ट से बाहर निकलें और फिर अतिथि VM को बंद करें।
  10. अतिथि VM के लिए VBox सेटिंग्स पर जाएं, स्टोरेज पर नेविगेट करें, और सीडी / डीवीडी ड्राइव से विंडोज इंस्टॉल / रिपेयर आईएसओ को हटा दें।
  11. VM को बूट करें और आनंद लें!
  12. (एक बार सब कुछ अपेक्षित रूप से काम करने की पुष्टि हो जाने पर, आप मूल VM डिस्क को हटा सकते हैं।)

0

मैं किसी भी होस्ट ऑपरेटिंग सिस्टम पर चल रहे किसी भी होस्ट ऑपरेटिंग सिस्टम के लिए विस्तारित उत्तर प्रदान करता हूं। यह उत्तर मानता है कि आप आकार बढ़ाना चाहते हैं (विस्तार करने के लिए)।

नोट: जैसा कि djule5 द्वारा इंगित किया गया है (प्रश्न के ठीक बाद टिप्पणी देखें), modifyhdअब के रूप में जाना जाता है modifymedium(लेकिन पीछे संगत बनी हुई है)। यहां मैं उपयोग करता हूं modifymedium

1. अपने रनिंग वीएम से बाहर निकलें

हाँ यह उत्तर एक VDI फाइल के लिए है जो पहले से ही VirtualBox VM द्वारा उपयोग किया जाता है।

2. डिस्क छवि का आकार बदलने के लिए अपने होस्ट पर एक टर्मिनल खोलें

कमांड लाइन VBoxManage VDI फ़ाइल नाम का उपयोग करके डिस्क छवि का आकार बदलना नहीं चाहता है।

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage modifymedium my_disk_image.vdi --resizebyte 16260316160                                                                      VBoxManage: error: Cannot register the hard disk '/home/user/vm/my_disk_image.vdi' {181540c7-b791-4b2f-8e01-5feaff04a6eb} because a hard disk '/home/user/vm/my_disk_image.vdi' with UUID {181540c7-b791-4b2f-8e01-5feaff04a6eb} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 179 of file VBoxManageDisk.cpp

इसलिए अपनी डिस्क छवि के UUID की पहचान करें।

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage list hdds
UUID:           181540c7-b791-4b2f-8e01-5feaff04a6eb
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/vm/my_disk_image.vdi
Storage format: VDI
Capacity:       10240 MBytes
Encryption:     disabled

डिस्क छवि आकार बढ़ाएँ।

$ vboxmanage modifymedium 181540c7-b791-4b2f-8e01-5feaff04a6eb --resizebyte 16260316160
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

3. तार्किक विभाजन को विस्तारित करने के लिए एक विभाजन उपकरण का उपयोग करें

अपने होस्ट किए गए VM को चलाएं। फिर एक विभाजन उपकरण का उपयोग करें ।

होस्टेड GNU / Linux के लिए कुछ उपकरण:

यदि होस्टेड सिस्टम विंडोज का उपयोग करता है:

4. विभाजन मुक्त स्थान की जाँच करें

आपकी VDI फ़ाइल का आकार (आपके होस्ट सिस्टम पर) नहीं बदला गया हो सकता है क्योंकि आपके VM ने अभी तक अतिरिक्त राशि का उपयोग नहीं किया है। मज़े करो।


-1

यह मेरे लिए काम करेगा और हार्ड डिस्क की कुल मात्रा को निर्दिष्ट करना चाहिए। वह स्थान नहीं जिसे हमें बढ़ाने की आवश्यकता हो ...

C: \ Program Files \ Oracle \ VirtualBox> VBoxManage।

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