एक ext4 विभाजन और फाइलसिस्टम का विस्तार कैसे करें?


44

मेरे पास एक 320GB ext4 विभाजन के साथ 400GB डिस्क है। मैं बाएं स्थान (80GB मुक्त स्थान) का उपयोग करने के लिए ext4 विभाजन बढ़ाना चाहूंगा।

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

मैं ये कैसे करूं?

मैंने लोगों को उपयोग करते हुए देखा है resize2fsलेकिन मुझे समझ नहीं आता कि यह विभाजन का आकार बदलता है।

एक और उपाय उपयोग करना होगा fdiskलेकिन मैं अपने विभाजन और ढीले डेटा को हटाना नहीं चाहता। मैं किसी भी फ़ाइल को खोए बिना विभाजन को कैसे बढ़ा सकता हूं?

नोट: मैं LVM के बिना एक अन-माउंटेड डेटा पार्टीशन के बारे में बात कर रहा हूँ और मेरे पास बैकअप है, लेकिन मैं रिकवरी पर कुछ समय बिताने से बचना चाहता हूँ।


इस प्रकार के प्रश्न पूछे गए हैं और कई बार उत्तर दिए गए हैं जिनसे मैं अवगत हूं। क्या आपने यहाँ अभिलेखागार से परामर्श किया है?
mdpc

जवाबों:


45

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

  1. भागो parted, या gpartedयदि आप एक जीयूआई पसंद करते हैं, और अतिरिक्त स्थान का उपयोग करने के लिए विभाजन का आकार बदलें। मैं पसंद gpartedकरता हूं क्योंकि यह आपको एक अच्छा चित्रमय प्रतिनिधित्व देता है, जो आपके प्रश्न में खींचा गया है उसी के समान है।

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever (बस यह पता लगाने के लिए कि क्या आप सुरक्षित पक्ष पर हैं)

  4. अपना विभाजन याद रखें।

जब मैंने इसे कभी विफल नहीं देखा, तो पहले अपना डेटा वापस करें!


5
resize2fsआदमी पेज का कहना है: फाइल सिस्टम लगाया गया है, तो यह कर्नेल का समर्थन करता है ऑन लाइन आकार बदलने संभालने की फाइल सिस्टम घुड़सवार आकार का विस्तार करने के लिए इस्तेमाल किया जा सकता है। (इस लेखन के रूप में, लिनक्स 2.6 कर्नेल ext3 और ext4 का उपयोग करके माउंट किए गए फाइल सिस्टम के लिए ऑन-लाइन आकार का समर्थन करता है।) हालाँकि, माउंटेड फ़ाइल सिस्टम का आकार बदलना एक अधिक खतरनाक ऑपरेशन है, क्योंकि कर्नेल आसानी से स्थिर हो सकता है या दुर्घटनाग्रस्त हो सकता है, जबकि शायद ही कभी एक्सरसाइज कोड चलाते हुए, आपके फाइल सिस्टम को खराब स्थिति में छोड़ देता है।
२००

1
सच है - लेकिन आप अपनी विभाजन तालिका के साथ फाइल सिस्टम के साथ गड़बड़ नहीं करना चाहते हैं। इसलिए मैंने fs के साथ शुरुआत की थी।
फ़्लॉप

1
एक्सटी 4 के लिए, resize4fsआरएचईएल 5. के बजाय हो सकता है
ज़ैक थॉम्पसन

1
अपने रूट फाइल सिस्टम के साथ विभाजन को बढ़ाना तब तक ठीक काम करना चाहिए जब तक कि 1.आप शुरुआती सेक्टर नंबर को बदल न दें। 2.अगला चरण लेने से पहले आप विभाजन तालिका को बदलने के बाद रिबूट करें।
कास्परड

CentOS 6 पर एक ext4 विभाजन का आकार बदलने के लिए मना कर दिया।
reinierpost

21

हाँ, आप EXT4 fs को ऑनलाइन बढ़ा सकते हैं यदि आपके पास पहले से ही विभाजन है। क्या आपने विभाजन को क्रमबद्ध किया है? क्या आपको LVM मिला है?

sudo resize2fs /dev/drive_to_grow

