हार्ड-ड्राइव खराब सेक्टर को कैसे ठीक करें


17

मैंने उबंटू का उपयोग करके अपनी हार्ड ड्राइव को ठीक करने की कोशिश की, लेकिन मुझे एक त्रुटि संदेश का सामना करना पड़ा और आगे बढ़ना नहीं पता था। मुझे अपने बुरे क्षेत्रों को ठीक करने की आवश्यकता है

fsck /dev/sdb  
fsck from util-linux 2.20.1  
e2fsck 1.42.5 (29-Jul-2012)  
fsck.ext2: Permission denied while trying to open /dev/sdb  
You must have r/w access to the filesystem or be root  

1
आपके द्वारा पेस्ट किया गया पाठ आपके प्रश्न से संबंधित नहीं लगता - क्या आप स्पष्ट कर सकते हैं?
थोमसट्रेटर

जवाबों:


22

ड्राइव पर एक खराब सेक्टर ड्राइव को स्थायी नुकसान का संकेत है। जब तक आपके पास यह विश्वास करने का कारण नहीं है कि आपकी ड्राइव ने इन क्षेत्रों को गलत तरीके से चिह्नित किया है, आप उन्हें "ठीक" नहीं कर सकते।

इसका मतलब है कि आपकी ड्राइव का एक हिस्सा इस हद तक क्षतिग्रस्त हो गया है कि अब इसे मज़बूती से और / या लिखा नहीं जा सकता है।

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

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

अब, त्रुटि संदेश के लिए जैसा कि आपने अपने प्रश्न (मेरे लेखन के अनुसार) में चिपकाया है, उस त्रुटि का बुरे क्षेत्रों से कोई लेना-देना नहीं है। इसका मतलब है कि आपके पास ड्राइव तक पहुंच नहीं है। होने के नाते sudoआप पहुँच प्रदान कर सकते हैं, इसलिए:

sudo fsck /dev/sdb

हालाँकि, यह अभी भी शायद वह नहीं है जो आप चाहते हैं, क्योंकि / dev / sdb संपूर्ण ड्राइव को संदर्भित करता है, जबकि फाइल सिस्टमfsck पर काम करने के लिए डिज़ाइन किया गया है , जो आमतौर पर विभाजन में रखे गए हैं (लेकिन हमेशा नहीं, और आपके पास यहां अपवाद हो सकते हैं) । यदि ऊपर काम नहीं किया, तो आप इसके बजाय उस ड्राइव पर 1 विभाजन के लिए करना चाहते हो सकता है:

sudo fsck /dev/sdb1

आप प्रति ड्राइव विभाजन की एक सूची प्राप्त कर सकते हैं:

sudo fdisk -l

7
यह शायद सिर्फ एक बुरा ब्लॉक है। यह डेटा नहीं पढ़ सकता, सब है। ब्लॉक को फिर से भरने के बाद ड्राइव एक और तीन साल के लिए अच्छा है। तो मेरा अनुभव जाता है।
ज़ान लिंक्स

एक बुरा क्षेत्र के साथ एक HDD बहुत अधिक है, किसी भी क्षण में विफल होने की अधिक संभावना है जो कभी भी एक बुरा क्षेत्र नहीं रहा है। आपका अनुभव कितने ड्राइव पर आधारित है? मैं इसे अभी भी एक बड़ा जुआ कहूंगा।
thomasrutter

अधिक संभावना? ज़रूर। लेकिन यह तुरंत बर्बाद नहीं है। इतना कुछ इस बात पर निर्भर करता है कि वह ब्लॉक क्यों खराब हुआ। जैसा मैंने कहा, मेरे पास ड्राइव है जो धीरे-धीरे कुछ खराब ब्लॉकों को उनके जीवनकाल में हटा देता है और बस काम करता रहता है।
ज़ैन लिंक्स

