भ्रष्ट XFS फाइलसिस्टम से निपटने का उचित तरीका


19

मेरे पास हाल ही में एक XFS फाइलसिस्टम है जो एक पावरफेल के कारण भ्रष्ट हो गया है। (सेंटोस 7 सिस्टम)। सिस्टम ठीक से बूट नहीं होगा।

मैंने एक बचाव सीडी से बूट किया और कोशिश की xfs_repair, इसने मुझे लॉग से निपटने के लिए विभाजन को माउंट करने के लिए कहा।

मैंने विभाजन को माउंट किया, और यह lsसत्यापित करने के लिए कि हां, ऐसा प्रतीत होता है। मैंने विभाजन को अनमाउंट किया और xfs_repairफिर से कोशिश की और वही संदेश मिला।

इस स्थिति में मुझे क्या करना चाहिए? क्या मेरे बचाव सीडी (सिस्टम बचाव सीडी, संस्करण 4.7.1) में कुछ गड़बड़ है? क्या कोई अन्य प्रक्रिया है जिसका मुझे उपयोग करना चाहिए था?

मैंने बैकअप से सिस्टम को पुनर्स्थापित करना समाप्त कर दिया (यह इस मामले में त्वरित और आसान था), लेकिन मैं यह जानना चाहता हूं कि भविष्य में क्या करना है।

जवाबों:


22

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

उदाहरण के लिए, मैं एक ऐसे मामले का उपयोग करूंगा, जहां मेरे CentOS 7 इंस्टॉल पर एक भ्रष्ट रूट विभाजन था। विभाजन को माउंट करने का प्रयास करते समय, मुझे लगातार नीचे त्रुटि संदेश प्राप्त हुआ:

माउंट: माउंट / देव / मैपर / सेंटो-रूट ऑन / मेन्ट / सेंटोस-रूट विफल: संरचना को सफाई की आवश्यकता है

दुर्भाग्य से, एक मरम्मत के लिए मजबूर करने से पहले मरम्मत का प्रयास करने से पहले शून्य को नष्ट करना (नष्ट करना) होगा। इस पद्धति का उपयोग करते समय, शुरू में प्रत्याशित की तुलना में अधिक भ्रष्ट डेटा के साथ समाप्त होने की संभावना है; हालाँकि, हम किसी भी स्थायी परिवर्तन करने से पहले यह देख सकते हैं कि किस प्रकार की क्षति हो सकती है, हम उपयुक्त xfs टूल का उपयोग कर सकते हैं।

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

ऐसा करने के लिए, आपको एक सभ्य आकार के USB या बाहरी हार्ड ड्राइव की आवश्यकता होगी। USB ड्राइव माउंट करने से शुरू करें - मेरा USB पर स्थित था /dev/sdb1, आपका नाम अलग तरह से हो सकता है।

mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb

एक बार माउंट होने के बाद, xfs_metadumpUSB पर विभाजन मेटाडेटा की एक प्रति बनाने के लिए चलाएं - फिर से, आपका प्रभावित विभाजन अलग हो सकता है। इस मामले में, मेरे पास एक भ्रष्ट रूट विभाजन था /dev/mapper/centos-root:

xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump

अगला, आप एक छवि में मेटाडेटा को पुनर्स्थापित करना चाहते हैं ताकि हम एक मरम्मत कर सकें और क्षति को माप सकें।

xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img

मैंने पाया कि बचाव मोड xfs_mdrestoreमें उपलब्ध नहीं है, और इसके बजाय आपको एक लाइव सेंटोस सीडी के बचाव मोड में होना चाहिए।

अंत में, हम छवि पर मरम्मत कर सकते हैं:

xfs_repair -L /mnt/usb/centos-root.img

मरम्मत के पूरा होने के बाद और आपने आउटपुट और संभावित नुकसान का आकलन किया है, आप यह निर्धारित कर सकते हैं कि आप विभाजन के खिलाफ मरम्मत करना चाहते हैं या नहीं।

विभाजन के खिलाफ मरम्मत चलाने के लिए, बस चलाएं:

xfs_repair -L /dev/mapper/centos-root

भ्रष्टाचार के लिए अन्य विभाजनों की जाँच करना न भूलें। मरम्मत के बाद, सिस्टम को रिबूट करें और आपको सफलतापूर्वक बूट करने में सक्षम होना चाहिए।

याद रखें कि -Lध्वज को अंतिम उपाय के रूप में उपयोग किया जाना चाहिए जहां मरम्मत के लिए कोई अन्य संभावित विकल्प नहीं हैं।

मैंने पाया कि इन ऑनलाइन लेखों ने मदद की:


ठीक है, तो -L एक अंतिम उपाय है, और ये अत्यधिक निर्देश हैं कि कैसे देखा जाए कि अगर हम -L का उपयोग करते हैं तो यह कितना बुरा है। -L का उपयोग करने के लिए मेरे पास और कौन से विकल्प हैं?
माइकल कोहेन

1
@MichaelKohne बैकअप से बहाल, बिल्कुल। जब तक आपको बैकअप नहीं मिला है, आपको नरक के इस स्तर के पास कहीं भी नहीं जाना चाहिए।
माइकल हैम्पटन

1
@ मिसेलहैम्पटन - ठीक है, काफी उचित है। लेकिन मुझे नहीं लगता कि मैं कभी इस तरह एक फाइल सिस्टम खो दिया है powerfail पर त्रुटियों ext4 करने के लिए - xfs कम लचीला है? या मैं वास्तव में इस बार वास्तव में बुरी किस्मत था?
माइकल कोहेन

@MichaelKohne मुझे लगता है कि आप बस असाधारण रूप से अशुभ हो गए। XFS काफी विश्वसनीय फाइल सिस्टम है।
माइकल हैम्पटन

3
हम बस initrd से ऐसा करने में सक्षम थे। हमने क्या शानदार "प्रगति" की।
फ्लोरियन हीगल

1

मैं एक kvm आभासी मशीन के अंदर इस त्रुटि whe सेंटोस 7 बुरा रोक था:

मेटाडेटा भ्रष्टाचार का पता लगाया एक्सएफ़एस पर ...

जब मैं लॉग व्हाइट का उपयोग करता हूं "journalctl -xe", तो मुझे एक त्रुटि मिली:

/ देव / मैपर / रूट / सिसरोट

मैं इसका उपयोग करके हल करता हूं:

xfs_repair / dev / mapper / root

तब सिस्टम सात चरणों को पूरा करता है और फिर y रिबूट का उपयोग करता है

।/बंद करना

और फिर वर्चुअल मशीन सेंटोस 7 अच्छी तरह से काम करते हैं ...

सादर

नोट: हो सकता है कि आप / देव / मैपर / रूट का कोई दूसरा नाम हो, कृपया अपनी यूनिट के नाम का पता लगाने के लिए अपनी त्रुटि लॉग देखें।

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