स्थापित करने से पहले एग्रेसिव रूप से डिस्क डिस्क


12

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

मैं हार्ड ड्राइव या मशीन की निंदा करने से पहले लिनक्स को फिर से लोड करने के लिए एक बार कोशिश करना चाहता हूं। फाइलसिस्टम बनने के बाद, लेकिन इंस्टाल होने से पहले, मैं fsckसंदिग्ध ब्लॉकों को खराब मानने के लिए एक आक्रामक प्रदर्शन करना चाहता हूं ।

डिस्क बड़ी है (लगभग 500 जीबी) और एक डेबियन 8 डिस्ट्रो अपेक्षाकृत छोटा है (8-12 जीबी आमतौर पर पर्याप्त से अधिक है), इसलिए मुझे परवाह नहीं है अगर अच्छे ब्लॉक खराब के रूप में चिह्नित हो जाते हैं। मुझे GUI इंस्टॉल भी पसंद है, लेकिन मैं इससे शादी नहीं कर रहा हूं।

मेरे दो सवाल हैं:

  1. क्या fsckबेस सिस्टम स्थापित करने से पहले डेबियन 8 एक विकल्प प्रदान करता है? अगर ऐसा है, तो यह कहां है? यदि नहीं, तो क्या प्रक्रिया है?

  2. क्या fsckयह नियंत्रित करने के लिए एक सेटिंग है कि आक्रामक रूप से ब्लॉक को कैसे खराब माना जाता है? यदि ऐसा है, तो ये क्या है? यदि नहीं, तो क्या उपयोग किया जा सकता है?


EDIT : मशीन HP5850 है। BIOS में प्रवेश, स्टोरेज और फिर ड्राइव प्रोटेक्शन सिस्टम (डीपीएस) में स्व-परीक्षण करने के परिणामस्वरूप ड्राइव को प्रतिस्थापित करने की सिफारिश डीपीएस में हुई। डीपीएस ने कोई आंकड़े प्रदान नहीं किए हैं, इसलिए मुझे यकीन नहीं है कि नुकसान की सीमा है।

ध्यान में रखते हुए मैं $ 12 USD के लिए एक [पुराना] नया SATA II ड्राइव खरीद सकता हूं, मैं इसे बदलने जा रहा हूं। इसमें समय या ऊर्जा बर्बाद करने का कोई अर्थ नहीं है।


संबंधित संदर्भ इस प्रकार हैं। न तो प्रश्न का पता लगता है।



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

2
"एग्रेसिवली fsck a डिस्क" इतनी गंदी लगती है ...
A. Mirabeau

जवाबों:


19
  1. "क्या डेबियन 8 बेस सिस्टम स्थापित करने से पहले एक fsck प्रदर्शन करने के लिए एक विकल्प प्रदान करता है? यदि हां, तो यह कहाँ है? यदि नहीं, तो प्रक्रिया क्या है?"

    एक विकल्प के रूप में, पहले एक GPartEd सीडी डाउनलोड करें और जलाएं (या एक अंगूठे ड्राइव पर लिखें)। इंस्टॉलर को चलाने से पहले, डिस्क को डिस्क को अपनी पसंद के अनुसार विभाजित करें और चलाएं या केवल लंबाई पर चलाएं ।GPartEdfsckbadblocks

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

  2. "क्या fsck के पास यह नियंत्रित करने के लिए एक सेटिंग है कि आक्रामक रूप से ब्लॉक को कैसे खराब माना जाता है? यदि हां, तो यह क्या है? यदि नहीं, तो क्या उपयोग किया जा सकता है?"

    -cकरने के लिए विकल्प e2fsckका कारण बनता है इसे चलाने के लिए badblocksबुरा ब्लॉकों के लिए स्कैन करने के लिए कार्यक्रम। आप बैडब्लॉक को सीधे भी चला सकते हैं। डिफ़ॉल्ट रूप से, badblocksकेवल-पढ़ने के लिए परीक्षण करता है। अधिक आक्रामक होने के लिए, आप -nएक गैर-विनाशकारी रीड-राइट टेस्ट के लिए निर्दिष्ट कर सकते हैं । आप -pइसे पास करने की संख्या बढ़ाने के लिए विकल्प भी निर्धारित कर सकते हैं ।

    आप badblocksविभाजन से पहले चलाना चाहते हैं । इस तरह, आप तेजी से -wलिखने के लिए केवल परीक्षण निर्दिष्ट कर सकते हैं ।