fdiskआपके विभाजन का आकार बदल देगा, सच है, लेकिन अगर यह एक रूट विभाजन (या यदि कोई माउंटेड विभाजन है) तो इसे पहले अनमाउंट करना होगा। तो सबसे अधिक संभावना ऑफ़लाइन!

डिस्क / एफएस संचालन से संबंधित किसी भी चीज के साथ मैं बैकअप के लिए दृढ़ता से सलाह देता हूं, और परीक्षण किया, अच्छी तरह से समझा, वसूली प्रक्रिया।


यदि आप fdiskएमबीआर का उपयोग करना सुनिश्चित करने के लिए जांच करते हैं, तो जीपीटी का उपयोग न करें (उदाहरण के लिए हाइब्रिड एमबीआर के साथ)।
14

2
अपने डेबियन एक्सईएन सर्वर पर मैंने अपनी तार्किक मात्रा को lvextend +40G /dev/vg0/volumeNameफिर से आकार दिया , फिर वीएम में रूट के रूप में लॉग इन किया और प्रवेश किया resize2fs /dev/xvda2जो चल रूट फाइलसिस्टम को नए अधिकतम तक बढ़ाता है । मुझे यकीन नहीं है कि अगर इसकी आवश्यकता थी, लेकिन मैंने इस कार्रवाई के बाद वीएम को रिबूट किया। सब ठीक लगता है।
रूबॉ77

1
@ rubo77 नहीं, रिबूट की जरूरत नहीं,
क्रिस

5

ध्यान दें, कुछ VDS सर्वर पर आप गैर-प्राथमिक रूट विभाजन हो सकते हैं और पहले विस्तारित कंटेनर कंटेनर का आकार बदलने की आवश्यकता है

उदाहरण के लिए, आपने बस अपनी योजना को अपग्रेड किया है और कुछ इस तरह है:

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

यहाँ / dev / vda2 - आपका विस्तारित कंटेनर है। और / देव / vda5 - मुख्य विभाजन जिसे हमें पूर्ण उपलब्ध स्थान का आकार बदलने की आवश्यकता है।

सबसे सरल तरीका:

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space

क्या वास्तव में मेरी मदद की, देख रहा था कि आप ENDनकारात्मक संख्या पर सेट कर सकते हैं । आमतौर पर आप किसी आकार के विभाजन के सटीक आकार का पता नहीं लगाते हैं - आप नहीं जानते कि कैसे ENDतर्क सेट किया जाए resizepart। इसे सेट करने -1sसे आपके विभाजन का अधिकतम आकार बदल जाएगा।
श्रीगी जूल 2'18

त्रुटि: अमान्य टोकन -1 s
starbeamrainbowlabs

3

पार्टेड Centos पर ext4 पर काम नहीं करता है। मुझे विभाजन को हटाने और पुनः बनाने के लिए fdisk का उपयोग करना पड़ा, जो (मैंने मान्य किया) डेटा खोए बिना काम करता है। मैंने http://geekpeek.net/resize-filesystem-fdisk-resize2fs/ पर चरणों का पालन किया । यहाँ वे संक्षेप में हैं:

$ sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w

1
सर्वर दोष में आपका स्वागत है! लिंक सड़ने से बचाने के लिए कृपया उत्तर में दिए गए चरणों को संक्षेप में बताएं।
२००_सुबह ६’१४ को

इस प्रक्रिया का उपयोग किया लेकिन विभाजन बनाने के लिए gdisk का उपयोग किया। इसने मुझे डेटा को बचाने और एक विभाजन बनाने की अनुमति दी जो था> 2TB
pcnate

2

partedकर सकते हैं resizeविभाजन और उनके फ़ाइल सिस्टम।


धन्यवाद, मैं चित्रमय का उपयोग कर रहा था और यह विभाजन के आकार का समर्थन नहीं करता है। मैंने cli प्रोग्राम पर विकल्प देखा है, लेकिन क्या आप मुझे बता सकते हैं कि डेटा खोए बिना इसका उपयोग कैसे करें? क्या resize NUMBER START END, सेक्टर नंबर START और END हैं? मुझे यह कैसे पता चलेगा?
मिमिकिप

