btrfs त्रुटि: संतुलन के दौरान त्रुटि - डिवाइस पर कोई स्थान नहीं बचा


15

मेरा कुबंटू 12.04 सिस्टम रूट विभाजन पर अंतरिक्ष से बाहर चला गया और बूट नहीं होगा। कमांड df -hबहुत सी जगह उपलब्ध दिखाती है (केवल 37% उपयोग के साथ):

/dev/sda2        45G   17G   29G  37%

निम्न पृष्ठ इंगित करता है कि मुझे शेष कमांड चलाना चाहिए:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_space

$ sudo btrfs fi balance start -dusage=5 /mount/point

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

ERROR: error during balancing '/blah/blah/blah' - No space left on device

मुझे वही त्रुटि मिलती है:

$ sudo btrfs fi balance start -dusage=1 /mount/point

सही समाधान क्या है?


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

जवाबों:


15

balanceइस स्थिति में चलाने के लिए तरीके हैं ।

sudo btrfs fi show
sudo btrfs fi df /mount/point
sudo btrfs fi balance start -dusage=10 /mount/point

यदि बैलेंस कमांड "डन के साथ समाप्त होता है, तो एक्सएक्स चंक्स में से 0 को स्थानांतरित करना था", तो आपको कम से कम एक चंक के स्थानांतरित होने तक "डेज" प्रतिशत पैरामीटर को बढ़ाने की आवश्यकता है।

यदि बैलेंस कमांड विफल रहता है:

ERROR: error during balancing '/blah/blah/blah' - No space left on device

आपको वास्तव में कुछ कमरे बनाने के लिए डिवाइस से फ़ाइलों को हटाने की आवश्यकता हो सकती है। फिर बैलेंस कमांड फिर से चलाएं।

हालांकि, मार्क के ब्लॉग के लिए धन्यवाद : btrfs - फिक्सिंग Btrfs फाइल सिस्टम पूर्ण समस्याएं यहां एक और विकल्प है:

इसके आस-पास पाने के लिए एक ट्रिक यह है कि अपने btrfs फाइल सिस्टम में एक डिवाइस (यहां तक ​​कि एक USB की करेगा)। यह संतुलन शुरू करने की अनुमति देनी चाहिए, और फिर आप संतुलन समाप्त होने पर डिवाइस को btrfs डिवाइस को हटा सकते हैं। इस सूची में यह भी कहा गया है कि कर्नेल 3.14 कुछ संतुलन मुद्दों को ठीक कर सकता है जो पुराने कर्नेल नहीं कर सकते हैं, इसलिए यदि आपकी कर्नेल पुरानी है तो एक शॉट दें।


7
मैंने पाया है कि कभी-कभी मुझे mount -oremount,clear_cache /mountpointखाली स्थान की गणना को ठीक करने के लिए भी आवश्यक है । (वे भ्रष्ट हो जाते हैं ...)
rrauenza

1
@ श्रुअन्ज़ा, धन्यवाद! आपको उत्तर के रूप में इसे जोड़ना चाहिए :)
mwfearnley

0

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

btrfs balance start -ddevid=<dev_id> <path>

जहाँ dev_idपाया जा सकता है:

btrfs fi show 

इनमें से कोई भी काम किया
मौसम

इसने मेरे सिस्टम को क्रैश कर दिया और वॉल्यूम अनुपलब्ध हो गया यहां तक ​​कि मैंने सिस्टम को रिबूट किया। मैंने EXT4 के साथ एक वॉल्यूम स्थापित किया है और अब मुझे आशा है कि मैं बहुत संवेदनशील बीटीआरएफएस प्रणाली से छुटकारा पा सकता हूं जिसे मैं बहुत सारी डिजाइन समस्याओं के साथ विफलता के रूप में मानता हूं।
अल बंडी

मैंने एक बार अपने btrfs वॉल्यूम को भी तोड़ दिया, क्योंकि मैंने इस btrfs balanceप्रक्रिया को बाधित किया था । उससे बचने के लिए, मैं हमेशा -dusage=XXउचित समय के भीतर प्रक्रिया को पूरा करने के लिए उपयोग करने की सलाह देता हूं । पहले छोटी संख्या से शुरू करें, फिर वेतन वृद्धि (5, 10, 20, ...)। btrfs balance statusजैसा कि यहां दिखाया गया है, आप मौजूदा लंबे समय से चल रहे संतुलन की प्रगति की निगरानी भी कर सकते हैं । (मेरी मात्रा को तोड़ने के बाद, मैं कम से कम फाइलों को निकालने में सक्षम था btrfs restore।)
जॉयवेटफील्ड

0

sudo apt-btrfs-snapshot delete-पुराने-से 3 डी डिलीट स्नैपशॉट 3 दिन से अधिक पुराने हैं। जब आप डेटा को इधर-उधर करते हैं, स्नैपशॉट डेटा जगह से बाहर हो जाता है और वास्तविक डेटा को ड्राइव पर कई स्थानों पर लिखना पड़ता है। यह पुराने स्थानों में पुराने डेटा से संबंधित स्नैपशॉट को हटाता है और उन क्षेत्रों को फिर से उपयोग के लिए मुक्त करता है। मैं डेटा को कम करने और btrfs फाइल सिस्टम पर विस्तार करने के लिए duperemove की भी सलाह देता हूं।

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