2012-03-16 16 views
8

हटाना मेरे पास एक विंडोज मशीन है और मैं वीएमवेयर प्लेयर चला रहा हूं। मेरे पास 1 सेंटोस छवि है। एक बिंदु पर वीएम लगभग 12 जीबी था।वीएमवेयर डिस्क

मैं कई अनावश्यक फ़ाइलों को नष्ट कर दिया, 4GB

हालांकि, इस कमी vmdk में परिलक्षित नहीं किया गया था करने के लिए आकार छोड़ने।

विंडोज रिपोर्ट आकार, 10GB के बारे में है कि जब तक Centos केवल का उपयोग करता 4GB

वहाँ इस स्थान को पुनः प्राप्त करने के लिए एक रास्ता है?

उत्तर

6

हाँ, आप हटना सकते हैं कि "VMware-vdiskmanager" का उपयोग। विवरण के लिए यह article चेकआउट करें।

यह भी पूछें - क्या आपको बाद में इस जगह की आवश्यकता होगी? यदि यह एक गैर उत्पादन वातावरण है, और आप "घर" उद्देश्यों के लिए उपयोग मैं दृढ़ता से अधिक उपयोगकर्ता के अनुकूल है, और अधिक अप-टू-डेट और सबसे समर्थन करता है, यह है के रूप में (उदाहरण के लिए VirtualBox) अन्य वर्चुअलाइजेशन मंच में जाने की सलाह देते हैं वीएमडीके फाइलों के प्रारूप (इसलिए माइग्रेशन आसान होगा)।

+0

सहायता के लिए धन्यवाद। वर्चुअल बॉक्स पर भी एक नज़र डालेंगे – Thomas

12

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

अंतरिक्ष सुधारने के लिए बुनियादी प्रक्रिया है:

  • किसी भी अनावश्यक फ़ाइलों
  • शून्य सभी रिक्त स्थान (विंडोज वीएमएस के लिए नहीं की जरूरत)
  • उपयोग VMware प्लेयर या कार्य केंद्र आभासी डिस्क हटना निकालें।

विशिष्ट प्रक्रिया मैं मेरे CentOS छवि को कम करने के लिए इस्तेमाल निम्न करने के लिए किया गया था:

df -h 
su 
yum clean all 
cd/; cat /dev/zero > zero.fill ; sync ; sleep 1 ; sync ; rm -f zero.fill 
exit 

मैं तो मेरे CentOS वी एम शट डाउन करें और के लिए हार्डवेयर पृष्ठ पर कॉम्पैक्ट उपयोगिता इस्तेमाल किया हार्ड डिस्क डिवाइस वर्चुअल मशीन सेटिंग्स में डिवाइस।

सिकुड़ने के बाद, रूट फ़ाइल सिस्टम के लिए vmdk रूट फ़ाइल सिस्टम के आकार के आकार के समान आकार के आसपास था, और vmdk ने यहां से आवश्यकतानुसार फिर से विस्तार करना शुरू कर दिया।

ध्यान दें कि मेरी वीएम केवल एक ही जड़ विभाजन था, अगर मैं किसी भी अन्य विभाजन या डिस्क था था, मैं बदल दिया है | की cd / हिस्सा अन्य विभाजनों में से माउंट बिंदु के साथ लाइन भरें और फिर से चलाने के प्रत्येक वर्चुअल डिस्क पर सिकुड़ उपयोगिता।

अधिक विकल्पों के लिए, Shrinking VM Disk Images देखते हैं।

आप एक Debian आधारित Linux साथ भी ऐसा ही, या VMware जीयूआई के बजाय कमांड लाइन उपयोगिता vmware-vdiskmanager उपयोग करने के लिए, डिस्क हटना लेख How To Shrink VMware Virtual Disk Files (.vmdk) पर एक नज़र ले जाना चाहते करने के लिए निर्देशों की जरूरत है।


यदि आप कुछ समय के लिए वीएम का उपयोग कर रहे हैं, तो आप स्वैप फ़ाइल को शून्य करने से भी लाभ उठा सकते हैं।

