मैं सर्वर पर GUI का उपयोग किए बिना कमांड लाइन का उपयोग करके विभाजन का आकार कैसे बदल सकता हूं?


44

मेरे पास केवल टर्मिनल के माध्यम से सर्वर तक पहुंच है और मैं GParted जैसे ग्राफिकल टूल का उपयोग नहीं कर सकता हूं!
मैं स्वैप के लिए रूट के एक हिस्से (लगभग 768mb) से एक नया विभाजन बनाना चाहता हूं।

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         20G  1.3G   18G   7% /
udev             10M     0   10M   0% /dev
tmpfs           199M  4.9M  194M   3% /run
tmpfs           100M   12K  100M   1% /run/user
tmpfs           5.0M  4.0K  5.0M   1% /run/lock

जवाबों:


36

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

वैकल्पिक समाधान: स्वैप फ़ाइल

पूरे विभाजन को बनाने के विकल्प के रूप में, एक स्वैप फ़ाइल अपने आकार को मक्खी पर अलग-अलग करने की क्षमता प्रदान करती है , और इसे पूरी तरह से आसानी से हटा दिया जाता है। स्वैप फ़ाइल गर्म प्लग करने योग्य हो सकती है । यानी बिना OS को बंद किए / बंद किए बिना जोड़ा और हटाया जा सकता है।

  1. नामक एक 512 एमबी फ़ाइल बनाएँ /swapfile। यह हमारी स्वैप फाइल होगी।

    fallocate -l 512M /swapfile  
    

    या

    dd if=/dev/zero of=/swapfile bs=1M count=512
    
  2. सही अनुमतियाँ सेट करें (क्योंकि विश्व-पढ़ने योग्य स्वैप फ़ाइल एक बहुत बड़ी स्थानीय भेद्यता है):

    chmod 600 /swapfile
    
  3. सही आकार की फ़ाइल बनाने के बाद, इसे स्वैप करने के लिए प्रारूपित करें:

    mkswap /swapfile
    
  4. स्वैप फ़ाइल सक्रिय करें:

    swapon /swapfile
    
  5. संपादित करें /etc/fstabऔर स्वैप फ़ाइल के लिए एक प्रविष्टि जोड़ें:

    /swapfile none swap defaults 0 0
    

आर्च लाइनक्स विकी पर अधिक जानकारी ।


मुझे लगता है कि यह सबसे आसान और कुशल उत्तर है =)! हालांकि एक विभाजन के बजाय एक फ़ाइल का उपयोग करने में निहितार्थ हैं?
अला अली

2
थोड़ा कम प्रदर्शन अगर फ़ाइल खंडित है। कोई भी लाभकारी स्वैप फ़ाइल या विभाजन के लिए कोई प्रदर्शन लाभ नहीं है, दोनों को एक ही तरह से व्यवहार किया जाता है।
totti

1
मुझे लगता है कि यह सबसे अच्छा समाधान है। जैसा कि आप स्वरूपण, सिकुड़न या अन्यथा विभाजन (तालिकाओं) को नहीं बदल रहे हैं, डेटा-हानि का कोई जोखिम नहीं है।
R110

27

सबसे पहले यह जानना महत्वपूर्ण है कि यदि आप इसका उपयोग कर रहे हैं तो आप अपने रूट विभाजन को छोटा करने के लिए आकार नहीं बदल सकते (इसे ऑनलाइन सिकुड़न कहा जाता है)। आप इसे केवल ऑनलाइन बढ़ा सकते हैं। यह resize2fsकमांड द्वारा समर्थित है । मैं निम्नलिखित मानूंगा:

  • आप रूट विभाजन पर अपनी जानकारी को ढीला नहीं करना चाहते हैं।
  • LiveCD का उपयोग करने के लिए आपके पास हार्ड ड्राइव तक भौतिक पहुँच नहीं है। यह वर्चुअल वातावरण या रिमोट पर लागू हो सकता है। वर्चुअल के मामले में आप अभी भी LiveCD से बूट करने का प्रबंधन कर सकते हैं यदि आप VMCD को LiveCD से बूट करने के लिए सेट करते हैं। यह मान रहा है कि वीएम डेस्कटॉप जीयूआई के आउटपुट का समर्थन करता है, जहां से आप आसानी से आकार देने के लिए जिप्टेड ऐप चलाएंगे। लेकिन चूंकि इसकी संभावना कम है इसलिए मैं मानता हूं कि आप नहीं कर सकते।