1
जॉन, +1, बस जिज्ञासु के badblocksपास हार्डवेयर स्तर पर या एफएस स्तर पर चिह्नित करने की कोई विधि है?
हेमेयेल

3
@heemayl मेरी समझ यह है कि आधुनिक हार्ड डिस्क पर, हार्ड डिस्क के फर्मवेयर अपने सभी खराब ब्लॉक प्रबंधन को करने का प्रयास करते हैं। चलाने badblocksका उद्देश्य केवल हार्ड डिस्क को सभी क्षेत्रों को पढ़ने / लिखने के लिए बाध्य करना है। हार्ड डिस्क खराब सेक्टरों का पता लगाने और उनकी मरम्मत करने का काम करता है और अगर सभी को यह काम करना चाहिए, तो badblocksप्रोग्राम को कभी सूचित नहीं किया जाता है कि हार्ड डिस्क ऐसा कर रही है।
जॉन 1024

hmmm..understandable। तो संक्षेप में, एफएससी एफएस पर ब्लॉक को चिह्नित कर सकता है लेकिन बैडब्लॉक केवल डिस्क फर्मवेयर को मार्किंग करने में मदद करता है, अपने स्वयं के कुछ भी नहीं करता है?
heemayl

3
@heemayl पुराने समय में, badblocksबुरे क्षेत्रों की एक सूची तैयार की जाती थी और फाइल सिस्टम उन्हें नोट करता था। आधुनिक समय में, badblocks और FS अभी भी ऐसा करने की कोशिश करते हैं, लेकिन, एक आधुनिक HD के साथ, सूची आमतौर पर खाली होती है।
जॉन 1024

1
@heemayl, और यदि सूची खाली नहीं है, तो डिस्क आमतौर पर इतनी बुरी तरह से टूट जाती है कि आपका सबसे अच्छा विकल्प इसे बदलना है।
मार्क

7

यदि आपको अक्सर fsck त्रुटियाँ हो रही हैं, तो ड्राइव रक्त में खांसी कर सकती है। यहां तक ​​कि अगर आप हर एक बुरे ब्लॉक को खराब के रूप में चिह्नित करते हैं, तो अधिक ब्लॉक के खराब होने से पहले यह लंबा नहीं होगा। मुझे लगता है कि अगर आप वास्तव में (Ctrl + alt + F2 tty2 पर स्विच करने के लिए) करने की जरूरत है, तो आप एक और tty में बदलने के लिए बदल सकते हैं, लेकिन मैं पर्याप्त जोर नहीं दे सकता अगर आप क्या कह रहे हैं सही है।


"अगर आपको अक्सर fsck त्रुटियां हो रही हैं ..." - मैं जिस बारे में निश्चित नहीं हूं, fsckसमस्या की हद को फिर से स्थापित करने के बाद कुछ समस्याएं हैं, या क्या यह हिमशैल की नोक है। सिस्टम बूट, कुछ फाइलसिस्टम त्रुटियों (4 या 6) का सामना करता है, केवल-पढ़ने के लिए और फिर बूट के रूप में रिमाउंट करके ठीक हो जाता है।

@jww क्या आप फ़ाइल सिस्टम त्रुटियों के कुछ सटीक उदाहरण पोस्ट कर सकते हैं?
बजे जॉन लेउन्हेंगेन