$ su 
Password: 
# cat /proc/swaps 
Filename        Type  Size Used Priority 
/dev/sda3        partition 2064376 0  -1 
# swapoff -a 
# cat /proc/swaps 
Filename    Type  Size Used Priority 
# dd if=/dev/zero of=/dev/sda3 bs=1M 
dd: writing `/dev/sda3': No space left on device 
2017+0 records in 
2016+0 records out 
2113929216 bytes (2.1 GB) copied, 24.6894 s, 85.6 MB/s 
  • नोट:: हम यहाँ एक पूरी विभाजन पोंछते रहे हैं के बाद से, यह सुनिश्चित करें कि आप जिस उपकरण dd आदेश के लिए निर्दिष्ट वही cat /proc/swaps आदेश द्वारा दिखाया गया है मेरे CentOS प्रणाली पर, मैं निम्नलिखित किया । सुरक्षित पक्ष पर रहने के लिए, इसे करने से पहले अपने वीएम का बैकअप लें।

वर्चुअल डिस्क को कम करने के बाद, आपको स्वैप फ़ाइल को पुन: सक्षम करने की आवश्यकता होगी। उदाहरण के लिए:

$ su 
Password: 
# free -o 
      total  used  free  shared buffers  cached 
Mem:  1030684  344552  686132   0  20956  175912 
Swap:   0   0   0 
# mkswap /dev/sda3 
Setting up swapspace version 1, size = 2064380 KiB 
no label, UUID=80276a48-3581-4f7a-8b05-1f2a97169e22 
# gedit /etc/fstab 
# swapon -a 
# free -o 
      total  used  free  shared buffers  cached 
Mem:  1030684  346132  684552   0  20968  175912 
Swap:  2064376   0 2064376 

gedit/etc/fstabmkswap द्वारा बनाई नए के साथ पुराने स्वैप UUID को बदलने के लिए किया गया था।

ध्यान दें कि यह प्रश्न वास्तव में Superuser या Serverfault पर स्टैक ओवरफ़्लो पर अधिक उपयुक्त होगा, जिसका उद्देश्य प्रोग्रामिंग प्रश्नों के लिए होना है।

+0

आपको सिंकिंग की आवश्यकता क्यों होगी? सभी शटडाउन के बाद भी 'सिंक' का कारण बनना चाहिए, है ना? – 0xC0000022L

+0

बेल्ट, ब्रेसिज़ और स्ट्रिंग का एक टुकड़ा मुझे लगता है @ 0xC0000022L। बिना कोशिश करें और देखें कि यह काम करता है या नहीं। मुझे लगता है कि सिद्धांत यह है कि बिना सिंक के; सिंक 1; सिंक' के बाद केंद्र किसी भी गैर-लिखित कैश किए गए कैश लिखने को 'zero.fill' को हटा सकता है जैसे ही इसे 'rm zero.fill' कमांड मिलता है, उन्हें छोड़कर -zeroed। –

+0

क्षमा करें @EricGuo, आपकी टिप्पणी अस्पष्ट है। क्या आपका मतलब है कि आपको मेरा जवाब यहां पसंद है, या आपको एक और जवाब पसंद है जिसे आप लिंक करने का प्रयास कर रहे थे? यदि उत्तरार्द्ध, तो आपका लिंक किसी उत्तर के बजाय एक प्रश्न की ओर इशारा करता है, इसलिए मुझे नहीं पता कि आप किस उत्तर के बारे में बात कर रहे हैं। पता बार से गैर परमा लिंक कॉपी करने के बजाय उत्तर के नीचे "साझा करें" परमा लिंक का उपयोग करें। –

3

क्या आप देख रहे हैं (प्लेयर के संस्करण 5 में) है:

  1. (अपने डिस्क की आवश्यक गृह व्यवस्था के बाद) वी एम नीचे शक्ति
  2. संपादित करें वर्चुअल मशीन सेटिंग्स पर
  3. क्लिक करें हार्ड डिस्क (बाएँ फलक में) पर उपयोगिताएँ
  4. क्लिक करें
  5. कॉम्पैक्ट चयन
+0

वीएमवेयर प्लेयर – rboy

+0

में भी काम करता है केवल काम करता है मैं वीएमवेयर प्लेयर के कुछ संकेत हैं जो आपकी वर्चुअल डिस्क के कुछ हिस्सों को कम किया जा सकता है। आप 'zerofree' (Linux) या 'sdelete' (Windows) जैसे टूल का उपयोग" शून्य/अमान्य "करने के लिए अप्रयुक्त स्थान पर कर सकते हैं। बाद में कॉम्पैक्ट विकल्प काम कर सकता है। – AnDus

11

इस प्रश्न में टक्कर लें क्योंकि मेरे पास वीएमवेयर प्लेयर 5 के साथ है और उपकरण जीयूआई को नियंत्रण कक्ष में भी हटा दिया गया है और मेजबान से इसे करने से अब और काम नहीं आता है। सभी विकल्प के लिए VMwareToolboxCmd.exe

और प्रकार मदद \ Program Files \ VMware \ VMware उपकरण \: वैसे भी वीएम विंडोज अतिथि खुला कमांड लाइन हटना और करने के लिए

सी नेविगेट करने के लिए प्राप्त करने के लिए तो मैं इस्तेमाल किया

C: \ Program Files \ VMware \ VMware उपकरण \ VMwareToolboxCmd.exe डिस्क हटना c: \

यह जबकि वें चलाता है ई मशीन चालू है, इसे देखें और

+0

अंत में 'c: \' किस ड्राइव को संदर्भित करता है? –

+1

यह विंडोज अतिथि पर लागू होता है जो ऑपरेटिंग सिस्टम के रूट ड्राइव को संदर्भित करता है, मैंने इसे यूनिक्स अतिथि पर नहीं देखा है और यह मान लेगा कि सहायता फ़ाइल '/' का समर्थन करेगी –

0

दुर्भाग्यवश मेरे द्वारा प्रदान किए गए उत्तर में से कोई भी मेरे लिए काम नहीं करता है (मैं अपने होस्ट सिस्टम के रूप में विंडोज 8.1 का उपयोग करता हूं, सेंटोस 7 वीएमवेयर प्लेयर के अंदर चल रही अतिथि प्रणाली है)।

मेरे अतिथि सिस्टम में स्थापित वीएमवेयर उपकरण के साथ, मैं निम्नलिखित आदेशों को कॉल कर सकता हूं, जो मेरे लिए चाल है।

/ 
/boot 
/home 

उपयोग उदहारण के लिए:

vmware-toolbox-cmd disk list सभी घुड़सवार विभाजन कि shrinked किया जा सकता है पता चलता दिए गए विभाजन को कम करने के लिए vmware-toolbox-cmd disk /home