2 प्रकार के विभाजन हैं जिन्हें आप आकार दे सकते हैं, LVM विभाजन या लॉजिकल वॉल्यूम प्रबंधक विभाजन जो आकाशगंगा के निर्माण के बाद से ऑनलाइन आकार (श्रिंक / ग्रोइंग) का समर्थन करते हैं और हम में से अधिकांश मानक विभाजन का उपयोग करते हैं। अभी केवल एक ही है जिसमें लगभग 100% पूर्ण ऑनलाइन आकार बदलने का समर्थन है (सिकोड़ें / बढ़ें) btrfs फाइल सिस्टम है (जो अभी भी विकास में है)। मैं समझाऊंगा कि हममें से अधिकांश सामान्य विभाजन कैसे करते हैं, इसका उपयोग ext4 फाइलसिस्टम में किया जाता है।

विभाजन का आकार देना (बढ़ना)

अपने विभाजन को बढ़ाने के लिए आप इसे रूट माउंटेड के साथ कर सकते हैं। ऐसा करने के लिए बस करो:

sudo resize2fs /dev/sda1

बशर्ते आपके पास पहले से ही खाली जगह विलय के लिए तैयार हो। बाद में मैं परिवर्तनों को सही ढंग से लेने के लिए रीबूट करने की सलाह देता हूं। उपरोक्त आदेश अधिकतम अनुमत आकार का होगा। यदि आप किसी विशेष आकार का आकार बदलना चाहते हैं तो बस अंत में आकार जोड़ें:

sudo resize2fs /dev/sda1 25G

ध्यान दें कि यदि आप 25.4 GB निर्दिष्ट करना चाहते हैं, तो आप "" का उपयोग नहीं कर सकते। आपको माप की एक इकाई से नीचे जाने की आवश्यकता होगी। इस मामले में GB से MB तक, इसलिए यह इस तरह दिखेगा:

sudo resize2fs /dev/sda1 25400M

इस तरह आपके पास 25.4G का विभाजन होगा

विभाजन का आकार देना (सिकोड़ना)

विभाजन को सिकोड़ना एक दो कदम प्रक्रिया है जिसमें शामिल हैं:

  • जरूरत के हिसाब से फाइल सिस्टम का साइज कम करना।
  • फ़ाइल सिस्टम से मेल खाने के लिए अंतर्निहित ब्लॉक डिवाइस का आकार कम करना।

फ़ाइल सिस्टम की क्षमता को कम करने से पहले आपको ब्लॉक डिवाइस के आकार को कम करने की आवश्यकता होती है (जो विभाजन या तार्किक वॉल्यूम हो सकता है)। चूंकि यह किसी भी एक्सट्रीम * फाइल सिस्टम के लिए उपलब्ध नहीं है, इसलिए आप 500 एमबी स्वैप एक बनाने के लिए इसे 20 जीबी से 19.5 जीबी तक सिकोड़ नहीं पाएंगे।

यहां तक ​​कि एक्सट 4 ऑनलाइन सिकुड़ने का समर्थन नहीं करता है। यदि आप इसे करने की कोशिश करते हैं तो आपको निम्नलिखित मिलेंगे:

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

आपका एकमात्र दांव जहां तक ​​मुझे पता है या तो यह है:

  • उसी सर्वर पर (अन्य विभाजन पर) एक और उबंटू संस्करण स्थापित करें जिसका उपयोग मूल उबंटू सर्वर के रूट विभाजन को सिकोड़ने के लिए किया जा सकता है।

  • उबंटू सर्वर को उस स्क्रैच से इंस्टॉल करें जिसे आप वास्तव में चाहते हैं

  • विभाजन का आकार बदलने के लिए उबंटू सर्वर लाइव इमेज का उपयोग करें। इस स्थिति के लिए, आपको इस स्क्रीन पर जाना होगा:

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

    और ऊपर चित्र में दिखाए अनुसार Resize विकल्प चुनें। वहां से आप यह चुनेंगे कि नया आकार क्या होगा क्योंकि यहां से आप यूनिट को अनमाउंट कर सकते हैं और चाहें तो इसे सिकोड़ सकते हैं।

एक अतिरिक्त सहायता के रूप में यहाँ gparted filesystem suppor http://gparted.org/features.php है जो समर्थित लोगों की एक बहुत विस्तृत सूची देता है और इसमें यह भी शामिल है कि उनके पास पूर्ण ऑनलाइन रीसाइज़िंग है। Btrfs उनमें से एक है।


मैं उत्सुक हूं, क्या कोई अन्य फाइल सिस्टम है जो ऑनलाइन सिकुड़ने का समर्थन करता है? zfs या btrfs हो सकता है?
सेठ

मैंने नीचे एक लिंक जोड़ा है। यदि फ़ाइल सिस्टम को सही तरीके से ऑनलाइन आकार बदलना है तो कर्नेल को भी इसका समर्थन करने की आवश्यकता है।
लुइस अल्वाराडो