दूसरे ट्टी पर क्यों स्विच करें? ऐसा करने से क्या फायदा?
3pm पर fpmurphy

@ fpmurphy1 ऐसा लग रहा था जैसे वह एक टर्मिनल विंडो नहीं खोल सकता है, इसलिए एक और ट्टी पर स्विच करना एक शेल में जाने का अगला सबसे अच्छा तरीका होगा।
जॉन लेउन्हेंगेन

@jww: क्या हर बार एक ही ब्लॉक की सूचना दी जाती है, या प्रत्येक बूट पर एक नया सेट रिपोर्ट किया जाता है?
टीएमएन

5
  1. नहीं, और मुझे नहीं लगता कि यह इसके लायक है। Fsck (जैसा कि अधिकांश फाइल सिस्टम द्वारा कार्यान्वित किया गया है) आपकी ड्राइव की जांच नहीं करता है। यह फाइल सिस्टम मेटाडेटा को मान्य करता है और यह सुनिश्चित करता है कि जब आप उन्हें माउंट करते हैं तो दृश्य सुसंगत हो। स्थापना से पहले इसे करने का कोई मतलब नहीं है, क्योंकि परिभाषा के अनुसार, आपके पास केवल खाली जगह होगी।

  2. इसके बजाय बैडब्लॉक का उपयोग करें । यदि आप यह सुनिश्चित करना चाहते हैं कि आपका डेटा सड़ न जाए, तो एक फाइल सिस्टम का उपयोग करें जो स्क्रबिंग का समर्थन करता है। लविम खुद भी कर सकती है


3

विश्वसनीयता के लिए एक आधुनिक डिस्क की जांच करने के लिए, अंतर्निहित परीक्षणों का उपयोग करने पर विचार करें; आप उन्हें smartctl उपयोगिता के साथ ट्रिगर कर सकते हैं, जैसे:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

यदि आप पहले से यह सुनिश्चित करना चाहते हैं कि हाल ही में सब कुछ लिखा गया है, तो उन क्षेत्रों की खोज करने के लिए जो ठीक से नहीं लिखेंगे, आप पूरे माध्यम को किसी तरह से लिख सकते हैं जैसे कि dd / dev / urandom, या randomizing में से एक के साथ shred विकल्प।


3
ध्यान दें कि एक ddसे /dev/random500GB ड्राइव को पूरा करने में कई दिन लगेंगे।
दिमित्री ग्रिगोरीव

1
फिक्स्ड टाइपो, thx :) क्या मैं सटीक dd सिंटैक्स को वर्तनी नहीं देना चाहता था क्योंकि मैं चाहता था कि इसके आस-पास कमांड लाइन होने से बचा जाए, अगर गलती से एक शेल में चिपकाया जाता है, तो यह वास्तव में अपरिवर्तनीय डेटा हानि का कारण होगा।
रैकैंडबॉमनमैन

दुर्भाग्य से, डेबियन प्रदान करने के लिए प्रकट नहीं होता है smartctl: E: Unable to locate package smartctl। क्या यह Red Hat / Fedora की उपयोगिता है?

डेबियन / ubuntu पैकेज स्मार्टमोनोलस है। BTW, जो पैकेज कुछ है खोजने के लिए apt-cache खोज का उपयोग करें।
रैकडैंबिनमैन

2

मैं निर्माता के निम्न-स्तरीय प्रारूप सॉफ़्टवेयर (यदि कोई मौजूद है) प्राप्त करने की सिफारिश करेगा जो केवल विंडोज पर चल सकता है (या यदि आप भाग्यशाली हैं, तो बूट करने योग्य सीडी / डीवीडी / यूएसबी से जिसके लिए आप उनकी वेबसाइट से एक छवि डाउनलोड करेंगे) । यदि आपके पास बहुत बड़े स्पेयर सेक्टर पूल के बदले में ड्राइव की रिपोर्ट की गई क्षमता को कम करने के लिए ऑपरेशन पर पर्याप्त नियंत्रण है, तो आपको ऐसा करना चाहिए, जैसे कि आप को ड्राइव का परीक्षण करने वाले उन सभी पुर्जों की प्रत्याशा में @rackandboneman ने सुझाव दिया है। । बेहतर है कि 400- या 450-जीबी ड्राइव के साथ सभी खराब क्षेत्रों को पुर्जों के लिए स्वैप किया जाता है और भविष्य के दोषों के लिए छोड़ दिया जाता है, स्पेयर पूल को समाप्त करने और भविष्य में खराब क्षेत्रों को हटाने के लिए, जो पारदर्शी तरीके से नहीं किए जा सकते हैं।