विभाजन को आकार देने जैसे किसी भी जोखिम भरे ऑपरेशन को करने से पहले अपने डेटा का बैकअप लेने की हमेशा सलाह दी जाती है। partedइकाइयों की एक पसंद का समर्थन करता है - उदाहरण के लिए, sक्षेत्रों के लिए प्रत्यय का उपयोग करें , Bया GBबाइट्स के लिए, %डिवाइस के आकार के प्रतिशत के cylलिए , और सिलेंडर के लिए।
२००_सफल

2

आप विभाजन को फिर से बनाने (या फिर से बनाने) का उपयोग fdiskया cfdiskसंशोधित कर सकते हैं (बस यह सुनिश्चित करें कि आप इसकी शुरुआत सीमा नहीं बदलेंगे), फिर रिबूट और resize2fs। लेकिन सामान्य तौर पर यह MBR / GPT के बजाय LVM-2 का उपयोग करना बेहतर होता है क्योंकि यह आपको उन परिवर्तनों w / o कर्नेल रिबूटिंग में लाने की अनुमति देता है।


1

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

मुझे लगता है कि इस मामले में सबसे अच्छा "बचाव" सीडी या यूएसबी एक बूट करने योग्य gparted USB या CD
केस होगा जिसमें आपको एक बचाव छवि की आवश्यकता होती है
। 1. विस्तार किए जाने वाला विभाजन अंतिम विभाजन है, लेकिन आपने इससे बूट किया है और इसे अस्वीकार नहीं किया जा सकता है।
sda1 = बूट (या स्वैप)
sda2 = स्वैप (या बूट)
sda3 = /
अप्रयुक्त स्थान

  1. यदि विभाजन का विस्तार किया जाना अंतिम विभाजन नहीं है, तो विभाजन को स्थानांतरित करने या उसका आकार बदलने के लिए आपको gparted बूट छवि का उपयोग करना होगा।
    sda1 = बूट
    sda2 = / (विभाजन का विस्तार अंतिम नहीं है)
    sda3 =
    अप्रयुक्त स्थान को स्वैप करें

यदि आप एक माउंटेड विभाजन को बदलना चाहते हैं जो "रूट" विभाजन (/) नहीं है, जैसे / घर जो एक अलग विभाजन है, तो बचाव छवि का उपयोग करने की आवश्यकता नहीं है। यह विशेष रूप से सच है यदि अंतिम विभाजन है।
sda1 = boot
sda2 = /
sda3 = / home
अप्रयुक्त स्थान
-or-
sda1 = /
sda2 = / home
अप्रयुक्त स्थान

यह वह स्थिति है जब मेरे पास एक छोटी ड्राइव या एसएसडी से एक छवि होती है और इसे एक बड़े एसएसडी में ले जाया जाता है।

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

मैं GUI (KDE / Gnome / etc) सत्र का लॉगआउट करता हूं और शेल सत्र लाने के लिए [CTRL] + [ALT] + [F1] का उपयोग करता हूं।
यदि आप किसी उपयोगकर्ता लॉग इन से लॉग-आउट करते हैं, तो किसी भी फाइल को बंद करने के लिए लिनक्स 20-30 सेकंड का समय ले सकता है, इसलिए आपको ओमाउंट / होम की कोशिश करने में त्रुटियां हो सकती हैं।
1. मैं / घर (मैं इस कमांड को पुनः प्रयास करता हूं यदि यह 30 सेकंड तक विफल रहता है, तो अन्य सत्रों पर जाएं यह देखने के लिए कि क्या मैं "सीडी / होम / एक्सएक्सएक्स" कहीं हूं।)
2. भाग / देव / एसडीए
ए। आकार x (x = विभाजन जिसे आप आकार बदलना चाहते हैं, विभाजन की सूची पाने के लिए "p" का उपयोग करें)
b। आकार = "-1" (माइनस 1 का अर्थ डिस्क के अंत से 1 क्षेत्र है)
c। q (भाग में भाग किया गया)
3 resize2fs / dev / sda "x" (x = विभाजन का आकार बदला जा सकता है। यह फाइलसिस्टम को भी बताता है)
4. df -m (मैं इसे सत्यापित करने के लिए होम / चेक / होम)
मैंने इस पद्धति का उपयोग करके कभी भी फाइल नहीं खोई है या ड्राइव को दूषित नहीं किया है।

सौभाग्य


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