यादृच्छिक डेटा के साथ ड्राइव भरने पर GNU को dd की तुलना में अधिक तेज़ी से क्यों कम किया जाता है?


8

जबकि मैंने देखा कि decommissioning से पहले एक हार्ड ड्राइव को सुरक्षित रूप से मिटा रहा है, जिसमें dd if=/dev/urandom of=/dev/sdaलगभग पूरा दिन shred -vf -n 1 /dev/sdaलगता है , जबकि केवल एक ही कंप्यूटर और एक ही ड्राइव के साथ कुछ घंटे लगते हैं।

यह कैसे हो सकता है? मुझे लगता है कि टोंटी का सीमित उत्पादन है /dev/urandom। क्या श्रेड कुछ छद्म आयामी जनरेटर का उपयोग करता है जो कम यादृच्छिक होता है और केवल एकल उद्देश्य के लिए पर्याप्त होता है (अर्थात अधिक कुशल) urandom?


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

जवाबों:


11

श्रेड एक आंतरिक छद्म आयामी जनरेटर का उपयोग करता है

डिफ़ॉल्ट रूप से ये कमांड एक छोटी मात्रा में एन्ट्रापी द्वारा आरम्भ किए गए एक आंतरिक छद्म आयामी जनरेटर का उपयोग करते हैं, लेकिन --random- स्रोत = फ़ाइल विकल्प के साथ किसी बाहरी स्रोत का उपयोग करने के लिए निर्देशित किया जा सकता है। यदि फ़ाइल में पर्याप्त बाइट्स नहीं हैं तो त्रुटि की सूचना दी जाती है।

उदाहरण के लिए, डिवाइस फ़ाइल / dev / urandom का उपयोग यादृच्छिक डेटा के स्रोत के रूप में किया जा सकता है। आमतौर पर, यह डिवाइस डिवाइस ड्राइवरों और अन्य स्रोतों से एन्ट्रापी पूल में पर्यावरणीय शोर को इकट्ठा करता है, और यादृच्छिक बिट्स उत्पन्न करने के लिए पूल का उपयोग करता है। यदि पूल डेटा की कमी है, तो डिवाइस क्रिप्टोग्राफिक रूप से सुरक्षित छद्म आयामी संख्या जनरेटर का उपयोग करके आंतरिक पूल को अधिक बिट्स का उत्पादन करने के लिए पुन: उपयोग करता है। लेकिन ध्यान रखें कि यह डिवाइस बल्क रैंडम डेटा जेनरेशन के लिए नहीं बनाया गया है और यह अपेक्षाकृत धीमा है

मैं इस बात के लिए राजी नहीं हूं कि यादृच्छिक डेटा किसी भी पास के ज़ीरो (या किसी अन्य बाइट मूल्य) के पूर्ववर्ती सामग्रियों को अस्पष्ट करने की तुलना में अधिक प्रभावी है ।

किसी ड्राइव को सुरक्षित रूप से डिमोशन करने के लिए, मैं एक बड़े चुंबक और एक बड़े हथौड़ा का उपयोग करता हूं।


2

मुझे लगता है कि यह ddडेटा लिखने के लिए छोटे विखंडू का उपयोग करने के कारण होगा । dd if=... of=... bs=(1<<20)यह देखने की कोशिश करें कि क्या यह बेहतर प्रदर्शन करता है।


मैं कोशिश करूंगा कि अगले अवसर पर और परिणाम पोस्ट करूं।

+1 डिफ़ॉल्ट ddब्लॉक आकार 512 है। इसने मेरे कंप्यूटर पर डिस्क सीमा से नीचे का रास्ता दिखाया।
पिओटर फाइंडसेन

/ dev / urandom बहुत तेजी से होने की संभावना है - dd ब्लॉक का आकार लगभग प्रमाणिक रूप से समस्या है।
डैन प्रिट्स

2
एक बार जब आप ब्लॉक का आकार बढ़ाते हैं तो ऐसा लगता है कि यह /dev/urandomअड़चन बन सकता है - मैं यूएसबी 3.0 पर कुछ एसएसडी ड्राइव का परीक्षण कर रहा हूं और उसी ddकमांड के साथ मुझे 326 एमबी / एस मिलता है, if=/dev/zeroलेकिन इसके लिए केवल 12.8 एमबी / एसif=/dev/urandom
आस्टिनमार्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.