मैं डॉस के लिए सीटूल्स चलाने में सक्षम था । SeaTools ने बताया कि स्मार्ट को ट्रिगर नहीं मिला , जो असामान्य लग रहा था। लंबे समय तक परीक्षण और लघु परीक्षण तुरंत विफल रहा है। मैंने डिस्क को 32 जीबी से नीचे आकार दिया; और फिर से लंबी परीक्षा दी। SeaTools ने 1190000 निशान के आसपास 4 खराब एलबीए पाए और उनकी मरम्मत की। एक ताजा ओएस स्थापित पूरी तरह से चला गया; और बाद के रिबूट को कोई परेशानी नहीं हुई। चूंकि मैंने प्रतिस्थापन SATA II ड्राइव खरीदी है, इसलिए यदि मौजूदा ड्राइव दुर्व्यवहार करता है, तो मैं इसे एक गर्म स्पेयर के रूप में रखूंगा।

@jww अफ़सोस कि आपने पहले ही एक अलग उत्तर स्वीकार कर लिया है।
मोंटी हार्डर

हाँ, इसका प्रश्नोत्तर जाल ... मुझे सटीक उत्तर प्राप्त करने के लिए विशिष्ट प्रश्न पूछने हैं। अगर मैंने पूछा होता, "मैं एक असफल हार्ड ड्राइव पर लिनक्स कैसे स्थापित करता हूं", तो सवाल शायद बंद हो गया होगा।

0

यदि आपके पास कट्टरपंथी उपकरण उपलब्ध नहीं हैं तो कुछ बुनियादी चीजें (जैसे कि यह एक USB डिस्क है और स्मार्ट काम नहीं करता है):

dd if=/dev/sdX of=/dev/null bs=1M

डिस्क के सभी पढ़ेंगे। यदि आप dmesgऐसे क्षेत्र हैं जो पढ़े नहीं जा सकते तो आप लॉग में देखेंगे । हालांकि यह आपको नहीं बताएगा कि क्या यह रिट्रीट के बाद उन्हें पढ़ने में कामयाब रहा। यह उतना अच्छा नहीं है, badblocksलेकिन मैं इसका उल्लेख इसकी सर्वव्यापकता के लिए करता हूं।

यदि आपके पास बुरे क्षेत्र हैं और आप डिस्क पर कुछ नहीं चाहते हैं:

dd if=/dev/zero of=/dev/sdX bs=1M

सभी ब्लॉकों को फिर से लिखा जाएगा। यदि ऐसे क्षेत्र हैं जो अपठनीय हैं, तो इसके कारण उन्हें वास्तविक पूल में क्षेत्रों के साथ स्वैप किया जा सकता है और फिर से उपयोग करने योग्य बन सकता है।

यदि आपके पास एक डिस्क है, जहां वास्तविककरण हो रहा है, तो डिस्क बाहर निकलने के रास्ते पर है। मैं इसे किसी भी महत्वपूर्ण चीज के लिए उपयोग नहीं करूंगा, लेकिन कभी-कभी आपके पास ऐसा डेटा होता है जिसकी आपको परवाह नहीं है और यह उसके लिए ठीक भी हो सकता है।

अगर यह SSD है तो चीजें अलग हैं और ये लागू नहीं होती हैं।

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