मैं जानना चाहूंगा कि यदि संभव हो तो डेटा पुनर्प्राप्त नहीं किया जा सकता है तो टर्मिनल के माध्यम से यूएसबी फ्लैश ड्राइव को कैसे हटाएं।
मैं जानना चाहूंगा कि यदि संभव हो तो डेटा पुनर्प्राप्त नहीं किया जा सकता है तो टर्मिनल के माध्यम से यूएसबी फ्लैश ड्राइव को कैसे हटाएं।
जवाबों:
टीएल / डीआर: सुनिश्चित करें कि आपको सही डिवाइस नाम मिलता है, सुनिश्चित करें कि यह माउंट नहीं किया गया है, और जितना आप कर सकते हैं उतने यादृच्छिक ओवरराइट करें। यदि आप हाल ही में पर्याप्त वितरण पर हैं, तो आप फ्लैश हार्डवेयर के लिए डिज़ाइन किए गए इरेज़ कमांड द्वारा इसका अनुसरण कर सकते हैं। इन जांचों में, हमेशा ड्राइव का उपयोग करें (जैसे / dev / sd h ) और विभाजन नाम नहीं (जो / dev / sd h1 होगा )
# dmesg|grep sdXX
[3600.000001] sd 6:0:0:0: [sdXX] 125106176 512-byte logical blocks: (64.0 GB/59.6 GiB)
# blkid|grep sdXX
/dev/sdXX1: PARTUUID="88a03bb2-ced8-4bb2-9883-0a51b4d460a8"
# df|grep /dev/sdXX
# shred -vzn8 /dev/sdXX
shred: /dev/sdXX: pass 1/9 (random)...
shred: /dev/sdXX: pass 1/9 (random)...46MiB/3.8GiB 1%
...
shred: /dev/sdXX: pass 9/9 (000000)...3.8GiB/3.8GiB 100%
# blkdiscard -s /dev/sdXX
blkdiscard: /dev/sdXX: BLKSECDISCARD ioctl failed: Operation not supported
# blkdiscard /dev/sdXX
blkdiscard: /dev/sdXX: BLKDISCARD ioctl failed: Operation not supported
#
सिद्धांत रूप में, शून्य के साथ ओवरराइटिंग dd
ठीक है। हालाँकि, फ्लैश ड्राइव के इंटर्नल कैसे बनाए जाते हैं, अगर आप सिंगल ओवरराइट पास का उपयोग करते हैं, तो वास्तविक ब्लॉक के पीछे छिपे डेटा की कई परतें हो सकती हैं जो अभी भी बचे हुए जानकारी को संग्रहीत कर रही हैं।
आमतौर पर फ्लैश स्टोरेज का एक हिस्सा दोषपूर्ण होता है, और निर्माण के दौरान इसे चिह्नित किया जाता है। ऐसे अन्य बिट्स भी हैं जो गलत हो सकते हैं (अपरिवर्तनीय, अस्थिर, या अस्वच्छ हो जाते हैं), इन भागों को जीवन भर के दौरान दोषपूर्ण रूप से चिह्नित किया जाना चाहिए। यह जानकारी आपके डेटा के समान आरक्षित स्थान पर संग्रहीत की जाती है। यह कई कारणों में से एक है 4GB थंब ड्राइव 2 ^ 32 बाइट्स क्षमता नहीं दिखा रहा है।
फ्लैश स्टोरेज को आंतरिक रूप से बड़े ब्लॉकों में भी व्यवस्थित किया जाता है, कभी-कभी ड्राइव पर काम करने वाले फाइल सिस्टम की तुलना में बहुत बड़ा होता है। एक विशिष्ट फाइलसिस्टम ब्लॉक का आकार 4KB है, और एक ही बार में मिटाए जाने वाले फ्लैश सेगमेंट 64KB से लेकर कई मेगाबाइट तक हो सकते हैं। इन बड़े ब्लॉकों को केवल पूरे में ही मिटाया जा सकता है, जो सभी ब्लॉक को एक ज्ञात स्थिति (सभी 1s या सभी 0s) पर रीसेट करता है। बाद में एक डेटा राइट किसी भी बिट्स को बदल सकता है (डिफ़ॉल्ट 1s को 0 एस में बदल दें जहां आवश्यक हो, या डिफ़ॉल्ट 0 एस को 1 एस में बदल दें), लेकिन केवल एक बार । किसी भी बिट को डिफ़ॉल्ट में वापस बदलने के लिए , सभी सेगमेंट को फिर से मिटाने की आवश्यकता है!
इसलिए, जब आप एक 4KB ब्लॉक बदलना चाहते हैं (फाइलसिस्टम को फाइल के बीच में एक ही कैरेक्टर बदलने के लिए कहा जाता है), फ्लैश कंट्रोलर को पुराने डेटा के सभी 64KB को पढ़ना और बफर करना होगा, यह सब मिटाना होगा, और नई सामग्री वापस लिखें। यह बहुत धीमी गति से होगा, मिटाने वाला सेगमेंट सबसे धीमा ऑपरेशन है। इसके अलावा, एक सेगमेंट केवल एक सीमित समय (दसियों हज़ार विशिष्ट है) द्वारा मिटाया जा सकता है, इसलिए यदि आप किसी एकल फ़ाइल में बहुत अधिक बदलाव करते हैं, तो यह ड्राइव को जल्दी से खराब कर सकता है।
लेकिन यह नहीं है कि यह कैसे किया जाता है। बुद्धिमान फ्लैश कंट्रोलर केवल 4KB नए डेटा को कहीं और लिखते हैं, और पुराने ब्लॉक के बीच में डेटा के इस 4KB पर रीडायरेक्ट करने के लिए एक नोट बनाते हैं। उन्हें कुछ और जगह की आवश्यकता है, जिसे हम रीडायरेक्ट के बारे में इस जानकारी को स्टोर करने के लिए नहीं देख सकते हैं। वे यह सुनिश्चित करने का भी प्रयास करते हैं कि वे डेटा को संग्रहीत करने के लिए सभी सुलभ खंडों से गुजरते हैं, इसे वियर लेवलिंग कहा जाता है ।
इसका मतलब है कि आम तौर पर पुराना डेटा अभी भी कहीं न कहीं ड्राइव पर है! यदि आपने सभी सुलभ ब्लॉकों को साफ़ कर दिया है, तो सभी छिपे हुए ब्लॉक अभी भी डेटा का एक हालिया संस्करण रखते हैं। क्या यह किसी ऐसे हमलावर के लिए सुलभ है जिसे आप चाहते हैं कि आपका डेटा सुरक्षित रहे, यह एक अलग सवाल है।
यदि आपके पास हाल ही में पर्याप्त वितरण है, और USB ड्राइव को यह प्रकट करने के लिए प्रोग्राम किया गया है कि यह एक फ्लैश ड्राइव है, blkdiscard
तो अंतर्निहित TRIM
ऑपरेशन का उपयोग कर सकता है , जो कि उस खंड को मिटा देता है जिसके बारे में हमने ऊपर बात की थी। यह सुनिश्चित करने के लिए एक अतिरिक्त ध्वज भी है कि हार्डवेयर द्वारा अदृश्य छिपा हुआ डेटा पूरी तरह से मिटा दिया गया है:
# blkdiscard -s /dev/myusbdevice
-s, --secure एक सुरक्षित त्याग करें। एक सुरक्षित त्याग एक नियमित रूप से त्यागने के समान है सिवाय इसके कि त्याग किए गए ब्लॉकों की सभी प्रतियां जो संभवतः कचरा संग्रह द्वारा बनाई गई थीं, उन्हें भी मिटा दिया जाना चाहिए। इसके लिए डिवाइस से समर्थन की आवश्यकता होती है।
यह जरूरी काम नहीं करेगा, जैसा कि मैंने ऊपर दिखाया। यदि आप प्राप्त करते हैं Operation not supported
, तो आपकी कर्नेल, आपकी उपयोगिताओं, या यूएसबी गेटवे चिप (जो फ्लैश नियंत्रक को यूएसबी के माध्यम से ड्राइव की तरह दिखने की अनुमति देता है) पासिंग TRIM
कमांड का समर्थन नहीं करता है । (फ्लैश कंट्रोलर को अभी भी अपने सेगमेंट को मिटाने में सक्षम होना चाहिए)। यदि यह आपके ड्राइव के विक्रेता द्वारा समर्थित है, तो यह सबसे सुरक्षित तरीका है।
एक और कम सुरक्षित तरीका यह सुनिश्चित करने के लिए कि आप पुराने डेटा को कम करने की अनुमति दे रहे हैं कहीं आसपास घूमने के लिए, इसे कई बार ओवरराइड करना है, यदि संभव हो तो यादृच्छिक मानों के साथ।
क्यों यादृच्छिक, आप पूछते हैं? बस कल्पना करें कि क्या यूएसबी ड्राइव बहुत बुद्धिमान बना दिया गया था, और यह पता चला कि आप एक सेक्टर को खाली करना चाहते हैं, और बस एक बिटमैप में बदलाव किया है कि यह सेक्टर अब स्वतंत्र है, और बाद में क्लियरिंग की आवश्यकता होगी। इसका मतलब है कि यह शून्य के लेखन को गति दे सकता है, इसलिए यह एक पेनड्राइव के लिए बनाता है जो अधिक कुशल, सही प्रतीत होता है ? क्या आपका ड्राइव यह कर रहा है, यह बताना मुश्किल है।
सबसे चरम पर, ड्राइव बस यह याद रख सकती है कि आपने शुरू से कितना साफ किया है, और इसे संग्रहीत करने के लिए सभी को संग्रहीत करने के लिए लगभग 4 बाइट्स की जानकारी है, और उस डेटा से कुछ भी साफ़ नहीं करना है जिसे आप गायब करना चाहते हैं। सभी ताकि यह बहुत तेजी से दिख सके।
यदि आप डेटा को यादृच्छिक, अप्रत्याशित मानों के साथ अधिलेखित कर रहे हैं, तो ये अनुकूलन असंभव हैं। इसलिए ड्राइव को यह सुनिश्चित करना होगा कि डेटा फ्लैश चिप्स के अंदर जमा हो जाए। लेकिन आप अभी भी इस बात से इंकार नहीं कर पाएंगे कि पहले से इस्तेमाल किए गए कुछ सेक्टर्स अभी भी आपके कुछ पुराने डेटा के साथ मौजूद हैं, लेकिन ड्राइव ने इसे अभी तक मिटाना महत्वपूर्ण नहीं समझा, क्योंकि यह सामान्य रूप से सुलभ नहीं है। केवल वास्तविक TRIM
आदेश ही इसकी गारंटी दे सकते हैं।
यादृच्छिक मानों के साथ ओवरराइटिंग को स्वचालित करने के लिए, आप इसका उपयोग करना चाह सकते हैं shred
, जैसे:
# shred -vzn88 /dev/myusbdrive
उपयोग किए गए विकल्प:
यदि संभव हो तो, दोनों का उपयोग करें blkdiscard
और shred
, यदि blkdiscard -s
आपकी ड्राइव द्वारा समर्थित है , तो यह इष्टतम समाधान है, लेकिन shred
फर्मवेयर की गलतियों को नियंत्रित करने के लिए पहले से करने के लिए चोट नहीं पहुंचा सकता है।
ओह, और हमेशा उस डिवाइस को डबल-ट्रिपल-चेक करें जिसे आप साफ़ करने की कोशिश कर रहे हैं! dmesg यह देखने के लिए मदद कर सकता है कि सबसे हाल ही में डाला गया डिवाइस क्या था, और यह भी डिवाइस नाम की जांच करने के लिए लायक है जिसे आप ls -al
उपकरणों के नोड नंबर के साथ, और blkid
आउटपुट को देखने का इरादा रखते हैं और यह देखने के लिए कि क्या विभाजन उपलब्ध हो सकता है जो आपने नहीं किया। साफ़ करना चाहते हैं।
इन आदेशों का उपयोग कभी भी आंतरिक ड्राइव पर न करें जिसे आप उपयोग करना चाहते हैं - blkdiscard
केवल ठोस राज्य ड्राइव पर काम करेगा, लेकिन यह डेटा खोने की कोशिश करने के लायक नहीं है!
जैसे-जैसे तकनीक आगे बढ़ती है, डेटा को सुरक्षित रूप से साफ़ करने के अन्य तरीके भी हो सकते हैं।
उल्लिखित एक अन्य तरीका एटीए SECURITY ERASE
कमांड है जिसे कमांड के माध्यम से जारी किया जा सकता है hdparm
। मेरे अनुभव में, यह वास्तव में फ्लैश ड्राइव पर समर्थित नहीं है। यह एंटरप्राइज़ हार्ड ड्राइव के लिए डिज़ाइन किया गया था, और यह सुविधा हमेशा सबसे कम लागत वाले भंडारण उपकरणों में लागू नहीं की जाती है।
TRIM
/ DISCARD
ऑपरेशन की तुलना में काफी नया है SECURITY ERASE
आदेश, और फ्लैश सुविधाओं के जवाब में बनाया गया था, तो यह लागू किया जा रहा, सस्ते यूएसबी ड्राइव में भी का एक बहुत उच्च मौका है, लेकिन यह अभी भी हर जगह नहीं है। यदि आप USB डोंगल में एक SD / माइक्रो SD कार्ड को मिटाना चाहते हैं, और blkdiscard
यह समर्थित नहीं है, तो आप एक अलग डोंगल / कार्ड रीडर आज़माना चाहते हैं, और / या सीधे SD / MMC स्लॉट वाली मशीन में कर सकते हैं। ।
blkdiscard
डेबियन जेसी में है, और केवल उबंटू के सबसे हाल के दो रिलीज में, लेकिन उबंटू एलटीएस 14.04 नहीं। blkdiscard
पैकेज util-linux
संस्करण 2.23 में जोड़ा गया था ।
blkdiscard
तुलना कैसे की जाती है (विशेष रूप से लिंक: ata.wiki.kernel.org/index.php/ATA_Secure_Erase )। hdparm
मुझे लगता है कि यह वास्तव में आपके सवाल का जवाब नहीं है, लेकिन सबसे सरल तरीका यह है कि शारीरिक रूप से ड्राइव को नष्ट कर दिया जाए (स्लेजहेमर के साथ इसे बार-बार दबाने से आमतौर पर चाल चली जाती है, लेकिन औद्योगिक श्रेडिंग या झुकाव भी विकल्प हैं)। यदि आप सुरक्षा के बारे में पर्याप्त चिंतित हैं, तो यह सुनिश्चित करने के लिए कि डेटा अप्राप्य है, उस डेटा का मान ड्राइव की लागत से कई गुना अधिक होने की संभावना है, और भौतिक विधि सस्ती और विश्वसनीय है।
लगभग सभी उपलब्ध सुरक्षित-डिलीट फ़ंक्शन को चुंबकीय मीडिया को कताई के लिए डिज़ाइन किया गया था, जहां कंप्यूटर आमतौर पर फ़ाइल के लिए उपयोग किए जाने वाले ब्लॉक का भौतिक स्थान [1] निर्धारित कर सकता है और उन्हीं ब्लॉकों पर लिख सकता है। सॉलिड-स्टेट स्टोरेज कंट्रोलर चिप्स सिस्टम से डेटा के भौतिक स्थान को सार करते हैं और इसे चारों ओर ले जाना पसंद करते हैं।
आपका प्रश्न वास्तव में इस बात पर निर्भर करता है कि आपके डेटा के बाद कौन जा रहा है। यदि आप यादृच्छिक नुकसान या आकस्मिक चोरी के बारे में चिंतित हैं तो एक नियमित प्रारूप ठीक रहेगा। यदि आप अपने निपटान [2] में पर्याप्त संसाधनों के साथ एक उच्च प्रेरित, तकनीकी रूप से सक्षम उपयोगकर्ता द्वारा लक्षित होने के बारे में चिंतित हैं, तो बस ड्राइव को बाधित करें और एक नए पर $ 10 खर्च करें।
हां, लॉजिकल ब्लॉक मैपिंग है। लेकिन तार्किक ब्लॉक ए हमेशा भौतिक ब्लॉक बी का नक्शा देगा।
यह व्यक्ति ड्राइव को खोलेगा, कार्ड से मेमोरी चिप को खींचेगा और नियंत्रक को दरकिनार करते हुए सीधे फ्लैश मेमोरी को पढ़ेगा
सबसे आसान और तेज़ तरीका मुझे पता है कि पूरी ड्राइव के लिए शून्य (0) लिखना है:
dd if=/dev/zero of=/dev/sdX
/dev/sdX
आपके थंबड्राइव का डिवाइस नोड कहां है।
कुछ अधिक पुनरावृत्तियों और अन्य पैटर्न के साथ अधिक गहन प्रक्रिया का सुझाव देते हैं। ऐसा करने के लिए विशिष्ट उपयोगिताओं उपलब्ध हैं। GNU कोरुटिल्स पैकेज में shred
विशेष रूप से इस उद्देश्य के लिए कमांड शामिल है । बहुत से लोग उपयोग भी करते हैं badblocks -w
, जो e2fsprogs पैकेज का हिस्सा है। FreeBSD पर shred
उपयोगिता कहा जाता है gshred
और /usr/ports/sysutils/coreutils
या तो /usr/ports/sysutils/fileutils
बंदरगाहों में उपलब्ध होना चाहिए ।
यदि आप इसे पुन: उपयोग करने की योजना बनाते हैं, तो यह आपके फ्लैश ड्राइव को सुरक्षित रूप से पोंछने में सक्षम होना चाहिए: http://linux.die.net/man/1/scrub यदि नहीं तो इसे पिघलाएं ...