हार्ड डिस्क URE (अपरिवर्तनीय रीड एरर) की ग्रैन्युलैरिटी क्या है?


8

tl; dr अगर URE एक hdd पर होता है, तो क्या मैं 1bit, 1Byte, या एक सेक्टर के आकार (512Bytes, या 4096 बाइट्स AF) को ढीला कर दूंगा? और यदि संभव हो तो क्यों समझाएं?

बैकग्राउंड: हार्ड डिस्क में डेटा पढ़ने में समस्या होने पर यहां सवाल उठता है। निश्चित रूप से एक डिस्क पूरी तरह से अपने सभी डेटा खो जाने (DISK FAIL) को छोड़ने में विफल हो सकती है, लेकिन मैं यहां जिस मामले के बारे में पूछता हूं , वह यह है कि जब इसका एक छोटा हिस्सा खो जाता है (URE, एक अपरिपक्व रीड एरर)।

हालांकि मैंने URE के संबंध में जानकारी की तलाश की है, फिर भी मुझे कुछ के लिए बहुत कम पता चला है। इसका यह कारण हो सकता है कि ड्राइव में आंतरिक रूप से क्या होता है, यानी ईसीसीएस-सुधार जैसे प्रत्यक्ष उपयोगकर्ता इंटरैक्शन से क्या छिपा हुआ है, मेरे लिए यह मुश्किल है कि मैं एक उपयोगकर्ता - सेक्टर के रूप में क्या उपयोग करूं।

आइए हम कल्पना करें कि HDD को डेटा पढ़ने में परेशानी होती है।

उस स्थिति में, निश्चित रूप से इसका मतलब यह होना चाहिए कि:

  • (ए) सेक्टर के कुछ बिट्स को पढ़ा नहीं जा सकता है, या
  • (बी) सभी बिट्स पढ़े जा सकते हैं, फिर भी वे एक चेकसम टेस्ट पास नहीं करते हैं (बेशक एक सेक्टर ४० ९ ६ बाइट से परेशानी की उम्मीद कर रहे हैं, सिर्फ 40 * ४० ९ ६ बिट्स नहीं है, लेकिन त्रुटि जांच / सुधार के लिए कुछ अतिरिक्त बिट्स / बाइट (यानी समता बिट्स) ) (सी) ????

मेरा कोई विश्वास नहीं है कि जब हम उस स्थिति में होते हैं, जिसमें (ए) और (बी) का संयोजन होता है और 4096 सेक्टर की बाइट्स का एक भरोसेमंद पुनर्गठन नहीं किया जा सकता है, तो यह मान लेना अति आवश्यक है कि इन सभी में गारबेज है , वास्तव में अगर हम इंटरल एचडीडी त्रुटि सुधार तर्क के बारे में जानते थे, तो हम कह सकते हैं कि "देखो कुछ बाहर की जाँच नहीं करता है, और कम से कम 1,2,3 के अच्छे बदलाव के साथ, ब्लॉक डेटा के n बिट्स / बाइट्स" गलत है " "। यदि हम इस क्षेत्र में "हेलो, हैलो ....., हैलो" को असमान रूप से सहेज रहे हैं, तो हम इस क्षेत्र में वास्तव में अभी भी "हैलो, हैलो ...." का उचित उत्तराधिकार प्राप्त कर सकते हैं। Uellohello ... "(यानी" ई "->" यू ")।

तो एक यूआरई की ग्रैन्युलैरिटी क्या है?

अद्यतन: खराब क्षेत्र के बारे में विचार करने के लिए एक टिप्पणी की गई है (और यह सुझाव देते हुए कि यह एक यूआरई घटना की विशिष्टता को दर्शाता है। यह बेतुका नहीं है, यह सुझाव देने के लिए और शायद सवाल का जवाब देने में उपयोग किया जा सकता है। फिर भी सिर्फ एक और संबंधित पाठ पढ़ें) लंबित अपठनीय क्षेत्रों के बारे में प्रश्न (यहां /unix/1869/how-do-i-make-my-disk-unmap-pending-unreadable-sectors ) जो मुझे लगता है कि कुछ में ले जाता है परिदृश्य वास्तव में एक URE के मामले में खोए गए डेटा के बीच एक अधिक धुंधली रेखा है।


आमतौर पर यह दुर्घटनाग्रस्त सिर के मामले में एक बार में क्षतिग्रस्त हुए हजारों ब्लॉकों में से एक होता है। यदि यह धूल है, तो ब्लॉकों के निकट पहुंच क्षति को फैला सकती है। तो यह शायद ही कभी एक बड़े क्षेत्र के हिस्से के रूप में सरल पुनर्निर्माण किया जा सकता है।
जेम्सरन

