Fsck खतरनाक कब है?


37

हाल ही में मैंने एक मशीन के रूट फाइलसिस्टम को रिमोट डेटासेंटर में देखा है, जिसमें निरंतरता के मुद्दों के परिणामस्वरूप, केवल पढ़ने योग्य रीमाउंट किए गए हैं।

रिबूट पर, यह त्रुटि दिखाई गई:

UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY (i.e., without -a or -p options)

सुझाए अनुसार fsck चलाने के बाद, और मैन्युअल रूप से सुधारों को स्वीकार करने के बाद Y, त्रुटियों को ठीक किया गया था और सिस्टम अब ठीक है।

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

मेरा सवाल है: मैन्युअल हस्तक्षेप के लिए डिफ़ॉल्ट रूप से fsck क्यों पूछता है? ऐसे कार्यक्रम द्वारा किया गया सुधार कैसे और कब असुरक्षित होगा? वे कौन से मामले हैं जब sysadmin कुछ समय के लिए एक सुझावित सुधार को छोड़ना चाहता है (कुछ अन्य ऑपरेशन करने के लिए) या इसे पूरी तरह से रद्द कर सकता है?


15
यदि डेवलपर्स 100% आश्वस्त थे कि त्रुटि स्वचालित रूप से तय की जा सकती है, तो यह पहली जगह में त्रुटि नहीं होगी।
user253751

जवाबों:


42

fsckनिश्चित रूप से अच्छे से अधिक नुकसान का कारण बनता है अगर अंतर्निहित हार्डवेयर किसी तरह क्षतिग्रस्त है; खराब सीपीयू, खराब रैम, एक कठिन हार्ड ड्राइव, डिस्क नियंत्रक खराब हो गया ... उन मामलों में अधिक भ्रष्टाचार अपरिहार्य है।

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


4
मैंने असफल हार्डवेयर के साथ बहुत काम किया है और मैं इससे सहमत हूं। आखिरी चीज जो मैं करना चाहता हूं वह है fsck अगर किसी भी तरह का संदिग्ध खराब हार्डवेयर है। मैंने एक कम बिजली की घटना और बाद की वसूली भी देखी है जो स्वचालित fsck द्वारा बहुत देरी हुई थी।
जोफोरस

एक ठोस उदाहरण देने के लिए: मैंने एक डिस्क नियंत्रक के साथ एक मशीन पर काम किया है जो "रैंडमली" (10 ^ 5 में लगभग 1 बार) किसी भी डिवाइस पर XXXXXXYY को ब्लॉक करने के लिए एक रीड या राइट को चालू करने के लिए लिखेंगे। पहला उपकरण। यानी, यह अक्सर बूट सेक्टर के लिए गलत और असंरचित गलत डेटा और बूट डिस्क के विभिन्न महत्वपूर्ण फाइल सिस्टम संरचनाओं को नष्ट कर देता है। ऐसी स्थिति में fsck चलाने (लाखों की संख्या में) डेटा को पुनर्प्राप्त करने के किसी भी शेष अवसर को समाप्त कर सकता है।
एरिक टावर्स

2
1 में 10 ^ 5 एक बहुत है ... यह 10 बाइट्स कभी एमबी है।
नेल्सन

1
@ नेल्सन: यह इस प्रकार है ... वहाँ इकाई "एकल ब्लॉक स्थानान्तरण" है, न कि "बाइट्स"। तो दस खराब ब्लॉक प्रति मिलियन ब्लॉक लिखते हैं (और ब्लॉक बाइट्स की तुलना में काफी बड़े होते हैं)।
एरिक टॉवर्स ने

21

आपने एक उदाहरण देखा है कि कहां fsckकाम किया है, लेकिन मैंने अधिक क्षतिग्रस्त फ़ाइल सिस्टम को देखा है जहां यह सफलतापूर्वक काम नहीं करता है। यदि यह पूरी तरह से स्वचालित रूप से काम करेगा, तो आपके पास ddडिस्क डंप जैसी चीजों या ऐसा कुछ करने का कोई मौका नहीं हो सकता है, जो कई मामलों में मरम्मत का प्रयास करने से पहले एक उत्कृष्ट विचार होगा।

यह कभी नहीं है, कभी भी एक अच्छा विचार है कि उस तरह से स्वचालित कुछ करने की कोशिश करें।

ओह, और आधुनिक सर्वर में रिमोट कंसोल या कम से कम, स्वतंत्र रेस्क्यू सिस्टम होना चाहिए ताकि सर्वर से KVM रैक को खोले बिना ऐसा कुछ किया जा सके।