मेरे पास vmware मशीन पर ubuntu सर्वर है और इसकी डिस्क का आकार 120G है। लेकिन पहले समाधान के उपयोग के बाद, मुझे यह त्रुटि मिलती है: फाइलसिस्टम पहले से ही 27262720 ब्लॉक लंबा है। कुछ करने को नहीं है!
डॉ.अजकी 12

1
शुक्रिया @ Mr.Hyde। वर्कस्टेशन 10 और यहां तक ​​कि 11 के साथ कई मुद्दे थे। मैं 12 की सिफारिश करूंगा और उबंटू के लिए मैं नवीनतम या नए एलटीएस के लिए भी अपडेट करूंगा क्योंकि कुछ मुद्दे भी थे। मेरे मामले में मेरे पास वीएमवेयर वर्कस्टेशन 12.0.1 और उबंटू 15.10 64 बिट है।
लुइस अल्वाराडो

3
Resize2fs मैनपेज से:The resize2fs program does not manipulate the size of partitions.
ACK_stoverflow

6

इसका उत्तर इस बात पर निर्भर करता है कि क्या आप विभाजन को सिकुड़ सकते हैं, या नहीं। आपके मामले में, आप शायद विभाजन को अनमाउंट नहीं कर सकते। लिनक्स (UNIX / MAC OS) में, विभाजन को बढ़ाना फ़ाइल सिस्टम का उपयोग करने और इसे माउंट बिंदु (आपके मामले में /) में मैप करने के लिए संदर्भित करता है । अनमाउंटिंग का मतलब है कि आप फाइलसिस्टम का उपयोग करना बंद कर दें, और मैपिंग को माउंट पॉइंट पर हटा दें। आप अपने रनिंग OS वाले फाइल सिस्टम को अनमाउंट नहीं कर सकते हैं।

यदि विभाजन को अनमाउंट किया जा सकता है

मान लें कि आप /dev/sda4माउंट किए गए 200GB ext4 विभाजन को सिकोड़ना चाहते हैं /data। इसमें वर्तमान में संगीत और फिल्में या समान हैं, इसलिए आप इसे अस्थायी रूप से अनमाउंट कर सकते हैं। आप 4GB स्वैप बनाना चाहते हैं।

sudo umount /dev/sda4

विभाजन को अनमाउंट करने के लिए।

sudo resize2fs /dev/sda4 196G

196 GB के लिए ext4 फाइल सिस्टम का आकार बदलने के लिए, यह मानते हुए कि पर्याप्त जगह है। अब, आपको विभाजन को सिकोड़ना होगा। मैं वर्तमान में विश्वास करता हूं कि आपको cfdiskमौजूदा विभाजन को हटाने के लिए उपयोग करने की आवश्यकता है , और इसके स्थान पर एक छोटे से विभाजन को फिर से बनाना है। फिर आप स्वैप के लिए एक नया विभाजन भी बना सकते हैं।

sudo cfdisk /dev/sda 

आपको अपनी विभाजन तालिका का निरीक्षण करने के लिए एक पाठ-आधारित गुई देगा। मैं आपको printउस बिंदु पर एक फ़ाइल या स्क्रीन पर विभाजन तालिका के लिए सलाह दूंगा, और बैकअप के रूप में वर्तमान कॉन्फ़िगरेशन पर ध्यान दूंगा। फिर आप चुन सकते /dev/sda4हैं और deleteविभाजन। इसके स्थान पर, free spaceप्रदर्शित किया जाएगा। newइसके स्थान पर 196 GB के साथ एक नया विभाजन बनाने के लिए उपयोग करें , और ext4 प्रकार सेट करें। फिर, अनुगामी मुक्त स्थान पर जाएं और प्रकार के साथ 4GB स्वैप विभाजन बनाएं swapनोट: मैंने इन आदेशों का परीक्षण नहीं किया, क्योंकि मैं /इस समय अपने साथ नहीं खेल सकता ।

यदि विभाजन अनमाउंट नहीं किया जा सकता है

आप माउंटेड ext3 / 4 पार्टीशन (मैनपेज देखें resize2fs) को सिकोड़ नहीं सकते । जैसा कि आप अपने OS से चला रहे हैं /, आप अनमाउंट नहीं कर सकते /। इसका मतलब है कि आपको परिवर्तनों को करने के लिए एक और OS (जैसे USB कुंजी से) बूट करना होगा।

आपके मामले में, यह एक दूरस्थ सर्वर है (केवीएम पर सबसे अधिक संभावना है), इसलिए आप यूएसबी / लाइव ओएस छवि से बूट करने में सक्षम नहीं हो सकते हैं। एक व्यवस्थापक GUI के माध्यम से अपने vServer प्रदाता से विभाजन को बदलने के अन्य तरीके हो सकते हैं। मेरा मानना ​​है कि वर्तमान में आपका सबसे अच्छा दांव है।

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