प्रश्न 1:
-b
विकल्प के संबंध में : यह आपकी डिस्क पर निर्भर करता है। आधुनिक, बड़े डिस्क में 4KB ब्लॉक हैं, जिस स्थिति में आपको सेट करना चाहिए -b 4096
। आप ऑपरेटिंग सिस्टम से ब्लॉक का आकार प्राप्त कर सकते हैं , और यह आमतौर पर या तो लेबल से डिस्क की जानकारी को पढ़कर, या डिस्क के मॉडल नंबर को गुगली करके प्राप्त करने योग्य होता है। यदि -b
आपके ब्लॉक आकार से कुछ बड़ा करने के लिए सेट किया गया है, तो badblocks
परिणामों की अखंडता से समझौता किया जा सकता है (यानी आप झूठे-नकारात्मक प्राप्त कर सकते हैं: कोई बुरा ब्लॉक नहीं मिला जब वे अभी भी मौजूद हों)। यदि -b
आपके ड्राइव के ब्लॉक आकार से कुछ छोटा है, तो badblocks
रन की गति से समझौता किया जा सकता है। मुझे यकीन नहीं है, लेकिन सेटिंग के साथ अन्य समस्याएं भी हो सकती हैं-b
आपके ब्लॉक आकार की तुलना में कुछ छोटा है, क्योंकि यह एक पूरे ब्लॉक की अखंडता की पुष्टि नहीं कर रहा है, यह अभी भी गलत-नकारात्मक प्राप्त करना संभव हो सकता है यदि यह बहुत छोटा है।
यह -c
विकल्प एक साथ कितने ब्लॉक की जाँच करता है, इसके अनुरूप है। बैच पढ़ना / लिखना, मूल रूप से। यह विकल्प आपके परिणामों की अखंडता को प्रभावित नहीं करता है, लेकिन यह उस गति को प्रभावित करता है जिस पर badblocks
चलता है। badblocks
(वैकल्पिक रूप से) लिखेंगे, फिर पढ़ेंगे, बफर, चेक, प्रत्येक एन ब्लॉक के लिए दोहराएंगे जैसा कि निर्दिष्ट किया गया है -c
। यदि -c
बहुत कम सेट किया जाता है, तो यह आपके badblocks
रनों को सामान्य से बहुत अधिक समय लेगा, क्योंकि कतारबद्ध और अलग आईओ अनुरोध ओवरहेड को संसाधित और संसाधित करता है, और डिस्क अतिरिक्त ओवरहेड प्रति-अनुरोध भी लगा सकता है। यदि -c
बहुत अधिक सेट किया गया है, तो badblocks
स्मृति समाप्त हो सकती है। यदि ऐसा होता है, badblocks
तो यह शुरू होने के बाद काफी जल्दी विफल हो जाएगा। यहाँ अतिरिक्त विचारों में समानांतर badblocks
रन शामिल हैं : यदि आप दौड़ रहे हैंbadblocks
एक ही डिस्क (खराब विचार) पर एक से अधिक विभाजनों के खिलाफ, या एक ही IO चैनल पर कई डिस्क के खिलाफ, आप संभवतः -c
कुछ उच्च समझ के साथ ट्यून करना चाहेंगे badblocks
ताकि स्मृति उपलब्ध हो सके ताकि समानांतर रन IO बैंडविड्थ के लिए न लड़ें और एक समझदार तरीके से समानांतर कर सकते हैं।
प्रश्न 2:
अन्य उत्तर जो इंगित करते हैं, उसके-w
विपरीत, राइट-मोड टेस्ट गैर-विनाशकारी रीड-राइट टेस्ट से अधिक या कम विश्वसनीय नहीं है, लेकिन यह आपके डेटा के सभी के लिए विनाशकारी होने की कीमत पर दोगुना है। मैं समझाता हूँ क्यों:
गैर-विनाशकारी मोड में, badblocks
निम्न कार्य करता है:
- मौजूदा डेटा पढ़ें, इसे चेकसम करें (यदि आवश्यक हो तो फिर से पढ़ें), और इसे मेमोरी में स्टोर करें।
-p
ब्लॉक के लिए एक पूर्व निर्धारित पैटर्न ( विकल्प के साथ अति-योग्य , हालांकि आमतौर पर आवश्यक नहीं है) लिखें ।
- ब्लॉक बैक पढ़ें, यह पुष्टि करते हुए कि रीड डेटा पैटर्न के समान है।
- मूल डेटा को डिस्क पर वापस लिखें।
- मुझे इस पर यकीन नहीं है, लेकिन यह शायद फिर से पढ़ता है और पुष्टि करता है कि मूल डेटा सफलतापूर्वक लिखा गया था और अभी भी एक ही चीज़ के लिए चेकसम है।
विनाशकारी ( -w
) मोड में, badblocks
केवल ऊपर 2 और 3 चरण करता है। इसका अर्थ है कि डेटा अखंडता को सत्यापित करने के लिए आवश्यक रीड / राइट ऑपरेशन की संख्या आधे में कट जाती है। यदि एक ब्लॉक खराब है, तो डेटा किसी भी मोड में गलत होगा। बेशक, यदि आप अपने ड्राइव पर संग्रहीत डेटा के बारे में परवाह करते हैं, तो आपको गैर-विनाशकारी मोड का उपयोग करना चाहिए, क्योंकि -w
सभी डेटा को अलग करेगा और badblocks
डिस्क पर लिखे पैटर्न को छोड़ देगा ।
कैविएट: यदि कोई ब्लॉक खराब हो रहा है, लेकिन पूरी तरह से अभी तक नहीं गया है, तो कुछ रीड / राइट सत्यापन जोड़े काम कर सकते हैं, और कुछ नहीं हो सकते हैं। इस मामले में, गैर-विनाशकारी मोड आपको एक ब्लॉक के "शील" का अधिक विश्वसनीय संकेत दे सकता है, क्योंकि यह रीड / राइट सत्यापन के दो सेट करता है (शायद - चरण 4 के तहत बुलेट देखें)। यहां तक कि अगर गैर-विनाशकारी मोड उस तरह से अधिक विश्वसनीय है, तो यह केवल संयोग से अधिक विश्वसनीय है । ब्लॉक के लिए जाँच करने का सही तरीका जो पूरी तरह से खराब नहीं है, लेकिन विकल्प badblocks
का उपयोग करते हुए एक ही डेटा पर कई बार पढ़ने / लिखने के संचालन को बनाए नहीं रख -p
सकता है।
प्रश्न 3:
यदि SMART सेक्टरों को अलग कर रहा है, तो आपको संभवतः ASAP ड्राइव को बदलने पर विचार करना चाहिए। ड्राइव जो कुछ क्षेत्रों को खो देते हैं, उन्हें हमेशा खोते नहीं रहते हैं, लेकिन इसका कारण आमतौर पर एक अत्यधिक उपयोग किया जाने वाला ड्राइव है जो चुंबकीय रूप से विक्षिप्त हो रहा है, या गलत तरीके से चलने वाले हेड / मोटर्स के परिणामस्वरूप गलत या विफल रीड / लिखते हैं। अंतिम निर्णय आप पर निर्भर करता है, निश्चित रूप से: ड्राइव पर डेटा के मूल्य और उस पर आपके द्वारा चलाए जाने वाले सिस्टम से आपकी विश्वसनीयता की आवश्यकता के आधार पर, आप इसे बनाए रखने का निर्णय ले सकते हैं। मेरे पास कुछ बुरे ब्लॉकों के साथ कुछ ड्राइव हैं जो मेरे फाइलरवर में सालों से SMART चेतावनियों के साथ घूम रहे हैं, लेकिन वे एक शेड्यूल पर बैकअप ले रहे हैं ताकि मैं बिना किसी दर्द के कुल विफलता को संभाल सकूं।