@JamesRyan अच्छा संकेत है, यह हमेशा बदतर हो सकता है। शायद मैं बस कम से कम बुरे मामले के बारे में पूछताछ कर रहा था (जो कि केवल एक सेक्टर को ढीला करना है, या जैसा कि यह आंशिक रूप से अच्छे उत्तरों में हल किया गया था, सेक्टर डेटा का एक हिस्सा, इसके अंदर के प्रकार पर निर्भर करता है)। शायद अपठनीय त्रुटियों (और उनकी दृढ़ता अर्थात यादृच्छिक बिट सड़ांध बनाम सिर दुर्घटना प्रभाव) की उत्पत्ति के बारे में अधिक जानने पर विचार करना होगा। लेकिन हम यहाँ जवाबदेह प्रश्न चाहते हैं, इसलिए मुझे इस प्रश्न को और अधिक जटिल बनाने की आवश्यकता नहीं है
मानवतावाद

जवाबों:


8

हार्ड ड्राइव पर त्रुटि सुधार कोड डेटा का एक अतिरिक्त हिस्सा है जो प्रत्येक हार्डवेयर क्षेत्र से जुड़ा होता है। ड्राइव लिखने के दौरान फर्मवेयर इस डेटा की गणना करता है और इसे उपयोगकर्ता के डेटा के साथ लिखता है। पढ़ने के दौरान फर्मवेयर डेटा के साथ ईसीसी को पढ़ता है और उन्हें एक साथ जांचता है।

एक पारंपरिक हार्ड ड्राइव के लिए हार्डवेयर सेक्टर 512 बाइट्स है। एक उन्नत प्रारूप ड्राइव के लिए यह 4K बाइट्स है (यह कोई फर्क नहीं पड़ता कि इंटरफ़ेस में 512-बाइट या 4K-बाइट सेक्टर पेश कर रहा है, अर्थात 512e बनाम 4kn)।

एक पढ़ने के बाद जाँच का परिणाम मूल रूप से तीन संभावित परिणाम हैं:

  • सेक्टर त्रुटि के बिना पढ़ा गया था। यह वास्तव में आधुनिक हार्ड ड्राइव पर पूरी तरह से आम नहीं है; बिट घनत्व इस प्रकार हैं कि वे ईसीसी काम करने पर निर्भर करते हैं।

  • सेक्टर को सही त्रुटियों के साथ पढ़ा गया था। जैसा कि इसके ऊपर निहित है, असामान्य नहीं है; आशा की जाती है। ड्राइव उपयोगकर्ता को लागू किए गए त्रुटि सुधार के साथ डेटा लौटाता है।

  • सेक्टर पढ़ा गया था, लेकिन बहुत सारे "गलत बिट्स" थे; त्रुटियों को सुधारा नहीं जा सका।

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

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


क्या यह अभी भी गणितीय रूप से असंभव है अगर 4096Byte पेलोड के अंदर का डेटा अपने आप में 4000Bytes पेलोड और शीर्ष पर एक और 96Byte ECC का संकलन था? (उदाहरण के लिए क्योंकि मैं डेटा स्टोर लेआउट में पुनर्प्राप्ति के लिए क्षमता का त्याग करने को तैयार था?)।
humanityandpeace

मेरा अनुमान है कि यह अंतर्निहित धारणा के तहत केवल गणितीय रूप से असंभव है कि डेटा के अंदर कोई और अतिरेक नहीं था, है ना? - और भी महान जवाब!
humanityANDpeace

1
ज़रूर। उस बिंदु पर यह सिर्फ एक अन्य अविश्वसनीय चैनल है, लेकिन अगर इसमें पर्याप्त अतिरेक है .. तो पकड़ यह है कि ओएस के मानक डिस्क ड्राइवर आपको क्षेत्र की सामग्री को बिल्कुल नहीं देंगे यदि ड्राइव को लगता है कि त्रुटियां अपरिहार्य हैं। RAID-5 और इसी तरह की समता योजनाएं मौजूदा क्षेत्रों के डेटा क्षेत्रों के बजाय "बाहरी परत" पर एक ही काम कर रही हैं।
जेमी हनराहान

ओएस चालकों के साथ "पकड़" वापस देने के लिए (अनुरोध पर) सब, यहां तक कि असत्यापित डेटा मैं इस बारे में पूछा विशेष रूप से एक गैर खिड़कियों उपयोगकर्ता के रूप में, एक समस्या है unix.stackexchange.com/questions/228254/...
humanityANDpeace

3

URE की ग्रैन्युलैरिटी क्या है?

अपरिवर्तनीय रीड एरर (URE) सेक्टर रीड फेलियर हैं। यदि क्षेत्र को त्रुटि के बिना पढ़ा नहीं जा सकता है, तो इससे कोई फर्क नहीं पड़ता कि यह सिर्फ 1 बाइट था या सेक्टर के सभी बाइट्स।

ग्रैन्युलैरिटी सेक्टर का आकार है

यहां तक ​​कि अगर केवल 1 बाइट विफल रही, तो आप सामान्य रूप से विशेषज्ञ सोफवेयर का उपयोग किए बिना उस क्षेत्र से कोई भी डेटा वापस नहीं लेंगे।


क्या एक असफल क्षेत्र से डेटा पुनर्प्राप्त किया जा सकता है?

स्पिनराइट कहता है:

