आप एक माउंटेड विभाजन को fsck क्यों नहीं कर सकते?


43

यह सर्वविदित है कि आपको माउंटेड विभाजन को कभी भी बंद नहीं करना चाहिए। मैं समझ सकता हूं कि यह आसानी से भ्रष्टाचार को कैसे जन्म दे सकता है यदि फाइलसिस्टम fsck (जैसे, -a विकल्प का उपयोग किया जाता है) द्वारा लिखा गया है, लेकिन केवल पढ़े गए चेक को माउंटेड डिस्क पर क्यों नहीं चलाया जा सकता है?

जवाबों:


28

से:

http://linux.die.net/man/8/fsck.ext3

"ध्यान दें कि सामान्य रूप में इसे चलाने के लिए सुरक्षित नहीं है e2fsckघुड़सवार फ़ाइल सिस्टम पर। अगर केवल अपवाद नहीं है -nविकल्प निर्दिष्ट, और -c, -lया -Lविकल्पों में निर्दिष्ट नहीं हैं। हालांकि, भले ही वह ऐसा करने के लिए सुरक्षित है, द्वारा मुद्रित परिणाम e2fsckहैं फाइल सिस्टम माउंट होने पर मान्य नहीं है। यदि e2fsckआपसे पूछा जाए कि क्या आपको एक फाइल सिस्टम की जांच करनी चाहिए जो माउंट किया गया है, तो एकमात्र सही उत्तर '' नहीं '' है। केवल विशेषज्ञ जो वास्तव में जानते हैं कि वे क्या कर रहे हैं, इस प्रश्न का उत्तर किसी अन्य में देने पर विचार करना चाहिए। मार्ग। "


3
एक अपवाद: यदि फ़ाइलसिस्टम केवल-पढ़ने के लिए माउंट किया गया है, और fsck भी केवल-पढ़ने के लिए मोड में है, तो चीजें ठीक हैं
डेमी

31

मूल समस्या यह है कि फ़ाइल सिस्टम चेकर फ़ाइल सिस्टम का हिस्सा नहीं है (आमतौर पर)। इसके बजाय यह एक अलग प्रोग्राम है जो कर्नेल में फाइल सिस्टम कोड के समान डिस्क को पढ़ता और लिखता है। परिणामस्वरूप, यदि आप सक्रिय फ़ाइल सिस्टम पर fsck चलाते हैं, तो आपके पास दो अलग-अलग इकाइयाँ हैं जो एक ही डेटा (डिस्क) को पढ़ रही हैं (और संभवतः संशोधित कर रही हैं), लेकिन वे किसी भी तरह से एक दूसरे के साथ समन्वय नहीं कर रहे हैं। परिणाम, जैसा कि अन्य ने बताया है, अधिकांश चेकर्स उम्मीद करते हैं कि कोई और फ़ाइल सिस्टम मेटाडेटा को बदल नहीं रहा है जब वे चलते हैं। यदि कर्नेल फ़ाइल सिस्टम कुछ ऐसा बदलता है जो परीक्षक को उम्मीद नहीं है, तो वे भ्रमित हो जाएंगे और / या गलत त्रुटियों की रिपोर्ट करेंगे।

चेकर्स के साथ कुछ फ़ाइल सिस्टम हैं जिन्हें स्पष्ट रूप से "ऑन-लाइन" (यानी, जबकि फ़ाइल सिस्टम सक्रिय है) चलाने के लिए डिज़ाइन किया गया है। एफएफएस / यूएफएस के नए संस्करण फाइलसिस्टम के हाल के स्नैपशॉट के खिलाफ fsck चलाकर ऐसा करते हैं (एक रीड-ओनली, पॉइंट-इन-टाइम, कॉपी-ऑन-राइट प्रतिकृति)। यदि यह समस्याएँ ढूँढता है, जैसे कि आवंटन बिट-मैप में असंगतताएँ, तो यह उन्हें सिस्टम कॉल के माध्यम से सही करता है, बजाय कच्ची डिस्क पर लिखने के। यह इसे सक्रिय फ़ाइल सिस्टम के साथ समन्वय करने देता है।

NetApp के WAFL में एक ऑन-लाइन चेकिंग टूल भी है। शायद अन्य हैं।


11

