"Rm: xxx को नहीं हटा सकते: BTRFS पर डिवाइस पर कोई स्थान नहीं छोड़ा गया"


17

ओपनस्यूज 12.2 पर चल रहा है।

अचानक रूट parition भरा हुआ लगता है (99%) लेकिन मैं अब फ़ाइलों को मैन्युअल रूप से नहीं निकाल सकता।

"आरएम: एक्सएक्सएक्स को हटा नहीं सकता है: डिवाइस पर कोई स्थान नहीं बचा है" हालांकि डीएफ के अनुसार 450 एमबी अभी भी मुफ्त है। फाइलसिस्टम BTRFS है।

मैं btrfsck का उपयोग करके FS की जाँच करने की कोशिश की, लेकिन यह मदद नहीं की।

क्या करें?


1
क्या आपके पास स्नैपशॉट सक्षम है?
MadHatter

क्या आपने जांच की है कि क्या कोई प्रक्रिया अभी भी फ़ाइल का उपयोग करके चल रही है? (lsof के साथ जांच करें), यदि हां, तो कृपया प्रक्रिया को रोक दें और फ़ाइल को फिर से निकालने का प्रयास करें।
9

जवाबों:


20

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

Btrfs विकि पर एक सुझाव फ़ाइल को हटाने के बजाय उसे क्लोब करने के लिए है।

#instead of this
rm -f ./some_file

# do this
true >| ./some_file

वह निर्देशिका प्रविष्टि को बदले बिना फ़ाइल की सामग्री को हटा देगा। एक बार जब आप अपने कोने से बाहर निकल आते हैं, तो आप सामान्य जैसी फ़ाइलों को हटा सकते हैं। यदि यह आपको परेशान करता है, तो आप अस्थायी रूप से nodatacowविकल्प के साथ रिमाउंट करना चाहते हैं , जो कॉपी-ऑन-राइट व्यवहार को बंद कर देता है। लेकिन ... निश्चित नहीं है कि मदद मिलेगी या नहीं।

सामान्य तौर पर, हालांकि: एक BTRFS फाइलसिस्टम को सूखा न चलाएं। यह अभी भी पूर्व-उत्पादन सॉफ़्टवेयर है, और कोने के मामले थोड़े मोटे हैं।


2
चाल अच्छी तरह से एक cifs माउंटेड नेटवर्क ड्राइव के लिए भी काम करती है, धन्यवाद!
चिह्न

2

मुझे उसी त्रुटि संदेश का सामना करना पड़ा है, लेकिन मेरे मामले में फ़ाइल सिस्टम को पूर्ण रूप से रिपोर्ट नहीं किया गया था:

user@host:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       2.8G  2.0G  618M  77% /

लेकिन BTRFS से पूछने पर पता चला कि यह वास्तव में पूर्ण था:

user@host:/# btrfs fi show
Label: none  uuid: {UUID redacted because reasons}
        Total devices 1 FS bytes used 1.92GiB
        devid    1 size 2.79GiB used 2.79GiB path /dev/sda3

यहां तक ​​कि किसी भी फाइल को ओवरराइट करना (जैसे टायलर ने सुझाव दिया है) असंभव था। मेरा समाधान http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html पर पाया गया, जो फ़ाइल सिस्टम का उपयोग करते हुए एक मैनुअल उपयोग करने की सलाह देता है btrfs balance start -dusage=55 /path/to/filesystem


0

मेरे लिए, ZFS का उपयोग करते हुए, मैंने पाया कि अन्य फ़ाइलों को हटाने से ZFS विभाजन पर पर्याप्त स्थान खाली हो गया, और तब मैं प्रश्न में फ़ाइलों को हटाने में सक्षम था।


0

मेरे मामले में, लिनक्स पर एक ZFS फाइल सिस्टम के साथ, मैं फ़ाइल को छोटा भी नहीं कर सकता था। पुराने स्नैपशॉट को नष्ट करने ने चाल चली (यदि वर्तमान में)।

zfs destroy /path/of/snapshot

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