डीडी (यूनिक्स): Difference between revisions
No edit summary |
No edit summary |
||
| (9 intermediate revisions by 4 users not shown) | |||
| Line 24: | Line 24: | ||
== इतिहास == | == इतिहास == | ||
{{Mono|डीडी}} नाम [[आईबीएम]] की [[नौकरी नियंत्रण भाषा]] (JCL) में पाये जाने वाले डीडी कथन का एक संकेत है,<ref name="jargon-dd">{{cite web | url=http://www.catb.org/jargon/html/D/dd.html | title=डीडी| first=Eric S. | last=Raymond | access-date=2008-02-19 }}</ref><ref>{{cite newsgroup |title=पुन: यूनिक्स डीडी कमांड की उत्पत्ति|first=Dennis |last=Ritchie |date=Feb 17, 2004 |newsgroup=alt.folklore.computers |message-id=c0s1he$1atuh9$1@ID-156882.news.uni-berlin.de |url=https://groups.google.com/forum/#!msg/alt.folklore.computers/HAWoZ8g-xYk/HDUVxwTVLKAJ |quote=dd का नाम हमेशा JCL dd कार्ड के नाम पर रखा गया था।|access-date=January 10, 2016}}</ref> जिसमें यह डेटा डेफिनिशन का संक्षिप्त नाम है।<ref>{{cite newsgroup |title=पुन: यूनिक्स "डीडी" कमांड की व्युत्पत्ति|first=Barry |last=Shein |date=Apr 22, 1990 |newsgroup=alt.folklore.computers |message-id=1990Apr22.191928.11180@world.std.com |url=https://groups.google.com/d/msg/alt.folklore.computers/K4uzWBugSPE/GwSgDUEU_3wJ |access-date=2016-07-14 }}</ref> कमांड का | {{Mono|डीडी}} नाम [[आईबीएम]] की [[नौकरी नियंत्रण भाषा]] (JCL) में पाये जाने वाले डीडी कथन का एक संकेत है,<ref name="jargon-dd">{{cite web | url=http://www.catb.org/jargon/html/D/dd.html | title=डीडी| first=Eric S. | last=Raymond | access-date=2008-02-19 }}</ref><ref>{{cite newsgroup |title=पुन: यूनिक्स डीडी कमांड की उत्पत्ति|first=Dennis |last=Ritchie |date=Feb 17, 2004 |newsgroup=alt.folklore.computers |message-id=c0s1he$1atuh9$1@ID-156882.news.uni-berlin.de |url=https://groups.google.com/forum/#!msg/alt.folklore.computers/HAWoZ8g-xYk/HDUVxwTVLKAJ |quote=dd का नाम हमेशा JCL dd कार्ड के नाम पर रखा गया था।|access-date=January 10, 2016}}</ref> जिसमें यह डेटा डेफिनिशन का संक्षिप्त नाम है।<ref>{{cite newsgroup |title=पुन: यूनिक्स "डीडी" कमांड की व्युत्पत्ति|first=Barry |last=Shein |date=Apr 22, 1990 |newsgroup=alt.folklore.computers |message-id=1990Apr22.191928.11180@world.std.com |url=https://groups.google.com/d/msg/alt.folklore.computers/K4uzWBugSPE/GwSgDUEU_3wJ |access-date=2016-07-14 }}</ref> कमांड का वाक्य विश्लेषण अन्य यूनिक्स कमांड्स की तुलना में JCL स्टेटमेंट से अधिक मिलता-जुलता है, इतना अधिक कि एरिक एस रेमंड कहते हैं, "इंटरफ़ेस डिज़ाइन स्पष्ट रूप से एक मज़ाक था"।<ref name="jargon-dd"/> कमांड-लाइन विकल्प शैली का उपयोग करने के लिए योजना 9 के डीडी कमांड में इंटरफ़ेस को फिर से डिज़ाइन किया गया है।<ref>{{man|1|dd|Plan 9}}</ref> <code>डीडी</code> इसकी ड्राइव-मिटाने की क्षमताओं के कारण इसे कभी-कभी मजाक में डिस्क डिस्ट्रॉयर भी कहा जाता है।<ref>{{Cite web|date=2018-07-05|title=अपनी डिस्क को नष्ट किए बिना लिनक्स में dd का उपयोग कैसे करें|url=https://opensource.com/article/18/7/how-use-dd-linux|access-date=2020-10-11|website=Opensource.com|language=en}}</ref> | ||
मूल रूप से एएससीआईआई और ईबीसीडीआईसी के बीच परिवर्तित करने का संकल्प है, {{mono|dd}} पहली बार [[संस्करण 5 यूनिक्स]] में दिखाई दिया।<ref>{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=एक रिसर्च यूनिक्स रीडर: प्रोग्रामर मैनुअल, 1971-1986 से एनोटेट किए गए अंश|series=CSTR |number=139 |institution=Bell Labs}}</ref> {{Mono|डीडी}}<nowiki> }} कमांड 1987 के एक्स/ओपन पोर्टेबिलिटी गाइड इश्यू 2 के बाद से निर्दिष्ट है। यह </nowiki>[[आईईईई]] स्टडी 1003.1-2008 ([[पॉज़िक्स]]) द्वारा विरासत में मिला है, जो [[एकल यूनिक्स विशिष्टता]] का हिस्सा है।<ref name="SUS">{{man|1|dd|SUS}}</ref> | मूल रूप से एएससीआईआई और ईबीसीडीआईसी के बीच परिवर्तित करने का संकल्प है, {{mono|dd}} पहली बार [[संस्करण 5 यूनिक्स]] में दिखाई दिया।<ref>{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=एक रिसर्च यूनिक्स रीडर: प्रोग्रामर मैनुअल, 1971-1986 से एनोटेट किए गए अंश|series=CSTR |number=139 |institution=Bell Labs}}</ref> {{Mono|डीडी}}<nowiki> }} कमांड 1987 के एक्स/ओपन पोर्टेबिलिटी गाइड इश्यू 2 के बाद से निर्दिष्ट है। यह </nowiki>[[आईईईई]] स्टडी 1003.1-2008 ([[पॉज़िक्स]]) द्वारा विरासत में मिला है, जो [[एकल यूनिक्स विशिष्टता]] का हिस्सा है।<ref name="SUS">{{man|1|dd|SUS}}</ref> | ||
| Line 33: | Line 33: | ||
== उपयोग == | == उपयोग == | ||
{{Mono|डीडी}} का [[कमांड लाइन]] | {{Mono|डीडी}} का [[कमांड लाइन]] वाक्य विश्लेषण कई अन्य यूनिक्स कार्यक्रमों से भिन्न है। यह अधिक मानक -option value या --option=value स्वरूपों के बजाय इसके [[कमांड-लाइन विकल्प|कमांड-लाइन विकल्पों]] के लिएवाक्यविन्यास विकल्प = मान का उपयोग करता है। डिफ़ॉल्ट रूप से, डीडी [[stdin|स्टडिन]] से पढ़ता है और [[मानक बाहर]] को लिखता है, लेकिन इन्हें if (इनपुट फ़ाइल) और (आउटपुट फ़ाइल) विकल्पों का उपयोग करके बदला जा सकता है।<ref name=SUS/> | ||
डीडी की कुछ विशेषताएं कंप्यूटर सिस्टम क्षमताओं पर निर्भर करती हैं, जैसे डीडी की प्रत्यक्ष मेमोरी एक्सेस के लिए एक विकल्प को लागू करने की क्षमता। चल रही {{Mono|डीडी}} प्रक्रिया में [[SIGINFO]] सिग्नल (या Linux पर USR1 सिग्नल) भेजने से यह एक बार मानक त्रुटि के लिए I/O आँकड़े प्रिंट करता है और फिर कॉपी करना जारी रखता है। {{Mono|डीडी}} कीबोर्ड से [[मानक इनपुट]] पढ़ सकता है। जब एंड-ऑफ-फाइल (ईओएफ) पहुंच जाता है, तो डीडी बाहर निकल जाएगा। [[cygwin|साइगविन]] और ईओएफ सॉफ्टवेयर द्वारा निर्धारित किए जाते हैं। उदाहरण के लिए, विंडोज़ में पोर्ट किए गए यूनिक्स टूल्स ईओएफ के अनुसार भिन्न होते हैं: सिगविन {{Key press|Ctrl|D}} (सामान्य यूनिक्स ईओएफ) का उपयोग करता है और [[एमकेएस टूलकिट]] {{keypress|Ctrl|Z}} (सामान्य विंडोज ईओएफ) का उपयोग करता है। | डीडी की कुछ विशेषताएं कंप्यूटर सिस्टम क्षमताओं पर निर्भर करती हैं, जैसे डीडी की प्रत्यक्ष मेमोरी एक्सेस के लिए एक विकल्प को लागू करने की क्षमता। चल रही {{Mono|डीडी}} प्रक्रिया में [[SIGINFO]] सिग्नल (या Linux पर USR1 सिग्नल) भेजने से यह एक बार मानक त्रुटि के लिए I/O आँकड़े प्रिंट करता है और फिर कॉपी करना जारी रखता है। {{Mono|डीडी}} कीबोर्ड से [[मानक इनपुट]] पढ़ सकता है। जब एंड-ऑफ-फाइल (ईओएफ) पहुंच जाता है, तो डीडी बाहर निकल जाएगा। [[cygwin|साइगविन]] और ईओएफ सॉफ्टवेयर द्वारा निर्धारित किए जाते हैं। उदाहरण के लिए, विंडोज़ में पोर्ट किए गए यूनिक्स टूल्स ईओएफ के अनुसार भिन्न होते हैं: सिगविन {{Key press|Ctrl|D}} (सामान्य यूनिक्स ईओएफ) का उपयोग करता है और [[एमकेएस टूलकिट]] {{keypress|Ctrl|Z}} (सामान्य विंडोज ईओएफ) का उपयोग करता है। | ||
| Line 45: | Line 45: | ||
== ब्लॉक आकार == | == ब्लॉक आकार == | ||
एक ब्लॉक | एक ब्लॉक एक इकाई है जो [[बाइट|बाइटस]] की संख्या को मापता है जो एक समय में पढ़ा, लिखा या परिवर्तित किया जाता है। कमांड-लाइन विकल्प आउटपुट/राइटिंग (obs) की तुलना में इनपुट/रीडिंग (ibs) के लिए एक अलग ब्लॉक आकार निर्दिष्ट कर सकते हैं, चूंकि ब्लॉक आकार (bs) विकल्प ibs और obs दोनों को ओवरराइड करेगा। इनपुट और आउटपुट ब्लॉक आकार दोनों के लिए डिफ़ॉल्ट मान 512 बाइट्स (डिस्क का पारंपरिक ब्लॉक आकार, और "एक ब्लॉक" का POSIX-अनिवार्य आकार) है। कॉपी करने के लिए काउंट विकल्प को ब्लॉक में मापा जाता है, जैसे कि पढ़ने के लिए {{Mono|skip}} काउंट और लिखने के लिए {{Mono|seek}} काउंट दोनों हैं। रूपांतरण संचालन "रूपांतरण ब्लॉक आकार" ({{Mono|cbs}}) से भी प्रभावित होते हैं।<ref name=SUS/>{{rp|at=OPERANDS}} | ||
ब्लॉक आकार विकल्पों के लिए प्रदान किया गया मान बाइट्स की दशमलव (आधार 10) पूर्णांक संख्या के रूप में व्याख्या किया गया है। इसमें यह इंगित करने के लिए प्रत्यय भी हो सकते हैं कि ब्लॉक आकार बाइट्स की तुलना में बड़ी इकाइयों की एक पूर्णांक संख्या है। POSIX केवल 512 के लिए प्रत्यय b (ब्लॉक) और 1024 के लिए k ([[kibibytes|किबिबाइट्स]]) निर्दिष्ट करता है।<ref name="SUS" />{{rp|at=OPERANDS}} [[tebibite|टेबिबाइट्स]], [[exbibit|एक्सबिबाइट्स]], [[pebibyte|पेबिबाइट्स]], [[पराजित|ज़ेबिबाइट्स]] और [[yobibit|योबिबाइट्स]] के लिए<ref name="bsd">{{man|1|dd|FreeBSD}}</ref>, जबकि जीएनयू समान इकाइयों के लिए एम([[mebibytes]]) और जी[[गिबिबाइट|गिबिबाइटस]]) का उपयोग करता है, केबी, एमबी और जीबी के साथ उनके एसआई इकाई समकक्षों ([[किलोबाइट|किलोबाइट्स]]) के लिए उपयोग किया जाता है।<ref name="lin" /> उदाहरण के लिए, GNU {{mono|डीडी}} के लिए, bs=16M 16 मेबिबाइट्स (16777216 बाइट्स) के ब्लॉक आकार को दर्शाता है और bs=3kB 3000 बाइट्स निर्दिष्ट करता है। | |||
इसके अतिरिक्त, कुछ कार्यान्वयन एक्स वर्ण को ब्लॉक आकार और गिनती पैरामीटर दोनों के लिए गुणा ऑपरेटर के रूप में समझते हैं। उदाहरण के लिए, bs=2x80x18b की व्याख्या 2 × 80 × 18 × 512 = {{val|1474560|u=बाइट्स}} के रूप में की जाती है, जो 1440 किबा [[फ्लॉपी डिस्क]]का यथार्थ आकार है। यह पॉज़िक्स में आवश्यक है, लेकिन जीएनयू इसका समर्थन नहीं करता है।<ref name="SUS" />{{rp|at=OPERANDS}} परिणामस्वरूप, <syntaxhighlight lang="bash" inline="">bs=$((2*80*18))b</syntaxhighlight> के POSIX शेल अंकगणितीय वाक्य विश्लेषण का उपयोग करना अधिक पोर्टेबल है। | |||
== उपयोग == {{Mono| | {{mono|डीडी}} कमांड को कॉपी करने के प्रदर्शन पर ब्लॉक आकार का प्रभाव पड़ता है। कई छोटे पढ़ना या लिखना अधिकांश कम बड़े पढ़ने की तुलना में धीमा होता है। बड़े ब्लॉकों का उपयोग करने के लिए अधिक रैम की आवश्यकता होती है और त्रुटि पुनर्प्राप्ति को जटिल बना सकता है। जब {{Mono|डीडी}} का उपयोग चर-ब्लॉक-आकार के उपकरणों जैसे टेप ड्राइव या नेटवर्क के साथ किया जाता है, तो ब्लॉक आकार उपयोग किए गए [[संचार प्रोटोकॉल]] के आधार पर टेप रिकॉर्ड आकार या [[नेटवर्क पैकेट]] आकार निर्धारित कर सकता है। | ||
नीचे दिए गए उदाहरण मुख्य रूप से ब्लॉक आकार तर्क में जीएनयू डीडी के उपयोग को मानते हैं। उन्हें पोर्टेबल बनाने के लिए, उदा। {{code|1=bs=64M}} | |||
<nowiki>== उपयोग ==</nowiki> | |||
{{Mono|डीडी}} कमांड का उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है। सादे-प्रतिलिपि आदेशों के लिए यह डोमेन-विशिष्ट विकल्पों की तुलना में धीमा हो जाता है, लेकिन यूनिक्स फ़ाइल एपीआई के लिए एक काफी निम्न-स्तरीय इंटरफ़ेस "किसी भी बिंदु पर फ़ाइल को ओवरराइट या काट-छांट करने या फ़ाइल में तलाश करने" की अपनी अद्वितीय क्षमता पर उत्कृष्टता प्राप्त करता है।<ref name="relevant">{{cite web |last1=Gilles |title=क्लोनिंग - डीडी बनाम बिल्ली - क्या डीडी अभी भी प्रासंगिक है?|url=https://unix.stackexchange.com/a/12538 |website=Unix & Linux Stack Exchange |date=2011}}</ref> | |||
नीचे दिए गए उदाहरण मुख्य रूप से ब्लॉक आकार तर्क में जीएनयू डीडी के उपयोग को मानते हैं। उन्हें पोर्टेबल बनाने के लिए, उदा। {{code|1=bs=64M}} शेल अंकगणितीय अभिव्यक्ति के साथ {{code|1=bs=$((64*1024*1024))|2=bash}} या {{code|1=bs=$((64 << 20))|2=bash}} (थोड़ा बदलाव के साथ समतुल्य लिखा गया)। | |||
=== डेटा ट्रांसफर === | === डेटा ट्रांसफर === | ||
{{Mono| | d{{Mono|डीडी}} फ़ाइलों, उपकरणों, विभाजनों और संस्करणों में डेटा की नकल कर सकता है। इनमें से किसी के लिए डेटा इनपुट या आउटपुट हो सकता है; लेकिन विभाजन में जाने पर आउटपुट से संबंधित महत्वपूर्ण अंतर हैं। साथ ही, स्थानांतरण के दौरान, माध्यम के अनुरूप रूपांतरण विकल्पों का उपयोग करके डेटा को संशोधित किया जा सकता है। (इस प्रयोजन के लिए, तथापि, {{mono|dd}} {{mono|cat}} की तुलना में धीमा है।)<ref name="relevant" /> | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Data transfer forms of {{Mono|dd}} | |+Data transfer forms of {{Mono|dd}} | ||
|- | |- | ||
| {{pre|1={{codett|1=blocks=$(isosize -d 2048 /dev/sr0)|2=bash}}<br/>dd if=/dev/sr0 of=isoimage.iso bs=2048 count=$blocks status=progress}} || | | {{pre|1={{codett|1=blocks=$(isosize -d 2048 /dev/sr0)|2=bash}}<br/>dd if=/dev/sr0 of=isoimage.iso bs=2048 count=$blocks status=progress}} || [[compact disc|सीडी-रोम]], [[DVD|डीवीडी]] or [[Blu-ray|ब्लू-रे]] डिस्क से [[ISO image|आईएसओ]] [[disk image|डिस्क छवि]] बनाता है।<ref>{{cite web | url=https://wiki.archlinux.org/title/Optical_disc_drive#Creating_an_ISO_image_from_a_CD,_DVD,_or_BD | title=Creating an ISO image from a CD, DVD, or BD | work=ArchWiki | accessdate=April 18, 2022}}</ref> | ||
|- | |- | ||
| {{pre|1=dd if=system.img of=[[/dev/sdc]] bs=64M conv=noerror}} || | | {{pre|1=dd if=system.img of=[[/dev/sdc]] bs=64M conv=noerror}} || पहले बनाई गई छवि से हार्ड डिस्क ड्राइव (या उदाहरण के लिए एक एसडी कार्ड) को पुनर्स्थापित करता है. | ||
|- | |- | ||
| {{pre|1=dd if=/dev/sdb2 of=partition.image bs=64M conv=noerror}} || | | {{pre|1=dd if=/dev/sdb2 of=partition.image bs=64M conv=noerror}} || 64 MiB ब्लॉक आकार का उपयोग करके, विभाजन sdb2 की एक छवि बनाएँ। | ||
|- | |- | ||
| {{pre|1=dd if=/dev/sda2 of=/dev/sdb2 bs=64M conv=noerror}} || [[ | | {{pre|1=dd if=/dev/sda2 of=/dev/sdb2 bs=64M conv=noerror}} || एक [[hard disk partition|विभाजन]] को दूसरे में [[Disk cloning|क्लोन]] करता है. | ||
|- | |- | ||
| {{pre|1=dd if=/dev/ad0 of=/dev/ad1 bs=64M conv=noerror}} || | | {{pre|1=dd if=/dev/ad0 of=/dev/ad1 bs=64M conv=noerror}} || क्लोन एक हार्ड डिस्क ड्राइव "ad0" को "ad1" में क्लोन करता है। | ||
|} | |} | ||
{{Mono|noerror | {{Mono|noerror}} विकल्प का अर्थ है कि यदि कोई त्रुटि है तो चलते रहना, जबकि sync विकल्प के कारण आउटपुट ब्लॉक पैडेड हो जाते हैं। | ||
=== इन-प्लेस संशोधन{{anchor|data modification}} === | === इन-प्लेस संशोधन{{anchor|data modification}} === | ||
{{Mono| | {{Mono|डीडी}} डेटा को स्थान में संशोधित कर सकते हैं। उदाहरण के लिए, यह फ़ाइल के पहले 512 बाइट्स को शून्य बाइट्स के साथ ओवरराइट करता है: | ||
{{pre|1= | {{pre|1= | ||
| Line 81: | Line 86: | ||
}} | }} | ||
{{Mono|notrunc}} }} | {{Mono|notrunc}}<nowiki> }} रूपांतरण विकल्प का अर्थ है आउटपुट फ़ाइल को छोटा न करें - अर्थात, यदि आउटपुट फ़ाइल पहले से मौजूद है, तो केवल निर्दिष्ट बाइट्स को बदलें और शेष आउटपुट फ़ाइल को अकेला छोड़ दें। इस विकल्प के बिना, dd 512 बाइट लंबी आउटपुट फाइल बनाएगा।</nowiki> | ||
==== [[मास्टर बूट दस्तावेज़]] बैकअप और पुनर्स्थापित करें ==== | ==== [[मास्टर बूट दस्तावेज़]] बैकअप और पुनर्स्थापित करें ==== | ||
| Line 93: | Line 98: | ||
=== डिस्क वाइप === | === डिस्क वाइप === | ||
{{Main| | {{Main|डेटा विलोपन}} | ||
सुरक्षा कारणों से, कभी-कभी किसी छोड़े गए डिवाइस का [[डिस्क पोंछे]] करना आवश्यक होता है। यह यूनिक्स विशेष फाइलों से डेटा ट्रांसफर द्वारा प्राप्त किया जा सकता है। | सुरक्षा कारणों से, कभी-कभी किसी छोड़े गए डिवाइस का [[डिस्क पोंछे|डिस्क वाइप]] करना आवश्यक होता है। यह यूनिक्स विशेष फाइलों से डेटा ट्रांसफर द्वारा प्राप्त किया जा सकता है। | ||
* डिस्क पर शून्य लिखने के लिए, | * डिस्क पर शून्य लिखने के लिए, <code>डीडी if=[[/dev/zero]] of=[[/dev/sda]] bs=16M</code>. का प्रयोग करें | ||
* किसी डिस्क पर यादृच्छिक डेटा लिखने के लिए, | * किसी डिस्क पर यादृच्छिक डेटा लिखने के लिए, <code>डीडी if=[[/dev/urandom]] of=[[/dev/sda]] bs=16M का</code>प्रयोग करें | ||
ऊपर दिए गए डेटा संशोधन उदाहरण की तुलना में, notrunc रूपांतरण विकल्प की आवश्यकता नहीं है क्योंकि डीडी की आउटपुट फ़ाइल एक ब्लॉक डिवाइस होने पर इसका कोई प्रभाव नहीं पड़ता है।<ref>{{cite web |url=https://stackoverflow.com/questions/20526198/why-using-conv-notrunc-when-cloning-a-disk-with-dd |title=linux - dd के साथ डिस्क की क्लोनिंग करते समय conv=notrunc का उपयोग क्यों करें?|publisher=Stack Overflow |date=2013-12-11 |access-date=2014-03-24}}</ref> | |||
{{Mono|bs{{=}}16M}}<nowiki> }} विकल्प डीडी को एक बार में 16 मीबीबाइट पढ़ने और लिखने देता है। आधुनिक प्रणालियों के लिए, एक बड़ा ब्लॉक आकार तेज़ हो सकता है। ध्यान दें कि ड्राइव को यादृच्छिक डेटा से भरने में ड्राइव को शून्य करने से अधिक समय लग सकता है, क्योंकि यादृच्छिक डेटा सीपीयू द्वारा बनाया जाना चाहिए, जबकि शून्य बनाना बहुत तेज़ है। आधुनिक हार्ड-डिस्क ड्राइव पर, ड्राइव को शून्य करने से उसमें मौजूद अधिकांश डेटा स्थायी रूप से अपरिवर्तनीय हो जाएगा।</nowiki><ref>{{cite conference | {{Mono|bs{{=}}16M}}<nowiki> }} विकल्प डीडी को एक बार में 16 मीबीबाइट पढ़ने और लिखने देता है। आधुनिक प्रणालियों के लिए, एक बड़ा ब्लॉक आकार तेज़ हो सकता है। ध्यान दें कि ड्राइव को यादृच्छिक डेटा से भरने में ड्राइव को शून्य करने से अधिक समय लग सकता है, क्योंकि यादृच्छिक डेटा सीपीयू द्वारा बनाया जाना चाहिए, जबकि शून्य बनाना बहुत तेज़ है। आधुनिक हार्ड-डिस्क ड्राइव पर, ड्राइव को शून्य करने से उसमें मौजूद अधिकांश डेटा स्थायी रूप से अपरिवर्तनीय हो जाएगा।</nowiki><ref>{{cite conference | ||
| last1 = Wright | first1 = Craig S. | |||
| last2 = Kleiman | first2 = Dave | |||
| last3 = S. | first3 = Shyaam Sundhar R. | |||
| editor1-last = Sekar | editor1-first = R. | |||
| editor2-last = Pujari | editor2-first = Arun K. | |||
| contribution = Overwriting Hard Drive Data: The Great Wiping Controversy | |||
| doi = 10.1007/978-3-540-89862-7_21 | |||
| pages = 243–257 | |||
| publisher = Springer | |||
| series = Lecture Notes in Computer Science | |||
| title = सूचना प्रणाली सुरक्षा, चौथा अंतर्राष्ट्रीय सम्मेलन, ICISS 2008, हैदराबाद, भारत, 16-20 दिसंबर, 2008। कार्यवाही| volume = 5352 | |||
| year = 2008}}</ref> चूँकि, अन्य प्रकार के ड्राइव जैसे फ्लैश मेमोरी के साथ, [[डेटा अवशेष]] द्वारा अभी भी बहुत डेटा पुनर्प्राप्त किया जा सकता है। | |||
आधुनिक हार्ड डिस्क ड्राइव में एक [[सुरक्षित मिटाना]] कमांड होता है जिसे ड्राइव के हर सुलभ और दुर्गम हिस्से को स्थायी रूप से और सुरक्षित रूप से मिटाने के लिए डिज़ाइन किया गया है। यह कुछ [[ठोस राज्य ड्राइव]] (फ्लैश ड्राइव) के लिए भी काम कर सकता है। 2017 तक, यह USB फ्लैश ड्राइव पर और न ही सुरक्षित डिजिटल फ्लैश मेमोरी पर काम करता है।{{citation needed|date=August 2017}} उपलब्ध होने पर, यह डीडी का उपयोग करने की तुलना में तेज़ और अधिक सुरक्षित दोनों है।{{citation needed|date=August 2017}} [[लिनक्स]] मशीनों पर यह [[hdparm]] कमांड के माध्यम से पहुँचा जा सकता है {{Mono|--security-erase-enhanced}} विकल्प। | आधुनिक हार्ड डिस्क ड्राइव में एक [[सुरक्षित मिटाना]] कमांड होता है जिसे ड्राइव के हर सुलभ और दुर्गम हिस्से को स्थायी रूप से और सुरक्षित रूप से मिटाने के लिए डिज़ाइन किया गया है। यह कुछ [[ठोस राज्य ड्राइव|सॉलिड-स्टेट ड्राइव]] (फ्लैश ड्राइव) के लिए भी काम कर सकता है। 2017 तक, यह USB फ्लैश ड्राइव पर और न ही सुरक्षित डिजिटल फ्लैश मेमोरी पर काम करता है।{{citation needed|date=August 2017}} उपलब्ध होने पर, यह डीडी का उपयोग करने की तुलना में तेज़ और अधिक सुरक्षित दोनों है।{{citation needed|date=August 2017}} [[लिनक्स]] मशीनों पर यह [[hdparm]] कमांड के माध्यम से पहुँचा जा सकता है {{Mono|--security-erase-enhanced}} विकल्प। | ||
[[टुकड़ा (यूनिक्स)]] प्रोग्राम एकाधिक अधिलेखन प्रदान करता है, साथ ही व्यक्तिगत फ़ाइलों को अधिक सुरक्षित विलोपन प्रदान करता है। | [[टुकड़ा (यूनिक्स)]] प्रोग्राम एकाधिक अधिलेखन प्रदान करता है, साथ ही व्यक्तिगत फ़ाइलों को अधिक सुरक्षित विलोपन प्रदान करता है। | ||
=== डेटा रिकवरी === | === डेटा रिकवरी === | ||
डेटा रिकवरी में एक ड्राइव से पढ़ना सम्मिलित है जिसमें कुछ हिस्से संभावित रूप से दुर्गम हैं। {{code|dd}} | डेटा रिकवरी में एक ड्राइव से पढ़ना सम्मिलित है जिसमें कुछ हिस्से संभावित रूप से दुर्गम हैं। {{code|dd}} अपनी लचीली स्किपिंग ({{code|seek}}) और अन्य निम्न-स्तरीय सेटिंग्स के साथ इस नौकरी के लिए उपयुक्त है। चूँकि, वैनिला {{code|dd}} उपयोग करने के लिए अनाड़ी है क्योंकि उपयोगकर्ता को त्रुटि संदेशों को पढ़ना पड़ता है और मैन्युअल रूप से उन क्षेत्रों की गणना करनी होती है जिन्हें पढ़ा जा सकता है। एकल ब्लॉक आकार भी रिकवरी की ग्रैन्यूरिटी को सीमित करता है, क्योंकि एक ट्रेड-ऑफ करना पड़ता है: या तो अधिक डेटा रिकवर करने के लिए छोटे ब्लॉक का उपयोग करें या गति के लिए बड़े ब्लॉक का उपयोग करें। | ||
{{code|dd_rescue}}<ref>{{cite web|url=http://www.garloff.de/kurt/linux/ddrescue/|title=dd_बचाव|work=garloff.de}}</ref> नामक एक C कार्यक्रम अक्टूबर 1999 में लिखा गया था। इसने {{code|dd}} की रूपांतरण कार्यक्षमता को दूर किया, और दुविधा से निपटने के लिए दो ब्लॉक आकारों का समर्थन किया। यदि बड़े आकार का उपयोग करने वाला पठन विफल हो जाता है, तो जितना संभव हो उतना डेटा एकत्र करने के लिए यह छोटे आकार में वापस आ जाता है। यह पीछे की ओर भी दौड़ सकता है। 2003 में, एक {{code|dd_rhelp}} स्क्रिप्ट को {{code|dd_rescue}} का उपयोग करने की प्रक्रिया को स्वचालित करने के लिए लिखा गया था, यह ट्रैक करते हुए कि किन क्षेत्रों को स्वयं पढ़ा गया है।<ref>{{cite web |url=http://www.kalysto.org/utilities/dd_rhelp/index.en.html |title= dd_rhelp लेखक का भंडार|author= LAB Valentin|date=19 September 2011|quote=महत्वपूर्ण नोट: कुछ समय के लिए, dd_rhelp एकमात्र उपकरण (AFAIK) था जो इस प्रकार का काम करता था, लेकिन कुछ वर्षों से, यह अब सच नहीं है: एंटोनियो डियाज़ ने मेरे टूल के लिए एक आदर्श प्रतिस्थापन लिखा था: GNU 'ddrescue'। }}</ref> | |||
एक अन्य ओपन-सोर्स प्रोग्राम | 2004 में, GNU ने {{code|dd}} से असंबंधित एक अलग उपयोगिता लिखी, जिसे {{mono|[[ddrescue]]}} कहा जाता है। इसमें एक अधिक परिष्कृत गतिशील ब्लॉक-साइज एल्गोरिदम है और आंतरिक रूप से जो पढ़ा गया है उसका ट्रैक रखता है। {{code|dd_rescue}} और {{code|dd_rhelp}} दोनों के लेखक इसे अपने कार्यान्वयन से बेहतर मानते हैं।<ref>{{cite web|url=https://www.gnu.org/software/ddrescue/ddrescue.html|title=Ddrescue - GNU प्रोजेक्ट - फ्री सॉफ्टवेयर फाउंडेशन (FSF)|work=gnu.org}}</ref> नए GNU प्रोग्राम को पुरानी स्क्रिप्ट से अलग करने में सहायता के लिए, कभी-कभी GNU के {{mono|[[ddrescue]]}} के लिए वैकल्पिक नामों का उपयोग किया जाता है, जिसमें {{code|addrescue}} (freecode.com और Freshmeat.net पर नाम), {{code|gddrescue}} ([[डेबियन]] पैकेज नाम), और {{code|gnu_ddrescue}} (ओपनएसयूएसई पैकेज नाम) सम्मिलित हैं। | ||
एक अन्य ओपन-सोर्स प्रोग्राम जिसे {{code|savehd7}} कहा जाता है एक परिष्कृत कलन विधि का उपयोग करता है, लेकिन इसके लिए [[Seed7]] की अपनी प्रोग्रामिंग-भाषा दुभाषिया की स्थापना की भी आवश्यकता होती है। | |||
=== बेंचमार्किंग ड्राइव प्रदर्शन === | === बेंचमार्किंग ड्राइव प्रदर्शन === | ||
ड्राइव बेंचमार्क टेस्ट करने और अनुक्रमिक (और | ड्राइव बेंचमार्क टेस्ट करने और अनुक्रमिक (और सामान्यतः सिंगल-थ्रेडेड) सिस्टम का विश्लेषण करने के लिए 1024-बाइट ब्लॉक के लिए प्रदर्शन पढ़ें और लिखें: | ||
* प्रदर्शन लिखें: <code>डीडी if=[[/dev/zero]] bs=1024 count=1000000 of=1GB_file_to_write</code> | * प्रदर्शन लिखें: <code>डीडी if=[[/dev/zero]] bs=1024 count=1000000 of=1GB_file_to_write</code> | ||
* प्रदर्शन पढ़ें: <code>डीडी if=1GB_file_to_read of=[[/dev/null]] bs=1024</code> | * प्रदर्शन पढ़ें: <code>डीडी if=1GB_file_to_read of=[[/dev/null]] bs=1024</code> | ||
| Line 148: | Line 155: | ||
=== प्रगति सूचक === | === प्रगति सूचक === | ||
मुख्य रूप से फ़िल्टर के रूप में डिज़ाइन किया गया प्रोग्राम होने | मुख्य रूप से फ़िल्टर के रूप में डिज़ाइन किया गया प्रोग्राम होने पर, {{Mono|dd}} सामान्यतः कोई प्रगति संकेत प्रदान नहीं करता है। इसे भेजकर इसे दूर किया जा सकता हैचल रही GNU {{Mono|dd}} प्रक्रिया (INFO on BSD सिस्टम) को USR1 सिग्नल भेजकर इसे दूर किया जा सकता है, जिसके परिणामस्वरूप {{Mono|dd}} स्थानांतरित ब्लॉकों की वर्तमान संख्या को प्रिंट करता है।। | ||
जब तक {{Mono|''dd-pid''}} को {{Mono|dd}} की प्रक्रिया-आईडी से बदल दिया जाता है, तब तक स्थानांतरण समाप्त होने तक प्रत्येक 10 सेकंड में निम्न वन-लाइनर प्रगति के निरंतर आउटपुट का परिणाम देता है: | |||
{{pre|1= | {{pre|1= | ||
while kill -USR1 ''dd-pid'' ; do sleep 10 ; done | while kill -USR1 ''dd-pid'' ; do sleep 10 ; done | ||
| Line 159: | Line 166: | ||
== कांटे == | == कांटे == | ||
=== डीसीएफएलडीडी {{anchor|dcfldd fork from 2006}}==={{Mono|dcfldd}}जीएनयू | === डीसीएफएलडीडी {{anchor|dcfldd fork from 2006}}=== | ||
{{Mono|dcfldd}} जीएनयू {{Mono|dd}} का एक कांटा है जो निक हार्बर द्वारा विकसित एक उन्नत संस्करण है, जो उस समय संयुक्त राज्य अमेरिका के रक्षा कंप्यूटर फोरेंसिक प्रयोगशाला विभाग के लिए काम कर रहा था।<ref>{{cite web | url=http://dcfldd.sourceforge.net/ | title = स्रोत फोर्ज पर DCFLDD| publisher=Source Forge | access-date=2013-08-17 }}</ref><ref>{{cite book |last=Jeremy Faircloth, Chris Hurley |title=पेनेट्रेशन टेस्टर का ओपन सोर्स टूलकिट|year=2007 |publisher=Syngress |isbn=9780080556079 |pages=470–472}}</ref><ref>{{cite book |last=Jack Wiles, Anthony Reyes |title=द बेस्ट डेमन साइबर क्राइम एंड डिजिटल फोरेंसिक बुक पीरियड|year=2011 |publisher=Syngress |isbn=9780080556086 |pages=408–411}}</ref> की तुलना में {{mono|dd}}, {{mono|dcfldd}} एक से अधिक आउटपुट फ़ाइल की अनुमति देता है, एक साथ कई चेकसम गणनाओं का समर्थन करता है, फ़ाइल मिलान के लिए एक सत्यापन मोड प्रदान करता है, और एक ऑपरेशन की प्रतिशत प्रगति प्रदर्शित कर सकता है। आखिरी रिलीज 2021 में हुई थी।<ref>{{cite web | url=https://github.com/resurrecting-open-source-projects/dcfldd | title = dcfldd: फोरेंसिक और सुरक्षा के लिए dd का उन्नत संस्करण| publisher=GitHub | access-date=2020-11-19 }}</ref> | |||
=== dc3dd === | |||
{{mono|dc3dd}} युनाइटेड स्टेट्स [[रक्षा साइबर अपराध केंद्र विभाग]] (DC3) का एक और उन्नत GNU {{mono|dd}} है। इसे {{Mono|dcfldd}} की निरंतरता के रूप में देखा जा सकता है, जब भी GNU अपस्ट्रीम को अपडेट किया जाता है, अपडेट करने के एक घोषित उद्देश्य के साथ। इसकी आखिरी रिलीज 2018 में हुई थी।<ref>{{cite web |title=डीकेडी|url=https://sourceforge.net/projects/dc3dd/ |website=SourceForge |language=en}}</ref> | |||
| Line 181: | Line 193: | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
{{Wikibooks|Guide to Unix|Commands}} | {{Wikibooks|Guide to Unix|Commands}} | ||
| Line 217: | Line 227: | ||
{{Backup software}} | {{Backup software}} | ||
[[Category: | |||
[[Category:All articles with unsourced statements]] | |||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | |||
[[Category:Articles with invalid date parameter in template]] | |||
[[Category:Articles with short description]] | |||
[[Category:Articles with unsourced statements from August 2017]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:CS1 français-language sources (fr)]] | |||
[[Category:CS1 maint]] | |||
[[Category:CS1 Ελληνικά-language sources (el)]] | |||
[[Category:Citation Style 1 templates|W]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 07/12/2022]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with empty portal template]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Portal templates with redlinked portals]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite web]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates used by AutoWikiBrowser|Cite web]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia fully protected templates|Cite web]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:इन्फर्नो (ऑपरेटिंग सिस्टम) कमांड]] | |||
[[Category:डिस्क क्लोनिंग]] | [[Category:डिस्क क्लोनिंग]] | ||
[[Category: | [[Category:डेटा इरेज़र सॉफ़्टवेयर]] | ||
[[Category:डेटा रिकवरी सॉफ़्टवेयर]] | |||
[[Category:मानक यूनिक्स कार्यक्रम]] | [[Category:मानक यूनिक्स कार्यक्रम]] | ||
[[Category: यूनिक्स SUS2008 उपयोगिताओं]] | [[Category:यूनिक्स SUS2008 उपयोगिताओं]] | ||
[[Category:योजना 9 आदेश]] | [[Category:योजना 9 आदेश]] | ||
[[Category: | [[Category:हार्ड डिस्क सॉफ्टवेयर]] | ||
Latest revision as of 16:12, 3 January 2023
| Original author(s) | Ken Thompson (AT&T Bell Laboratories) |
|---|---|
| Developer(s) | Various open-source and commercial developers |
| Initial release | June 1974 |
| Repository | coreutils: git |
| Written in | Plan 9: C |
| Operating system | Unix, Unix-like, Plan 9, Inferno, Windows |
| Platform | Cross-platform |
| Type | Command |
| License | coreutils: GPLv3+ Plan 9: MIT License |
डीडी यूनिक्स, प्लान 9, इन्फर्नो (ऑपरेटिंग सिस्टम), और यूनिक्स जैसे ऑपरेटिंग सिस्टम और उससे आगे के लिए एक कमांड लाइन उपयोगिता है, जिसका प्राथमिक उद्देश्य फ़ाइलों को परिवर्तित और कॉपी करना है।[1] यूनिक्स पर, हार्डवेयर के लिए डिवाइस ड्राइवर (जैसे कि हार्ड डिस्क ड्राइव) और विशेष डिवाइस फ़ाइलें (जैसे/देव/शून्य और/देव/यादृच्छिक) फ़ाइल सिस्टम में सामान्य फ़ाइलों की तरह दिखाई देती हैं; डीडी इन फ़ाइलों को पढ़ या लिख भी सकते हैं, बशर्ते कि उनके संबंधित ड्राइवर में फलन कार्यान्वित किया गया हो। परिणामस्वरूप, डीडी हार्ड ड्राइव के प्रारंभिक क्षेत्र का बैकअप लेने और एक निश्चित मात्रा में यादृच्छिक डेटा प्राप्त करने जैसे कार्यों के लिए उपयोग किया जा सकता है। वह डीडी प्रोग्राम डेटा पर रूपांतरण भी कर सकता है क्योंकि इसे कॉपी किया जाता है, जिसमें बाइट क्रम स्वैपिंग और ASCII और EBCDIC टेक्स्ट एन्कोडिंग से रूपांतरण सम्मिलित है।[2]
इतिहास
डीडी नाम आईबीएम की नौकरी नियंत्रण भाषा (JCL) में पाये जाने वाले डीडी कथन का एक संकेत है,[3][4] जिसमें यह डेटा डेफिनिशन का संक्षिप्त नाम है।[5] कमांड का वाक्य विश्लेषण अन्य यूनिक्स कमांड्स की तुलना में JCL स्टेटमेंट से अधिक मिलता-जुलता है, इतना अधिक कि एरिक एस रेमंड कहते हैं, "इंटरफ़ेस डिज़ाइन स्पष्ट रूप से एक मज़ाक था"।[3] कमांड-लाइन विकल्प शैली का उपयोग करने के लिए योजना 9 के डीडी कमांड में इंटरफ़ेस को फिर से डिज़ाइन किया गया है।[6] डीडी इसकी ड्राइव-मिटाने की क्षमताओं के कारण इसे कभी-कभी मजाक में डिस्क डिस्ट्रॉयर भी कहा जाता है।[7]
मूल रूप से एएससीआईआई और ईबीसीडीआईसी के बीच परिवर्तित करने का संकल्प है, dd पहली बार संस्करण 5 यूनिक्स में दिखाई दिया।[8] डीडी }} कमांड 1987 के एक्स/ओपन पोर्टेबिलिटी गाइड इश्यू 2 के बाद से निर्दिष्ट है। यह आईईईई स्टडी 1003.1-2008 (पॉज़िक्स) द्वारा विरासत में मिला है, जो एकल यूनिक्स विशिष्टता का हिस्सा है।[9]
जीएनयू कोरुटिल्स में बंडल किए गए डीडी का संस्करण पॉल रूबिन, डेविड मैकेंज़ी और स्टुअर्ट केम्प द्वारा लिखा गया था।[10] सामान्य जीएनयू यूनिक्स जैसी उपयोगिताओं के मूल निवासी Win32 बंदरगाहों के यू एन एक्स यूटीआईएलएस संग्रह के हिस्से के रूप में कमांड माइक्रोसॉफ्ट विंडोज के लिए एक अलग पैकेज के रूप में उपलब्ध है।[11]
उपयोग
डीडी का कमांड लाइन वाक्य विश्लेषण कई अन्य यूनिक्स कार्यक्रमों से भिन्न है। यह अधिक मानक -option value या --option=value स्वरूपों के बजाय इसके कमांड-लाइन विकल्पों के लिएवाक्यविन्यास विकल्प = मान का उपयोग करता है। डिफ़ॉल्ट रूप से, डीडी स्टडिन से पढ़ता है और मानक बाहर को लिखता है, लेकिन इन्हें if (इनपुट फ़ाइल) और (आउटपुट फ़ाइल) विकल्पों का उपयोग करके बदला जा सकता है।[9]
डीडी की कुछ विशेषताएं कंप्यूटर सिस्टम क्षमताओं पर निर्भर करती हैं, जैसे डीडी की प्रत्यक्ष मेमोरी एक्सेस के लिए एक विकल्प को लागू करने की क्षमता। चल रही डीडी प्रक्रिया में SIGINFO सिग्नल (या Linux पर USR1 सिग्नल) भेजने से यह एक बार मानक त्रुटि के लिए I/O आँकड़े प्रिंट करता है और फिर कॉपी करना जारी रखता है। डीडी कीबोर्ड से मानक इनपुट पढ़ सकता है। जब एंड-ऑफ-फाइल (ईओएफ) पहुंच जाता है, तो डीडी बाहर निकल जाएगा। साइगविन और ईओएफ सॉफ्टवेयर द्वारा निर्धारित किए जाते हैं। उदाहरण के लिए, विंडोज़ में पोर्ट किए गए यूनिक्स टूल्स ईओएफ के अनुसार भिन्न होते हैं: सिगविन Ctrl+D (सामान्य यूनिक्स ईओएफ) का उपयोग करता है और एमकेएस टूलकिट Ctrl+Z (सामान्य विंडोज ईओएफ) का उपयोग करता है।
डीडी मंगलाचरण के गैर-मानकीकृत भाग कार्यान्वयन के बीच भिन्न होते हैं।
आउटपुट संदेश
पूरा होने पर, डीडी डेटा ट्रांसफर के आँकड़ों के बारे में stderr स्ट्रीम को प्रिंट करता है। प्रारूप POSIX में मानकीकृत है।[9]: STDERR जीएनयू डीडी के लिए मानकीकृत पेज इस प्रारूप का वर्णन नहीं करता है, लेकिन बीएसडी मानकीकृत करता है।
प्रत्येक "रिकॉर्ड्स इन" और "रिकॉर्ड्स आउट" लाइनें स्थानांतरित किए गए पूर्ण ब्लॉकों की संख्या + आंशिक ब्लॉकों की संख्या, उदा। क्योंकि पूरा ब्लॉक पढ़ने से पहले भौतिक माध्यम समाप्त हो गया था, या एक भौतिक त्रुटि ने पूरे ब्लॉक को पढ़ने से रोक दिया था।
ब्लॉक आकार
एक ब्लॉक एक इकाई है जो बाइटस की संख्या को मापता है जो एक समय में पढ़ा, लिखा या परिवर्तित किया जाता है। कमांड-लाइन विकल्प आउटपुट/राइटिंग (obs) की तुलना में इनपुट/रीडिंग (ibs) के लिए एक अलग ब्लॉक आकार निर्दिष्ट कर सकते हैं, चूंकि ब्लॉक आकार (bs) विकल्प ibs और obs दोनों को ओवरराइड करेगा। इनपुट और आउटपुट ब्लॉक आकार दोनों के लिए डिफ़ॉल्ट मान 512 बाइट्स (डिस्क का पारंपरिक ब्लॉक आकार, और "एक ब्लॉक" का POSIX-अनिवार्य आकार) है। कॉपी करने के लिए काउंट विकल्प को ब्लॉक में मापा जाता है, जैसे कि पढ़ने के लिए skip काउंट और लिखने के लिए seek काउंट दोनों हैं। रूपांतरण संचालन "रूपांतरण ब्लॉक आकार" (cbs) से भी प्रभावित होते हैं।[9]: OPERANDS
ब्लॉक आकार विकल्पों के लिए प्रदान किया गया मान बाइट्स की दशमलव (आधार 10) पूर्णांक संख्या के रूप में व्याख्या किया गया है। इसमें यह इंगित करने के लिए प्रत्यय भी हो सकते हैं कि ब्लॉक आकार बाइट्स की तुलना में बड़ी इकाइयों की एक पूर्णांक संख्या है। POSIX केवल 512 के लिए प्रत्यय b (ब्लॉक) और 1024 के लिए k (किबिबाइट्स) निर्दिष्ट करता है।[9]: OPERANDS टेबिबाइट्स, एक्सबिबाइट्स, पेबिबाइट्स, ज़ेबिबाइट्स और योबिबाइट्स के लिए[12], जबकि जीएनयू समान इकाइयों के लिए एम(mebibytes) और जीगिबिबाइटस) का उपयोग करता है, केबी, एमबी और जीबी के साथ उनके एसआई इकाई समकक्षों (किलोबाइट्स) के लिए उपयोग किया जाता है।[10] उदाहरण के लिए, GNU डीडी के लिए, bs=16M 16 मेबिबाइट्स (16777216 बाइट्स) के ब्लॉक आकार को दर्शाता है और bs=3kB 3000 बाइट्स निर्दिष्ट करता है।
इसके अतिरिक्त, कुछ कार्यान्वयन एक्स वर्ण को ब्लॉक आकार और गिनती पैरामीटर दोनों के लिए गुणा ऑपरेटर के रूप में समझते हैं। उदाहरण के लिए, bs=2x80x18b की व्याख्या 2 × 80 × 18 × 512 = 1474560 बाइट्स के रूप में की जाती है, जो 1440 किबा फ्लॉपी डिस्कका यथार्थ आकार है। यह पॉज़िक्स में आवश्यक है, लेकिन जीएनयू इसका समर्थन नहीं करता है।[9]: OPERANDS परिणामस्वरूप, bs=$((2*80*18))b के POSIX शेल अंकगणितीय वाक्य विश्लेषण का उपयोग करना अधिक पोर्टेबल है।
डीडी कमांड को कॉपी करने के प्रदर्शन पर ब्लॉक आकार का प्रभाव पड़ता है। कई छोटे पढ़ना या लिखना अधिकांश कम बड़े पढ़ने की तुलना में धीमा होता है। बड़े ब्लॉकों का उपयोग करने के लिए अधिक रैम की आवश्यकता होती है और त्रुटि पुनर्प्राप्ति को जटिल बना सकता है। जब डीडी का उपयोग चर-ब्लॉक-आकार के उपकरणों जैसे टेप ड्राइव या नेटवर्क के साथ किया जाता है, तो ब्लॉक आकार उपयोग किए गए संचार प्रोटोकॉल के आधार पर टेप रिकॉर्ड आकार या नेटवर्क पैकेट आकार निर्धारित कर सकता है।
== उपयोग ==
डीडी कमांड का उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है। सादे-प्रतिलिपि आदेशों के लिए यह डोमेन-विशिष्ट विकल्पों की तुलना में धीमा हो जाता है, लेकिन यूनिक्स फ़ाइल एपीआई के लिए एक काफी निम्न-स्तरीय इंटरफ़ेस "किसी भी बिंदु पर फ़ाइल को ओवरराइट या काट-छांट करने या फ़ाइल में तलाश करने" की अपनी अद्वितीय क्षमता पर उत्कृष्टता प्राप्त करता है।[13]
नीचे दिए गए उदाहरण मुख्य रूप से ब्लॉक आकार तर्क में जीएनयू डीडी के उपयोग को मानते हैं। उन्हें पोर्टेबल बनाने के लिए, उदा। bs=64M शेल अंकगणितीय अभिव्यक्ति के साथ bs=$((64*1024*1024)) या bs=$((64 << 20)) (थोड़ा बदलाव के साथ समतुल्य लिखा गया)।
डेटा ट्रांसफर
dडीडी फ़ाइलों, उपकरणों, विभाजनों और संस्करणों में डेटा की नकल कर सकता है। इनमें से किसी के लिए डेटा इनपुट या आउटपुट हो सकता है; लेकिन विभाजन में जाने पर आउटपुट से संबंधित महत्वपूर्ण अंतर हैं। साथ ही, स्थानांतरण के दौरान, माध्यम के अनुरूप रूपांतरण विकल्पों का उपयोग करके डेटा को संशोधित किया जा सकता है। (इस प्रयोजन के लिए, तथापि, dd cat की तुलना में धीमा है।)[13]
|
सीडी-रोम, डीवीडी or ब्लू-रे डिस्क से आईएसओ डिस्क छवि बनाता है।[14] |
dd if=system.img of=/dev/sdc bs=64M conv=noerror |
पहले बनाई गई छवि से हार्ड डिस्क ड्राइव (या उदाहरण के लिए एक एसडी कार्ड) को पुनर्स्थापित करता है. |
dd if=/dev/sdb2 of=partition.image bs=64M conv=noerror |
64 MiB ब्लॉक आकार का उपयोग करके, विभाजन sdb2 की एक छवि बनाएँ। |
dd if=/dev/sda2 of=/dev/sdb2 bs=64M conv=noerror |
एक विभाजन को दूसरे में क्लोन करता है. |
dd if=/dev/ad0 of=/dev/ad1 bs=64M conv=noerror |
क्लोन एक हार्ड डिस्क ड्राइव "ad0" को "ad1" में क्लोन करता है। |
noerror विकल्प का अर्थ है कि यदि कोई त्रुटि है तो चलते रहना, जबकि sync विकल्प के कारण आउटपुट ब्लॉक पैडेड हो जाते हैं।
इन-प्लेस संशोधन
डीडी डेटा को स्थान में संशोधित कर सकते हैं। उदाहरण के लिए, यह फ़ाइल के पहले 512 बाइट्स को शून्य बाइट्स के साथ ओवरराइट करता है:
dd if=/dev/zero of=path/to/file bs=512 count=1 conv=notrunc
notrunc }} रूपांतरण विकल्प का अर्थ है आउटपुट फ़ाइल को छोटा न करें - अर्थात, यदि आउटपुट फ़ाइल पहले से मौजूद है, तो केवल निर्दिष्ट बाइट्स को बदलें और शेष आउटपुट फ़ाइल को अकेला छोड़ दें। इस विकल्प के बिना, dd 512 बाइट लंबी आउटपुट फाइल बनाएगा।
मास्टर बूट दस्तावेज़ बैकअप और पुनर्स्थापित करें
ऊपर दिए गए उदाहरण का उपयोग डिवाइस के किसी भी क्षेत्र को फ़ाइल में बैक अप लेने और पुनर्स्थापित करने के लिए भी किया जा सकता है, जैसे मास्टर बूट रिकॉर्ड।
फ़्लॉपी डिस्क के पहले दो सेक्टरों को डुप्लिकेट करने के लिए:
dd if=/dev/fd0 of=MBRboot.img bs=512 count=2
डिस्क वाइप
सुरक्षा कारणों से, कभी-कभी किसी छोड़े गए डिवाइस का डिस्क वाइप करना आवश्यक होता है। यह यूनिक्स विशेष फाइलों से डेटा ट्रांसफर द्वारा प्राप्त किया जा सकता है।
- डिस्क पर शून्य लिखने के लिए,
डीडी if=/dev/zero of=/dev/sda bs=16M. का प्रयोग करें - किसी डिस्क पर यादृच्छिक डेटा लिखने के लिए,
डीडी if=/dev/urandom of=/dev/sda bs=16M काप्रयोग करें
ऊपर दिए गए डेटा संशोधन उदाहरण की तुलना में, notrunc रूपांतरण विकल्प की आवश्यकता नहीं है क्योंकि डीडी की आउटपुट फ़ाइल एक ब्लॉक डिवाइस होने पर इसका कोई प्रभाव नहीं पड़ता है।[15]
bs=16M }} विकल्प डीडी को एक बार में 16 मीबीबाइट पढ़ने और लिखने देता है। आधुनिक प्रणालियों के लिए, एक बड़ा ब्लॉक आकार तेज़ हो सकता है। ध्यान दें कि ड्राइव को यादृच्छिक डेटा से भरने में ड्राइव को शून्य करने से अधिक समय लग सकता है, क्योंकि यादृच्छिक डेटा सीपीयू द्वारा बनाया जाना चाहिए, जबकि शून्य बनाना बहुत तेज़ है। आधुनिक हार्ड-डिस्क ड्राइव पर, ड्राइव को शून्य करने से उसमें मौजूद अधिकांश डेटा स्थायी रूप से अपरिवर्तनीय हो जाएगा।[16] चूँकि, अन्य प्रकार के ड्राइव जैसे फ्लैश मेमोरी के साथ, डेटा अवशेष द्वारा अभी भी बहुत डेटा पुनर्प्राप्त किया जा सकता है।
आधुनिक हार्ड डिस्क ड्राइव में एक सुरक्षित मिटाना कमांड होता है जिसे ड्राइव के हर सुलभ और दुर्गम हिस्से को स्थायी रूप से और सुरक्षित रूप से मिटाने के लिए डिज़ाइन किया गया है। यह कुछ सॉलिड-स्टेट ड्राइव (फ्लैश ड्राइव) के लिए भी काम कर सकता है। 2017 तक, यह USB फ्लैश ड्राइव पर और न ही सुरक्षित डिजिटल फ्लैश मेमोरी पर काम करता है।[citation needed] उपलब्ध होने पर, यह डीडी का उपयोग करने की तुलना में तेज़ और अधिक सुरक्षित दोनों है।[citation needed] लिनक्स मशीनों पर यह hdparm कमांड के माध्यम से पहुँचा जा सकता है --security-erase-enhanced विकल्प।
टुकड़ा (यूनिक्स) प्रोग्राम एकाधिक अधिलेखन प्रदान करता है, साथ ही व्यक्तिगत फ़ाइलों को अधिक सुरक्षित विलोपन प्रदान करता है।
डेटा रिकवरी
डेटा रिकवरी में एक ड्राइव से पढ़ना सम्मिलित है जिसमें कुछ हिस्से संभावित रूप से दुर्गम हैं। dd अपनी लचीली स्किपिंग (seek) और अन्य निम्न-स्तरीय सेटिंग्स के साथ इस नौकरी के लिए उपयुक्त है। चूँकि, वैनिला dd उपयोग करने के लिए अनाड़ी है क्योंकि उपयोगकर्ता को त्रुटि संदेशों को पढ़ना पड़ता है और मैन्युअल रूप से उन क्षेत्रों की गणना करनी होती है जिन्हें पढ़ा जा सकता है। एकल ब्लॉक आकार भी रिकवरी की ग्रैन्यूरिटी को सीमित करता है, क्योंकि एक ट्रेड-ऑफ करना पड़ता है: या तो अधिक डेटा रिकवर करने के लिए छोटे ब्लॉक का उपयोग करें या गति के लिए बड़े ब्लॉक का उपयोग करें।
dd_rescue[17] नामक एक C कार्यक्रम अक्टूबर 1999 में लिखा गया था। इसने dd की रूपांतरण कार्यक्षमता को दूर किया, और दुविधा से निपटने के लिए दो ब्लॉक आकारों का समर्थन किया। यदि बड़े आकार का उपयोग करने वाला पठन विफल हो जाता है, तो जितना संभव हो उतना डेटा एकत्र करने के लिए यह छोटे आकार में वापस आ जाता है। यह पीछे की ओर भी दौड़ सकता है। 2003 में, एक dd_rhelp स्क्रिप्ट को dd_rescue का उपयोग करने की प्रक्रिया को स्वचालित करने के लिए लिखा गया था, यह ट्रैक करते हुए कि किन क्षेत्रों को स्वयं पढ़ा गया है।[18]
2004 में, GNU ने dd से असंबंधित एक अलग उपयोगिता लिखी, जिसे ddrescue कहा जाता है। इसमें एक अधिक परिष्कृत गतिशील ब्लॉक-साइज एल्गोरिदम है और आंतरिक रूप से जो पढ़ा गया है उसका ट्रैक रखता है। dd_rescue और dd_rhelp दोनों के लेखक इसे अपने कार्यान्वयन से बेहतर मानते हैं।[19] नए GNU प्रोग्राम को पुरानी स्क्रिप्ट से अलग करने में सहायता के लिए, कभी-कभी GNU के ddrescue के लिए वैकल्पिक नामों का उपयोग किया जाता है, जिसमें addrescue (freecode.com और Freshmeat.net पर नाम), gddrescue (डेबियन पैकेज नाम), और gnu_ddrescue (ओपनएसयूएसई पैकेज नाम) सम्मिलित हैं।
एक अन्य ओपन-सोर्स प्रोग्राम जिसे savehd7 कहा जाता है एक परिष्कृत कलन विधि का उपयोग करता है, लेकिन इसके लिए Seed7 की अपनी प्रोग्रामिंग-भाषा दुभाषिया की स्थापना की भी आवश्यकता होती है।
बेंचमार्किंग ड्राइव प्रदर्शन
ड्राइव बेंचमार्क टेस्ट करने और अनुक्रमिक (और सामान्यतः सिंगल-थ्रेडेड) सिस्टम का विश्लेषण करने के लिए 1024-बाइट ब्लॉक के लिए प्रदर्शन पढ़ें और लिखें:
- प्रदर्शन लिखें:
डीडी if=/dev/zero bs=1024 count=1000000 of=1GB_file_to_write - प्रदर्शन पढ़ें:
डीडी if=1GB_file_to_read of=/dev/null bs=1024
यादृच्छिक डेटा के साथ एक फ़ाइल बनाना
कर्नेल रैंडम ड्राइवर का उपयोग करके 100 रैंडम बाइट्स की फ़ाइल बनाने के लिए:
dd if=/dev/urandom of=myrandom bs=100 count=1
फ़ाइल को अपर केस में कनवर्ट करना
फ़ाइल को अपरकेस में बदलने के लिए:
dd if=filename of=filename1 conv=ucase,notrunc
प्रगति सूचक
मुख्य रूप से फ़िल्टर के रूप में डिज़ाइन किया गया प्रोग्राम होने पर, dd सामान्यतः कोई प्रगति संकेत प्रदान नहीं करता है। इसे भेजकर इसे दूर किया जा सकता हैचल रही GNU dd प्रक्रिया (INFO on BSD सिस्टम) को USR1 सिग्नल भेजकर इसे दूर किया जा सकता है, जिसके परिणामस्वरूप dd स्थानांतरित ब्लॉकों की वर्तमान संख्या को प्रिंट करता है।।
जब तक dd-pid को dd की प्रक्रिया-आईडी से बदल दिया जाता है, तब तक स्थानांतरण समाप्त होने तक प्रत्येक 10 सेकंड में निम्न वन-लाइनर प्रगति के निरंतर आउटपुट का परिणाम देता है:
while kill -USR1 dd-pid ; do sleep 10 ; done
जीएनयू के नए संस्करण dd का समर्थन status=progress विकल्प, जो एसटीडीआरआर को अंतरण आँकड़ों की आवधिक छपाई को सक्षम बनाता है।[20]
कांटे
डीसीएफएलडीडी
dcfldd जीएनयू dd का एक कांटा है जो निक हार्बर द्वारा विकसित एक उन्नत संस्करण है, जो उस समय संयुक्त राज्य अमेरिका के रक्षा कंप्यूटर फोरेंसिक प्रयोगशाला विभाग के लिए काम कर रहा था।[21][22][23] की तुलना में dd, dcfldd एक से अधिक आउटपुट फ़ाइल की अनुमति देता है, एक साथ कई चेकसम गणनाओं का समर्थन करता है, फ़ाइल मिलान के लिए एक सत्यापन मोड प्रदान करता है, और एक ऑपरेशन की प्रतिशत प्रगति प्रदर्शित कर सकता है। आखिरी रिलीज 2021 में हुई थी।[24]
dc3dd
dc3dd युनाइटेड स्टेट्स रक्षा साइबर अपराध केंद्र विभाग (DC3) का एक और उन्नत GNU dd है। इसे dcfldd की निरंतरता के रूप में देखा जा सकता है, जब भी GNU अपस्ट्रीम को अपडेट किया जाता है, अपडेट करने के एक घोषित उद्देश्य के साथ। इसकी आखिरी रिलीज 2018 में हुई थी।[25]
यह भी देखें
- बैकअप
- डिस्क क्लोनिंग
- डिस्क कॉपी
- डिस्क छवि
- .img (फ़ाइल नाम एक्सटेंशन)
- यूनिक्स कमांड की सूची
- ddrescue एक GNU संस्करण जो दूषित फ़ाइलों से डेटा कॉपी करता है
संदर्भ
- ↑ Austin Group. "पॉज़िक्स मानक: डीडी मंगलाचरण". Retrieved 2016-09-29.
- ↑ Chessman, Sam. "डीडी कमांड का उपयोग कैसे और कब करें?". CodeCoffee. Retrieved 2008-02-19.
- ↑ 3.0 3.1 Raymond, Eric S. "डीडी". Retrieved 2008-02-19.
- ↑ Ritchie, Dennis (Feb 17, 2004). "पुन: यूनिक्स डीडी कमांड की उत्पत्ति". Newsgroup: alt.folklore.computers. Usenet: c0s1he$1atuh9$1@ID-156882.news.uni-berlin.de. Retrieved January 10, 2016.
dd का नाम हमेशा JCL dd कार्ड के नाम पर रखा गया था।
- ↑ Shein, Barry (Apr 22, 1990). "पुन: यूनिक्स "डीडी" कमांड की व्युत्पत्ति". Newsgroup: alt.folklore.computers. Usenet: 1990Apr22.191928.11180@world.std.com. Retrieved 2016-07-14.
- ↑ – Plan 9 Programmer's Manual, Volume 1
- ↑ "अपनी डिस्क को नष्ट किए बिना लिनक्स में dd का उपयोग कैसे करें". Opensource.com (in English). 2018-07-05. Retrieved 2020-10-11.
- ↑ McIlroy, M. D. (1987). एक रिसर्च यूनिक्स रीडर: प्रोग्रामर मैनुअल, 1971-1986 से एनोटेट किए गए अंश (PDF) (Technical report). CSTR. Bell Labs. 139.
- ↑ 9.0 9.1 9.2 9.3 9.4 9.5 – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
- ↑ 10.0 10.1 – Linux User Manual – User Commands
- ↑ "कुछ GNU उपयोगिताओं के नेटिव Win32 पोर्ट". unxutils.sourceforge.net.
- ↑ – FreeBSD General Commands Manual
- ↑ 13.0 13.1 Gilles (2011). "क्लोनिंग - डीडी बनाम बिल्ली - क्या डीडी अभी भी प्रासंगिक है?". Unix & Linux Stack Exchange.
- ↑ "Creating an ISO image from a CD, DVD, or BD". ArchWiki. Retrieved April 18, 2022.
- ↑ "linux - dd के साथ डिस्क की क्लोनिंग करते समय conv=notrunc का उपयोग क्यों करें?". Stack Overflow. 2013-12-11. Retrieved 2014-03-24.
- ↑ Wright, Craig S.; Kleiman, Dave; S., Shyaam Sundhar R. (2008). "Overwriting Hard Drive Data: The Great Wiping Controversy". In Sekar, R.; Pujari, Arun K. (eds.). सूचना प्रणाली सुरक्षा, चौथा अंतर्राष्ट्रीय सम्मेलन, ICISS 2008, हैदराबाद, भारत, 16-20 दिसंबर, 2008। कार्यवाही. Lecture Notes in Computer Science. Vol. 5352. Springer. pp. 243–257. doi:10.1007/978-3-540-89862-7_21.
- ↑ "dd_बचाव". garloff.de.
- ↑ LAB Valentin (19 September 2011). "dd_rhelp लेखक का भंडार".
महत्वपूर्ण नोट: कुछ समय के लिए, dd_rhelp एकमात्र उपकरण (AFAIK) था जो इस प्रकार का काम करता था, लेकिन कुछ वर्षों से, यह अब सच नहीं है: एंटोनियो डियाज़ ने मेरे टूल के लिए एक आदर्श प्रतिस्थापन लिखा था: GNU 'ddrescue'।
- ↑ "Ddrescue - GNU प्रोजेक्ट - फ्री सॉफ्टवेयर फाउंडेशन (FSF)". gnu.org.
- ↑ "जीएनयू कोरुटिल्स: डीडी मंगलाचरण". The GNU Operating System and the Free Software Movement. Retrieved 2019-08-26.
- ↑ "स्रोत फोर्ज पर DCFLDD". Source Forge. Retrieved 2013-08-17.
- ↑ Jeremy Faircloth, Chris Hurley (2007). पेनेट्रेशन टेस्टर का ओपन सोर्स टूलकिट. Syngress. pp. 470–472. ISBN 9780080556079.
- ↑ Jack Wiles, Anthony Reyes (2011). द बेस्ट डेमन साइबर क्राइम एंड डिजिटल फोरेंसिक बुक पीरियड. Syngress. pp. 408–411. ISBN 9780080556086.
- ↑ "dcfldd: फोरेंसिक और सुरक्षा के लिए dd का उन्नत संस्करण". GitHub. Retrieved 2020-11-19.
- ↑ "डीकेडी". SourceForge (in English).
बाहरी संबंध
- : convert and copy a file – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
- – Plan 9 Programmer's Manual, Volume 1
- – Inferno General commands Manual
- dd: manual page from the GNU Core Utilities.
- – Darwin and macOS General Commands Manual
- dd for Windows.
- savehd7 – save a potentially damaged harddisk partition
- Softpanorama dd page.
- DD at Linux Questions Wiki.
- Forensics (DD) Dcfldd
- ddpt – a variant specialized in files that are block devices
- sg_dd – Linux specialized variant for devices that use the SCSI command set