स्पिनराइट एक सेक्टर में अधिकांश डेटा को पुनर्प्राप्त करने में सक्षम है जो कभी भी पूरी तरह से पढ़ा नहीं जा सकता है, और जो किसी भी अन्य उपयोगिता सॉफ्टवेयर में पूर्ण रूप से छूट देता है।

देखें कि कैसे स्पिनर ने अप्राप्य डेटा पुनर्प्राप्त किया


अस्वीकरण।

मैं किसी भी तरह से SpinRite से संबद्ध नहीं हूं , और मैंने कभी इसका उपयोग नहीं किया है।


1
मुझे लगता है कि यह एक अच्छा जवाब है, इसलिए नहीं कि जरूरी नहीं कि मैं सहमत हूं कि एक यूआरई के मामले में एक सेक्टर को ढीला करना आवश्यक है (जो कि 4k डेटा के बाद है) पूरी तरह से, लेकिन क्योंकि एचडीडी उस हिस्से को भी छोड़ सकता है "खराब क्षेत्र" जो अभी भी मूल्य का होगा। स्पिनट्राइट तर्कों की प्रस्तुति इस विचार को बनाए रखती है, इसलिए उत्तर भी कुछ और अंतर्दृष्टि प्रदान करता है, महान।
मानवतावादी

2

जब तक आप थोड़ी सी भी गलत हार्डवेयर त्रुटि नहीं करते हैं, जब तक कि सिर सही ट्रैक की तलाश में सक्षम नहीं हो जाता है, या सर्वो ट्रैक क्षतिग्रस्त हो जाता है और सही सेक्टर नहीं मिल सकता है, तो "थोड़ा सा नहीं पढ़ सकता है" जैसी कोई चीज नहीं है। । जाहिर है या तो किसी भी मामले में, बहुत कम से कम, एक संपूर्ण अपठनीय क्षेत्र।

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

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


1

इसे देखा और उत्तर से प्रेरित होकर https://superuser.com/a/969917/160771 https://superuser.com/users/337631/davidpostill

मैं कुछ हद तक मौजूदा वैकल्पिक जवाब देना चाहूंगा। पहले यह सच है कि हार्ड डिस्क और उसके फर्मवेयर एक URE इवेंट के मूल हैं, यह वह घटना है जिसे डेटा पढ़ा नहीं जा सकता है। इसके अलावा यह सच है कि डेटा 512 या 4096 प्रयोग करने योग्य डेटा के बाइट्स में डिस्क करने के लिए और कुछ अतिरिक्त डेटा के 50 या संबंधित 100 बाइट्स जो त्रुटि जाँच और सुधार की अनुमति चाहिए।

URE के बारे में बोलना स्वाभाविक रूप से हार्ड डिस्क सेक्टर के संदर्भ में होता है। बुरा क्षेत्र शब्द निश्चित रूप से कुछ हद तक जुड़ा हुआ है, लेकिन उस स्थिति के समान नहीं है जब हमारे पास एक URE सेक्टर है।

कुछ समस्याओं के साथ एक क्षेत्र को त्रुटि के बिना पढ़ा जाना जरूरी नहीं है, पूरी तरह से अर्थहीन है। यह हो सकता है कि वास्तव में सभी 4096 डेटा दूषित हो गए हैं, लेकिन यह भी हो सकता है कि केवल 1 बिट अधिक विश्वसनीय रूप से सुधारात्मक था (प्रत्येक क्षेत्र में जोड़े गए अतिरिक्त ईसीसी डेटा के माध्यम से) दूषित था।

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

एक उदाहरण हो सकता है कि 4096 2 वाक्यों के ASCII चारबाइट्स का प्रतिनिधित्व करता है। तब यह संभव है कि टोपी 1 वाक्य या उससे अधिक पूरी तरह से बरकरार है। इसके अलावा यह संभव हो सकता है कि हर 2 या 3 अक्षर विलंबित हो। यदि एक URE घटना में 4096 का डेटा खो जाता है, तो डेटा की व्याख्या और निर्भर है। कोई यह छवि बना सकता है कि डेटा में ईसीसी शेल की एक और परत थी, जो आगे की वसूली के लिए अनुमति देगा।

इसलिए यह अच्छा है कि अधिकांश फ़र्मवेयर खराब क्षेत्रों से अलग यूर क्षेत्रों का इलाज करते हैं:

आमतौर पर, सेक्टरों का स्वचालित रीमैपिंग केवल तब होता है जब किसी सेक्टर को लिखा जाता है। इसके पीछे तर्क यह माना जाता है कि भले ही किसी क्षेत्र को सामान्य रूप से नहीं पढ़ा जा सकता है, फिर भी यह डेटा रिकवरी विधियों के साथ पढ़ने योग्य हो सकता है। ( https://en.wikipedia.org/wiki/Bad_sector से )

या उस तक सीमित करने के लिए, यह हो सकता है कि सेक्टर के एक हिस्से में अभी भी प्रयोग करने योग्य डेटा हो।


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