एक विभाजन पर fsck को पढ़ना-लिखना आरोहित करना मूर्खतापूर्ण होगा, यहां तक ​​कि केवल-पढ़ने के लिए मोड में fsck के साथ। फाइलसिस्टम fsck के तहत बदल जाएगा, और इन-मेमरी डेटा जो कि फाइलसिस्टम से fsck कैश को अमान्य कर देगा (और इस तरह fsck असंगतता देखेगा)। आप रीड-ओनली माउंटेड फाइल सिस्टम पर रीड-ओनली मोड में fsck चला सकते हैं और वैध परिणाम प्राप्त कर सकते हैं। रीड-ओनली माउंटेड फाइल सिस्टम पर रीड / राइट मोड में fsck चलाना, यदि fsck अपने रन के दौरान फाइलसिस्टम में बदलाव करता है, तो कर्नेल को फाइल सिस्टम को अप्रत्याशित रूप से नीचे बदलते हुए देखने का कारण बनेगा। वह भी बुरा होगा।


आपने लिखा है "केवल पढ़ने के लिए माउंटेड फिल्म्स पर रीड / राइट मोड में रनिंग fsck कर्नेल को फाइल सिस्टम को अप्रत्याशित रूप से नीचे बदलते हुए देखना होगा"। फाइल-सिस्टम संरचना केवल पढ़ने के लिए माउंटेड फिल्म्स पर क्यों बदलती है?
गुइतली

इस उत्तर के अनुसार, रीड-ओनली विभाजन पर fsck ठीक है, यदि आप वार्डों के बाद रिबूट करते हैं: serverfault.com/a/405252/90324
guettli

@guettli - आप जिस उत्तर से जुड़े हैं, वही बात मैं कह रहा हूं। (मैंने अपनी वर्तनी की त्रुटि, BTW तय कर दी। धन्यवाद!) यदि fsck परिवर्तन करता है, जबकि कर्नेल में फाइलसिस्टम को केवल पढ़ने के लिए कैश्ड डेटा है, जो fsck द्वारा किए गए परिवर्तनों के प्रकाश में अमान्य हो सकता है। यकीन है, आप बाद में रिबूट कर सकते हैं। रिबूट करने का मौका मिलने से पहले आप एक रोमांचक कर्नेल बग भी खोज सकते हैं और अपनी कर्नेल को घबरा सकते हैं।
इवान एंडरसन

9

इस तथ्य के अलावा कि यह संभवतः आपके I / O थ्रूपुट को मार देगा, अगर फ़ाइल सिस्टम को संशोधित किया जा रहा है जबकि यह fsck'd है तो कोई रास्ता नहीं है fsck परिवर्तनों का ट्रैक रख सकता है और अनिश्चितताओं की रिपोर्ट कर सकता है।

एक्सएफएस जैसे कुछ फाइलसिस्टम आपको निरंतरता के लिए जांच करने देते हैं, जबकि फाइल सिस्टम को रीड-राइट पर घुड़सवार किया जाता है, इस बात की चेतावनी के साथ कि त्रुटिपूर्ण त्रुटियों की सूचना दी जाएगी। xfs_checkजाँच करने से पहले फाइलसिस्टम को अनमाउंट या माउंटेड रीड-ओनली किया जाना चाहिए।


6

खैर, fsck की बात फाइलसिस्टम विसंगतियों की रिपोर्ट करना है, जो कि उल्लंघनकर्ताओं का उल्लंघन है।

हालाँकि इनमें से कई जाँचों में एक से अधिक FS संरचना शामिल होती है। यदि कोई FS (डेटा लिखना) को संशोधित कर रहा है, तो ये संरचनाएँ अस्थायी रूप से सिंक से बाहर हो सकती हैं। fsck इसे एक असंगतता के रूप में देखेगा, भले ही यह वास्तव में कोई समस्या नहीं है। fsck के पास यह बताने का कोई तरीका नहीं है कि क्या असंगतता अस्थायी है, या एक स्थायी समस्या है जिसे ठीक करने की आवश्यकता है। तो यह संभवतः काम नहीं कर सकता (जब तक कि एफएस को विशेष रूप से ऑनलाइन जाँच की अनुमति देने के लिए डिज़ाइन नहीं किया जाता है। कुछ करते हैं, लेकिन ext3 नहीं करते हैं)।


3

खैर, आप कर सकते हैं। fsck -n / dev / sda1 ठीक यही करेगा, कम से कम ext3 पर। मैंने अभी इसका परीक्षण किया :)


-4

आप कर सकते हैं, जैसा कि आप एक चलती ब्लेंडर में अपना हाथ छड़ी कर सकते हैं और संभवतः अपने आप को घायल नहीं कर सकते हैं, या जैसा कि आप एक ऊंची इमारत से छलांग लगा सकते हैं, जबकि आप नीचे फुटपाथ पर रखे कुशन के छोटे ढेर के लिए निशाना लगाते हैं।

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


वास्तव में, मुझे लगता है कि एक बेहतर सादृश्य एक चलती ब्लेंडर को देखना होगा, या एक ऊंची इमारत के किनारे पर नज़र डालना होगा। सिफ़ पढ़िये।
माइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.