it isn't immediately doomed- आपके पास यह जानने या गारंटी देने का कोई तरीका नहीं है। कुछ मामलों में यह हो सकता है। So much depends on why that block went bad- इसे खोलकर, प्रभावी ढंग से नष्ट किए बिना, इसका पता लगाना असंभव होगा। जैसा कि मैंने कहा कि यह हमेशा बढ़ा हुआ जोखिम है। यदि आप इस तरह के जोखिम से बिलकुल ठीक हैं तो मुझे इससे कोई समस्या नहीं है। अधिकांश समय, शायद यह भी> 90% समय, खराब क्षेत्र पाए जाने के बाद ड्राइव जल्दी से विफल नहीं होगा और कुछ मामलों में यह वर्षों तक भी चल सकता है। अच्छा बैकअप रखें और भविष्य में किसी भी विफलता के रूप में ज्यादा चोट नहीं पहुंचेगी।
थोमसट्रैटर

1
कहते हैं, "डिस्क आरोहित है" और कुछ भी नहीं करता है।
धुंधली हो जाती है

21

संक्षेप में : बचाव प्रणाली को बूट करें और बैडब्लॉक का उपयोग करें :

badblocks -svn /dev/sda

हार्ड डिस्क कंट्रोलर को खराब ब्लॉक द्वारा खराब ब्लॉक्स को बदलने के लिए।

मैंने यहाँ उसी प्रश्न का विस्तार से उत्तर दिया है


4
आप शायद इसे परोक्ष रूप से fsck के -cविकल्प के साथ उपयोग करना चाहते हैं । AFAIK badblocksस्टैंडअलोन का उपयोग करके कभी भी किसी भी व्यवहार को नहीं बदलेगा, यह केवल रिपोर्ट करेगा कि खराब ब्लॉक कहां हैं। बेशक, ड्राइव फर्मवेयर पारदर्शी रूप से अपने व्यवहार को संशोधित कर सकता है जब उपयोग की विशेषता पैटर्न के तहत रखा जाता है badblocks, लेकिन निश्चित रूप से यह ड्राइव पर निर्भर होगा?
अमोघ

1
एक नए उपयोगकर्ता के रूप में आपको सबसे पहले इस साइट पर कुछ गतिविधियों को करने की अनुमति देने से पहले "प्रतिष्ठा" प्राप्त करने की आवश्यकता है। इसलिए इस की नक़ल करना संभव नहीं था। फिर भी सवाल जवाब का हकदार था। चूंकि खराब ब्लॉक भौतिक डिस्क का एक मुद्दा है (SMART मान देखें), फ़ाइल सिस्टम सीधे प्रभावित नहीं होता है। यह डेटा हानि के कारण भ्रष्टाचार का शिकार हो सकता है। इसलिए fsck करना एक अच्छा विचार है। साथ ही मूल प्रश्न यह था कि कैसे किया जाए। "मरम्मत" खराब ब्लॉक यह जवाब था।
2:22 पर user228505

@amoe दस्तावेज़ीकरण से लगता है कि व्यवहार बदल जाएगा, यहाँ: "sudo badblocks -n को एक डिवाइस नाम पर चलाएं, इसे अपने आप चलाने के लिए और अपने टर्मिनल में बैडब्लॉक को सही रिपोर्ट करें। आप राइट-मोड परीक्षण का उपयोग करने के लिए -w विकल्प का उपयोग कर सकते हैं। लेकिन जब से वे परस्पर अनन्य हैं तब से एक -n और -w विकल्पों का उपयोग न करें। आपको किसी भी परिस्थिति में -w विकल्प का उपयोग कभी भी ऐसी मात्रा में नहीं करना चाहिए, जिसमें डेटा हो, क्योंकि यह सब कुछ मिटा देगा। विकल्प चूंकि यह आपके डेटा को इस मामले में संरक्षित करेगा। -w विकल्प उन संस्करणों के लिए ठीक है, जिन्हें आप मिटाने से गुरेज नहीं करते हैं। "
वेबवॉइन

13

पुराने दिनों में आपको ड्राइव पर लिखे गए बैडब्लॉक का ध्यान रखना पड़ता था और ड्राइव को प्रारूपित करने से पहले दोष सूची में दर्ज करते थे, क्योंकि हार्ड डिस्क सरफेस कभी भी "परफेक्ट" नहीं होते थे, निर्माता को इस बात का ज्ञान था क्योंकि लोग डिस्क खरीदने पर डिस्क पर छपे दोष तालिका को देखेंगे और कम से कम दोष वाले लोगों को खरीदेंगे ...

