खराब सेक्टर्स / हार्ड डिस्क को शून्य लिखने में असमर्थ Reallocated क्षेत्रों की गिनती नहीं


10

मेरे पास एक ड्राइव है जो रिपोर्ट कर रही है कि वर्तमान लंबित सेक्टर "45" है। मैंने क्षेत्रों की पहचान करने के लिए बैडब्लॉक का उपयोग किया है और मैं उन्हें dd के साथ शून्य लिखने की कोशिश कर रहा हूं ।

मैं जो समझता हूं, जब मैं खराब क्षेत्रों में सीधे डेटा लिखने का प्रयास करता हूं, तो इसे एक वास्तविक आवंटन को ट्रिगर करना चाहिए, वर्तमान लंबित क्षेत्रों को एक से कम करना चाहिए और वास्तविक क्षेत्र की गिनती में वृद्धि करना चाहिए।

हालाँकि, इस डिस्क पर Reallocated_Sector_Ct और Reallocated_Event_Count कच्चे मान दोनों हैं, और जब मैं बुरे क्षेत्रों में शून्य लिखने का प्रयास करता हूं तो I / O त्रुटियों के साथ dd विफल रहता है। dd ठीक काम करता है, हालाँकि, जब मैं एक अच्छे क्षेत्र में लिखता हूँ।

# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error

क्या इसका मतलब यह है कि मेरी ड्राइव, किसी भी तरह से, वास्तविक उपयोग के लिए कोई अतिरिक्त क्षेत्र नहीं है? क्या मेरा ड्राइव सामान्य रूप से एक भयानक व्यक्ति है? (ड्राइव वास्तव में मेरी नहीं है, मैं एक दोस्त की मदद कर रहा हूं। उन्हें सिर्फ एक सस्ती ड्राइव या कुछ और मिल सकता है।)