7
वास्तव में, जो एक अच्छा विचार नहीं है वह यह है कि " कभी नहीं, कभी " जैसा है, जब यह सच नहीं है। उपयोग का मामला जहां यह एक अच्छा विचार है: समस्या के मामले में सर्वर के मुख्य विभाजन को खरोंच के बजाय जल्दी से फिर से बनाया जा सकता है। वास्तव में महत्वपूर्ण डेटा एक दूरस्थ फाइल सिस्टम के माध्यम से एक्सेस किया जाता है, उस डेटा के लिए उपयुक्त अतिरेक के साथ। मैं बहुत बल्कि मौका का काफ़ी होगा fsck -p /और fsck -p /varआदि, ठीक काम कर रहा है, और मैन्युअल हस्तक्षेप के बिना सर्वर उठने, है, और उन विभाजन जो मैं सिर्फ फिर से बना सकते हैं, यदि आवश्यक करने के लिए प्रमुख तबाही के छोटे, गैर शून्य% संभावना जोखिम ।
TOOGAM

1
प्रणाली आसानी से पुनर्स्थापित किया जा सकता है, तो मैं सिर्फ इतना है कि ... ऐसा
स्वेन

1
इसमें अधिक समय लगेगा। विकल्प हैं: ए) जोखिम यह स्वचालित रूप से कर रहा है। बी) क्या किसी fsckने शिकार करने के लिए कहा है, और फिर सब कुछ ठीक काम करता है। लगभग 2 मिनट लगते हैं, अगर ऐसा है। ऐसा होने तक डाउनटाइम। ग) क्या किसी ने ऑपरेटिंग सिस्टम को फिर से स्थापित किया है। 30+ मिनट लगते हैं। आप विकल्प C चुन रहे हैं? हो सकता है कि हमारे पास एक महत्वपूर्ण अंतर यह है कि मैंने fsckआपके उत्तर में जितना उद्धृत किया है, उससे कहीं अधिक प्रतिशत काम किया है । मेरा मुख्य बिंदु सिस्टम डिज़ाइन नहीं था (यह सस्ता-ओ सिस्टम रिमोट कंसोल का उपयोग नहीं करता है), लेकिन यह कहते हुए कि " कभी नहीं, कभी भी " सटीक होने के लिए एक वाक्यांश बहुत मजबूत था
TOOGAM

चलो असहमत होने के लिए सहमत हैं।
स्वेन

0

सबसे पहले, आपको यह समझने की आवश्यकता है कि आधुनिक (जर्नल किए गए) फ़ाइल सिस्टम के साथ, एक सिस्टम क्रैश फ़ाइल सिस्टम को भ्रष्ट नहीं करेगा और बूट समय पर किसी भी fsck की आवश्यकता नहीं होगी।

Ext3, Ext4, ZFS, btrfs, xfs और सभी आधुनिक FS एक क्रैश या सिस्टम रीसेट के बाद 100% सुसंगत हैं।

Ext2 जैसे गैर जर्नलिफ़ाइड FS2 या vfat सिस्टम रूट्स के लिए एक बड़ा NOGO हैं।

अब, यदि आपके सिस्टम को बूट समय पर fsck की आवश्यकता है, तो आपको अपने आप से पूछना चाहिए: पहली जगह में इसका कारण क्या था?

आपको यह पता लगाने के लिए कि कब और क्या हुआ, आपको अपने कर्नेल लॉग की जांच करनी चाहिए। आपको लॉग्स में समय पर वापस जाना चाहिए ताकि यह पता चल सके कि त्रुटि कब शुरू हुई थी। आपको अपने स्मार्ट के साथ डिस्क की जांच करनी चाहिए। आदि ... यदि आपको किसी जर्नलिज्ड fs पर एक fsck की आवश्यकता है, तो यह निश्चित रूप से निश्चित है कि आपका हार्डवेयर विफल हो रहा है, यह मानते हुए कि fs को किसी एडमिन (dd जैसे ब्लॉक-लेवल टूल्स के साथ) या बग द्वारा क्षतिग्रस्त नहीं किया गया था।

तो यह समस्या की जांच और मूल कारण (दोषपूर्ण हार्डवेयर / फर्मवेयर / सॉफ़्टवेयर को अपग्रेड / अपग्रेड करके) के बिना समस्या को "ठीक" करने के लिए fsck का उपयोग करना मूर्खतापूर्ण है।

Fsck करना, बूट पूरा करना और खुश रहना कम से कम कहने के लिए भोला है। बताते हुए "मैंने आपके द्वारा बोली की तुलना में fsck समय का एक बड़ा प्रतिशत काम किया है" मुझे आश्चर्यचकित कर रहा है कि "fsck work" से आपका क्या मतलब है। fsck इस प्रक्रिया में कुछ फ़ाइलों और डेटा को खो कर आपकी fs को एक सुसंगत स्थिति में वापस ला सकता है ... क्या आपने बैकअप के साथ तुलना की है? बहुत से लोग फाइलों को ढीला कर देते हैं या बिना सूचना के फ़ाइल डेटा भ्रष्टाचार प्राप्त कर लेते हैं ...

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