अब 20 या तो आगे स्क्रॉल करें और हार्ड डिस्क निर्माता इस तथ्य को छिपाते हैं कि ब्रांड की नई डिस्क में फर्मवेयर के साथ खराब ब्लॉक हैं, जब आप एक ब्रांड की नई डिस्क खरीदते हैं, तो यह पहले से ही सभी संभावित खराब ब्लॉकों में होगा, फर्मवेयर नए विकसित किए गए बैडब्लॉक का पता लगाएगा और उनके पास मौजूद अतिरिक्त सिलिंडर के सेट से उन्हें मैप करता है, लेकिन यह केवल तब होता है जब उस सेक्टर पर एक लिखित ऑपरेशन होता है और ईसीसी एल्गोरिथ्म बिट विफलता का पता लगाता है, तभी यह ब्लॉक को मैप करेगा। तो इस बिंदु पर वापस आकर आप डीडीब्लॉक का उपयोग करके किसी ड्राइव को बैडब्लॉक को मैप करने के लिए बाध्य कर सकते हैं, अर्थात / [संपादित करें: आकस्मिक ड्राइव विनाश को रोकने के लिए निम्न उदाहरण संपादित किया गया था: वाइल्डकार्ड वर्ण हटा दिया गया, जिसे X से बदल दिया गया]

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

स्पष्ट रूप से परिवर्तन करना = जिस ड्राइव को आप शून्य करना चाहते हैं, उसे प्रतिबिंबित करने के लिए लक्ष्य को बदल दें, यह ड्राइव के दोषों को फिर से मैप करने का सबसे तेज़ तरीका है, लक्ष्य ड्राइव को गलत तरीके से प्राप्त करके अपने लिनक्स सेटअप को पूरी तरह से कचरा करने का सबसे तेज़ तरीका है, इसलिए जांच करें, दोहराएं फिर कुंजी दर्ज करने से पहले फिर से जांचें। आप रीड / राइट्स को ऑप्टिमाइज़ करने के लिए dd कमांड में ब्लॉक का आकार बढ़ा सकते हैं और शायद चीजें जल्दी हो जाएं, लेकिन एक बिंदु के बाद रिटर्न कम हो रहा है। मुझे 1M और 8M के बीच कुछ भी मिलता है मेरे लिए सबसे अच्छा काम करता है

आप डीडी को सिर्फ एक सेक्टर, खराब एक ... लिखने के लिए प्राप्त कर सकते हैं, ताकि आपको अपने ड्राइव का बैकअप न लेना पड़े, लेकिन अगर आपको ठीक से पता नहीं है तो यह पूरी तरह से मछली और रूसी रूले की केतली है। आप क्या कर रहे हैं .....

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

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

मैंने इस तरह से सैकड़ों ड्राइव को पुनर्जीवित किया है और वे कई वर्षों तक जीवित रहे हैं, एक बुरा क्षेत्र जरूरी नहीं कि ड्राइव के लिए मौत की घंटी हो।


मैंने पहले भी इस विधि का उपयोग किया है, लेकिन कभी यह नहीं पता था कि यह क्यों काम करता है। एक मुट्ठी भर ड्राइव में से उतने वर्षों के लिए चला जाता है जब उक्त ड्राइव को निर्धारित किया जाता है।
MER

एसीके !! असिंचित के लिए, कृपया कॉपी और पेस्ट न करें। आपका खोल वाइल्डकार्ड का विस्तार करेगा? ' / देव में वास्तविक उपकरण नामों के साथ। यदि आप को बदलने के पहले गलती से प्रवेश करना चाहिए?, तो आप संभवतः गलत ड्राइव को मिटा सकते हैं। यदि आपके पास 1 से अधिक उपकरण हैं, तो dd एक त्रुटि फेंक सकता है, लेकिन मैं अपनी मशीन पर परीक्षण करने के लिए तैयार नहीं हूं।
तिबरियसकिर्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.