कैसे अयोग्य क्षेत्रों के साथ एक हार्ड ड्राइव को मिटाने के लिए?


21

इसलिए मेरे पास एक हार्ड ड्राइव है जो विफल हो रही है। मैं प्रतिस्थापन के लिए भेजने से पहले उस पर मौजूद डेटा को मिटाना चाहता हूं। मैं उपयोग करने की कोशिश कर रहा हूं dd if=/dev/zero of=/dev/sdXX, लेकिन यह पहले लिखने की त्रुटि पर रुक जाता है। मैं लेखन त्रुटियों को अनदेखा करते हुए, शून्य के साथ ड्राइव को कैसे अधिलेखित कर सकता हूं? conv=noerrorकेवल इनपुट फ़ाइल को प्रभावित करता है।


नहीं है डेबियन डेटाबेस में एक बग रिपोर्ट इस व्यवहार के बारे, लेकिन ऐसा लगता है जैसे कि यह अभी तक लागू नहीं किया है।
बॉबी

क्या badblocksत्रुटियों पर भी रोक है? शायद आप उस के साथ एक विनाशकारी लिख सकते हैं?
oKtosiTe

badblocksसोमवार को डिस्क को वापस करने से पहले मैं यह सुनिश्चित करने के लिए विनाशकारी भाग गया कि कितने बुरे ब्लॉक हैं। इसने डिस्क को भी सफलतापूर्वक मिटा दिया, लेकिन इसमें लगभग 50 घंटे लगे।
TestUser16418

जवाबों:


18

dd के बजाय ddrescue आज़माएं - यह त्रुटियों के साथ कठिन प्रयास करता है


1
ddrescue ने लेखन त्रुटियों को अनदेखा करते हुए, पूरी डिस्क को सफलतापूर्वक मिटा दिया। आपका बहुत बहुत धन्यवाद।
TestUser16418 22:15

15

पैरामीटर मैंने ड्राइव को मिटाने के लिए ddrescue के साथ उपयोग किया /dev/sdb( /dev/zeroफ़ाइल से शून्य से भरा ) और फ़ाइल में आउटपुट लॉग करें log.txt:

ddrescue --force /dev/zero /dev/sdb log.txt

यादृच्छिक डेटा उपयोग के साथ पोंछने के लिए: ddrescue --force / dev / urandom / dev / sdX tmp.log
Bastion

जब यह किया जाता है तो आप कैसे जानते हैं? मैंने इसे किया और इसे लगभग 20 मिनट तक चलने दिया और इसे 0.00% बचाया गया। यह एक बुरी जगह के साथ एक NVMe SSD है जिसे मैं मिटाने की कोशिश कर रहा हूं ... सैमसंग सिक्योर इरेज यूटिलिटी ने मेरे लिए काम नहीं किया।
user1960364

3

अगर आप ड्राइव को डब करने की कोशिश कर रहे हैं

साइट से:

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


मैं यह सुझाव देने जा रहा था।
किरोबरेट्स

3

रिकॉर्ड के लिए, dd में conv=noerrorत्रुटियों को छोड़ने का विकल्प भी होता है। यदि आपके पास इनपुट फ़ाइल में त्रुटियां हैं, और जब उपयोग नहीं हो रहा है /dev/zero, तो आप आउटपुट फ़ाइल को ट्रंक करने से dd को रोकना चाहते हैं conv=noerror,notruncया उपयोग करना चाहते conv=noerror,syncहैं जहां इनपुट फ़ाइल में त्रुटियां मौजूद हैं।

अपनी क्वेरी के लिए, आप इसके बजाय इस आदेश को आज़मा सकते हैं:

dd if=/dev/zero of=/dev/sdXX conv=noerror  

प्रक्रिया को गति देने के लिए, और संभावित रूप से मिड स्ट्राइड में मरने से बचने के लिए, आप डिफ़ॉल्ट 512 से बाइट का आकार बढ़ाने की कोशिश कर सकते हैं (जो कि dd रीड सेक्टर-बाय-सेक्टर बनाता है, जो धीमा है) 4K से कुछ बड़ा हो (जैसे) जो कि आठ गुना बड़ा है):

dd if=/dev/zero of=/dev/sdXX bs=4K conv=noerror  

नोट: बड़े बाइट आकार के साथ, स्किप की गई त्रुटियां पठनीय डेटा के वर्गों को आपके द्वारा चुने गए बाइट के आकार से थोड़ा-थोड़ा कम कर सकती हैं, लेकिन यह अभी भी संभावना नहीं है कि पूरी डिस्क के माध्यम से चलने के बाद कोई भी उन वर्गों से कुछ भी प्राप्त कर सकेगा। प्रक्रिया।

इसके अलावा, मुझे यकीन है कि हार्ड ड्राइव निर्माता हार्ड ड्राइव का ठीक से निपटान करते हैं जो वारंटी प्रतिस्थापन के लिए वापस आ जाते हैं, इससे पहले कि ड्राइव पूरी तरह से ओवरराइट प्रक्रिया को पूरा करने में सक्षम होने से पहले ड्राइव विफल हो जाए।


man ddशो "नूर" का अर्थ है "जारी त्रुटियों को पढ़ने के बाद"
केविन स्माइथ

1

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

तुम सैद्धांतिक रूप से कुछ करने के लिए स्क्रिप्ट कर सकते हैं कि स्वचालित रूप से, लेकिन यह है कि तुच्छ नहीं है, और मैं बजाय स्क्रिप्टिंग डीडी के साथ परेशान से चाल करने के लिए एक उपकरण लिखना होगा ..

   seek=BLOCKS
          skip BLOCKS obs-sized blocks at start of output

1
... या
dd-

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