मामले में यह प्रासंगिक है, यहाँ smartctl -i का आउटपुट है :

Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD15EARS-00Z5B1
Serial Number:    WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity:    1,500,301,910,016 bytes [1.50 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

अद्यतन:
मैंने shredडिस्क पर चलाया है , जिससे करंट_पेंडिंग_सेक्टर शून्य हो गया है। हालाँकि, Reallocated_Sector_Ct और Reallocated_Event_Count अभी भी शून्य हैं, और dd अब उन सेक्टरों को डेटा लिखने में सक्षम है जो पहले असमर्थ थे। यह मुझे कई अन्य सवालों के साथ ले जाता है:

  • डिस्क द्वारा रिकॉल क्यों नहीं किए जा रहे हैं? मैं मान रहा हूं कि अब मैं इस क्षेत्र में सीधे डेटा लिख ​​सकता हूं और पहले नहीं कर सकता था।

  • क्यों बिखरना वास्तविक कारण नहीं था और dd नहीं था? क्या तथ्य यह है कि श्रेड सिर्फ शून्य के बजाय यादृच्छिक डेटा लिखता है एक फर्क पड़ता है?


अन्य SMART मान कैसे हैं? है Uncorrectable Sector Countशून्य से ज्यादा?
सिंटेक

ऑफ़लाइन_अनुकूलनीय, जो मैं मान रहा हूं, वही चीज है, जिसका कच्चा मान 25 है।
मेटा नोवा

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

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

ऐसा लगता है कि उम्मीद की बात है, लेकिन यह हो सकता है कि यह एक बुरा सिर है। यदि ऐसा है, तो ड्राइव को पढ़ने की कोशिश तब तक काम करेगी जब तक आप उस बैटर का उपयोग करने की कोशिश नहीं करते हैं जिसमें एक बुरा सिर है, तो आपको पढ़ने की त्रुटियों का एक गुच्छा मिलेगा क्योंकि पढ़ने के लिए एक सिर के बिना, पूरा प्लैटर अप्राप्य है। बेशक यह कहता है कि सेक्टर 45 खराब है जो हो सकता है क्योंकि यह पहले से ही फिर से आवंटित है लेकिन स्मार्ट अपडेट नहीं किया गया था। वारंटी समाप्त हो गई है कुछ महीने पहले, लेकिन आप उन्हें ईमेल कर कोशिश कर सकते हैं और हो सकता है कि वे एक शिष्टाचार प्रतिस्थापन कर देंगे।
सिंटेक

जवाबों:


9

WD15EARS ड्राइव (और अधिकांश अन्य हाल ही में निर्मित ड्राइव) उन्नत प्रारूप का उपयोग करता है , जिसका अर्थ है कि इस ड्राइव का वास्तविक भौतिक आकार 4 KiB है, और पारंपरिक 512-बाइट सेक्टर आकार केवल अनुकरण किया गया है। इस वजह से, यदि एक एकल 4 KiB भौतिक क्षेत्र खराब हो जाता है, तो सभी 8 संबंधित उत्सर्जित 512-बाइट सेक्टर एक ही बार में अपठनीय हो जाते हैं।

( Sector Size: 512 bytes logical/physicalसे आउटपुट smartctlसही नहीं है, क्योंकि कुछ WD15EARS ड्राइव गलत भौतिक क्षेत्र आकार की रिपोर्ट करते हैं  - जाहिर है कि आपके ड्राइव में एक फर्मवेयर संस्करण है जो उस संबंध में टूट गया है।)

इसके अलावा, जब एक एकल 512-बाइट सेक्टर लिखा जाता है, तो उन्नत प्रारूप ड्राइव को वास्तव में पूरे 4 KiB भौतिक क्षेत्र को पढ़ने की जरूरत है, इसके अनुरूप 512-बाइट भाग को बदलें, फिर पूरे भौतिक क्षेत्र को मीडिया में लिखें। यदि मीडिया अच्छा है, तो यह रीड-मॉडिफाई-राइट ऑपरेशन वास्तविक 512-बाइट भौतिक क्षेत्रों के साथ ड्राइव की तुलना में एक महत्वपूर्ण मंदी का कारण बनता है। हालाँकि, यदि 4 KiB भौतिक क्षेत्र खराब है और पढ़ा नहीं जा सकता है, तो कोई भी लेखन कार्रवाई जो इस क्षेत्र को पूरी तरह से फिर से लिखना नहीं करती है वह विफल हो जाएगी। इस वजह से, आप इस तरह के ड्राइव पर सेक्टर रिक्लेक्शन के ddसाथ प्रयोग करने के लिए बाध्य नहीं कर सकते हैं bs=512 count=1 - आपको कम से कम उपयोग करना होगा bs=512 count=8और यह सुनिश्चित करना होगा कि सेक्टर संख्या मेंseek= विकल्प 8. का एक बहु है (यह मानता है कि "Windows XP संगत" जम्पर स्थापित नहीं है, अन्यथा इस जम्पर द्वारा जोड़ा गया संरेखण ऑफसेट को भी ध्यान में रखा जाना चाहिए।)

एक और कारण जिसके साथ वास्तविककरण को ddविफल किया जा सकता है वह यह है कि डिफ़ॉल्ट रूप से लिनक्स ब्लॉक उपकरणों तक पहुंचने के लिए ब्लॉक लेयर में कैश का उपयोग करता है, और इससे सॉफ्टवेयर में रीड-मॉडिफाई-राइट ऑपरेशन हो सकता है, जो एक अपठनीय क्षेत्र का सामना करने पर भी विफल हो जाएगा। आपके oflag=directद्वारा निर्दिष्ट डिवाइस के लिए इस कैश को बायपास करने का विकल्प जोड़ सकते हैं of=...( iflag=directइनपुट विकल्प पर लागू होने वाला विकल्प भी है)।


धन्यवाद, धन्यवाद, धन्यवाद, धन्यवाद, यह इतना मददगार था। मैंने ड्राइव पर लेबल पढ़ा और यह कहता है "अग्रिम प्रारूप"। मुझे पता है कि अब इसका क्या मतलब है ... क्या आपके पास कोई विचार है, हालांकि, ड्राइव के बारे में किसी भी वास्तविक क्षेत्रों की रिपोर्ट नहीं है?
मेटा नोवा

1
"वर्तमान लंबित क्षेत्र" आवश्यक रूप से खराब क्षेत्र नहीं हैं, डिस्क को अपने निष्क्रिय चेक से पहले इसे पढ़ने में थोड़ी परेशानी होती है, संभवतः लंबे समय तक वहां नहीं लिखे जाने के कारण और डेटा फीका करने के लिए शुरू होता है (अर्थात चुंबकीय क्षेत्र कमजोर होता है )। उस सेक्टर का नया डेटा लिखना उस सेक्टर के डेटा को नए डेटा के साथ रिफ्रेश करता है जो डिस्क पर दृढ़ता से बनता है। इस प्रकार यदि आप किसी लंबित क्षेत्र को लिखते हैं तो डिस्क मान लेती है कि यह अब ठीक है। आपको यह पुष्टि करने के लिए उन क्षेत्रों से डेटा पढ़ने की कोशिश करनी चाहिए कि वे स्थिर हैं।
BeowulfNode42

उन लोगों के लिए जो डिस्क पर किसी भी डेटा की परवाह नहीं करते हैं और सेक्टरों की सटीक सूची नहीं ढूंढना चाहते हैं या क्या सेक्टर काउंटिंग गणित सिर्फ 16MiB की तरह 4KiB के कई के ब्लॉक आकार के साथ पूरे डिस्क को dd करता है। फिर डिस्क के अंतिम भाग के लिए 4KiB के ब्लॉक आकार का उपयोग करें जो पहले चुने गए ब्लॉक आकार से छोटा है।
BeowulfNode42

0

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

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