डीडी (यूनिक्स): Difference between revisions

From Vigyanwiki
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> कमांड का सिंटैक्स अन्य यूनिक्स कमांड्स की तुलना में 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|डीडी}} नाम [[आईबीएम]] की [[नौकरी नियंत्रण भाषा]] (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|डीडी}} का [[कमांड लाइन]] सिंटैक्स कई अन्य यूनिक्स कार्यक्रमों से भिन्न है। यह अधिक मानक -option value या --option=value स्वरूपों के बजाय इसके [[कमांड-लाइन विकल्प|कमांड-लाइन विकल्पों]] के लिएवाक्यविन्यास विकल्प = मान का उपयोग करता है। डिफ़ॉल्ट रूप से, डीडी [[stdin|स्टडिन]] से पढ़ता है और [[मानक बाहर]] को लिखता है, लेकिन इन्हें if (इनपुट फ़ाइल) और (आउटपुट फ़ाइल) विकल्पों का उपयोग करके बदला जा सकता है।<ref name=SUS/>
{{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:


== ब्लॉक आकार ==
== ब्लॉक आकार ==
एक ब्लॉक (डेटा स्टोरेज) एक इकाई है जो एक बार में पढ़े, लिखे या परिवर्तित [[बाइट]]्स की संख्या को मापता है। कमांड-लाइन विकल्प इनपुट/रीडिंग के लिए एक भिन्न ब्लॉक आकार निर्दिष्ट कर सकते हैं ({{Mono|ibs}}) आउटपुट/लेखन की तुलना में ({{Mono|obs}}), हालांकि ब्लॉक आकार ({{Mono|bs}}) विकल्प दोनों को ओवरराइड करेगा {{Mono|ibs}} तथा {{Mono|obs}}. इनपुट और आउटपुट ब्लॉक आकार दोनों के लिए डिफ़ॉल्ट मान 512 बाइट्स (डिस्क का पारंपरिक ब्लॉक आकार और ब्लॉक का POSIX-अनिवार्य आकार) है। {{Mono|count}} }} कॉपी करने के विकल्प को ब्लॉक में मापा जाता है, जैसा कि दोनों हैं {{Mono|skip}} पढ़ने के लिए गिनें और {{Mono|seek}} लिखने के लिए गिनें। रूपांतरण संचालन भी रूपांतरण ब्लॉक आकार से प्रभावित होते हैं ({{Mono|cbs}}).<ref name=SUS/>{{rp|at=OPERANDS}}
एक ब्लॉक एक इकाई है जो [[बाइट|बाइटस]] की संख्या को मापता है जो एक समय में पढ़ा, लिखा या परिवर्तित किया जाता है। कमांड-लाइन विकल्प आउटपुट/राइटिंग (obs) की तुलना में इनपुट/रीडिंग (ibs) के लिए एक अलग ब्लॉक आकार निर्दिष्ट कर सकते हैं, चूंकि ब्लॉक आकार (bs) विकल्प ibs और obs दोनों को ओवरराइड करेगा। इनपुट और आउटपुट ब्लॉक आकार दोनों के लिए डिफ़ॉल्ट मान 512 बाइट्स (डिस्क का पारंपरिक ब्लॉक आकार, और "एक ब्लॉक" का POSIX-अनिवार्य आकार) है। कॉपी करने के लिए काउंट विकल्प को ब्लॉक में मापा जाता है, जैसे कि पढ़ने के लिए {{Mono|skip}} काउंट और लिखने के लिए {{Mono|seek}} काउंट दोनों हैं। रूपांतरण संचालन "रूपांतरण ब्लॉक आकार" ({{Mono|cbs}}) से भी प्रभावित होते हैं।<ref name=SUS/>{{rp|at=OPERANDS}}
ब्लॉक आकार विकल्पों के लिए प्रदान किया गया मान बाइट्स की दशमलव (आधार 10) पूर्णांक संख्या के रूप में व्याख्या किया गया है। इसमें यह इंगित करने के लिए प्रत्यय भी हो सकते हैं कि ब्लॉक आकार बाइट्स की तुलना में बड़ी इकाइयों की एक पूर्णांक संख्या है। POSIX केवल प्रत्यय निर्दिष्ट करता है {{Mono|b}} (ब्लॉक) 512 के लिए और {{Mono|k}} ([[kibibytes]]) 1024 के लिए।<ref name=SUS/>{{rp|at=OPERANDS}} कार्यान्वयन उनके द्वारा समर्थित अतिरिक्त प्रत्यय पर भिन्न होता है: (मुक्त) बीएसडी लोअरकेस का उपयोग करता है {{mono|m}} ([[mebibytes]]), {{mono|g}} ([[गिबिबाइट]]्स), और इसी तरह [[tebibite]], [[exbibit]], [[pebibyte]], [[पराजित]] और [[yobibit]]्स के लिए,<ref name=bsd>{{man|1|dd|FreeBSD}}</ref> जबकि जीएनयू उपयोग करता है {{mono|M}} तथा {{mono|G}} उसी इकाइयों के लिए, साथ {{mono|kB}}, {{mono|MB}}, तथा {{mono|GB}} यूनिट समकक्षों ([[किलोबाइट]]्स) की उनकी अंतर्राष्ट्रीय प्रणाली के लिए उपयोग किया जाता है।<ref name=lin/>उदाहरण के लिए, जीएनयू के लिए {{mono|dd}}, {{mono|1=bs=16M}} 16 मेबिबाइट्स (16777216 बाइट्स) के ब्लॉक आकार को इंगित करता है और {{mono|1=bs=3kB}} 3000 बाइट्स निर्दिष्ट करता है।


इसके अतिरिक्त, कुछ कार्यान्वयन इसे समझते हैं {{Mono|x}} ब्लॉक आकार और गिनती पैरामीटर दोनों के लिए गुणा ऑपरेटर के रूप में वर्ण। उदाहरण के लिए, {{Mono|bs{{=}}2x80x18b}} की व्याख्या 2 × 80 × 18 × 512 = के रूप में की जाती है {{val|1474560|u=bytes}}, 1440 किबा [[फ्लॉपी डिस्क]] के सटीक आकार का। पॉज़िक्स में इसकी आवश्यकता है, लेकिन ऐसा लगता है कि जीएनयू इसका समर्थन नहीं करता है।<ref name=SUS/>{{rp|at=OPERANDS}} परिणामस्वरूप, <syntaxhighlight lang=bash inline>bs=$((2*80*18))b</syntaxhighlight> के POSIX शेल अंकगणितीय सिंटैक्स का उपयोग करना अधिक पोर्टेबल है।
ब्लॉक आकार विकल्पों के लिए प्रदान किया गया मान बाइट्स की दशमलव (आधार 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 बाइट्स निर्दिष्ट करता है।


नकल के प्रदर्शन पर ब्लॉक आकार का प्रभाव पड़ता है {{mono|dd}} आदेश। कई छोटे पढ़ना या लिखना अक्सर कम बड़े पढ़ने की तुलना में धीमा होता है। बड़े ब्लॉकों का उपयोग करने के लिए अधिक रैम की आवश्यकता होती है और त्रुटि पुनर्प्राप्ति को जटिल बना सकता है। कब {{Mono|dd}} टेप ड्राइव या नेटवर्क जैसे चर-ब्लॉक-आकार के उपकरणों के साथ प्रयोग किया जाता है, ब्लॉक आकार उपयोग किए गए [[संचार प्रोटोकॉल]] के आधार पर टेप रिकॉर्ड आकार या [[नेटवर्क पैकेट]] आकार निर्धारित कर सकता है।
इसके अतिरिक्त, कुछ कार्यान्वयन एक्स वर्ण को ब्लॉक आकार और गिनती पैरामीटर दोनों के लिए गुणा ऑपरेटर के रूप में समझते हैं। उदाहरण के लिए, 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|dd}} }} कमांड का उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है। सादे-प्रतिलिपि आदेशों के लिए यह डोमेन-विशिष्ट विकल्पों की तुलना में धीमा हो जाता है, लेकिन यह किसी फ़ाइल को किसी भी बिंदु पर अधिलेखित या छोटा करने या फ़ाइल में तलाश करने की अपनी अद्वितीय क्षमता पर उत्कृष्टता प्राप्त करता है, यूनिक्स फ़ाइल एपीआई के लिए एक काफी निम्न-स्तरीय इंटरफ़ेस .<ref name=relevant>{{cite web |last1=Gilles |title=क्लोनिंग - डीडी बनाम बिल्ली - क्या डीडी अभी भी प्रासंगिक है?|url=https://unix.stackexchange.com/a/12538 |website=Unix & Linux Stack Exchange |date=2011}}</ref>
{{mono|डीडी}} कमांड को कॉपी करने के प्रदर्शन पर ब्लॉक आकार का प्रभाव पड़ता है। कई छोटे पढ़ना या लिखना अधिकांश कम बड़े पढ़ने की तुलना में धीमा होता है। बड़े ब्लॉकों का उपयोग करने के लिए अधिक रैम की आवश्यकता होती है और त्रुटि पुनर्प्राप्ति को जटिल बना सकता है। जब {{Mono|डीडी}} का उपयोग चर-ब्लॉक-आकार के उपकरणों जैसे टेप ड्राइव या नेटवर्क के साथ किया जाता है, तो ब्लॉक आकार उपयोग किए गए [[संचार प्रोटोकॉल]] के आधार पर टेप रिकॉर्ड आकार या [[नेटवर्क पैकेट]] आकार निर्धारित कर सकता है।
नीचे दिए गए उदाहरण मुख्य रूप से ब्लॉक आकार तर्क में जीएनयू डीडी के उपयोग को मानते हैं। उन्हें पोर्टेबल बनाने के लिए, उदा। {{code|1=bs=64M}} खोल अंकगणितीय अभिव्यक्ति के साथ {{code|1=bs=$((64*1024*1024))|2=bash}} या {{code|1=bs=$((64 << 20))|2=bash}} (थोड़ा बदलाव के साथ समतुल्य लिखा गया)।
 
 
<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|dd}} फ़ाइलों, उपकरणों, विभाजनों और संस्करणों में डेटा की नकल कर सकता है। इनमें से किसी के लिए डेटा इनपुट या आउटपुट हो सकता है; लेकिन विभाजन में जाने पर आउटपुट से संबंधित महत्वपूर्ण अंतर हैं। साथ ही, स्थानांतरण के दौरान, डेटा का उपयोग करके संशोधित किया जा सकता है {{Mono|conv}} माध्यम के अनुरूप विकल्प। (हालांकि, इस उद्देश्य के लिए {{mono|dd}} से धीमा है {{mono|cat}}.)<ref name="relevant" />
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}} || Creates an [[ISO image|ISO]] [[disk image]] from a [[compact disc|CD-ROM]], [[DVD]] or [[Blu-ray]] disc.<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={{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}} || Restores a hard disk drive (or an SD card, for example) from a previously created image.
| {{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}} || Create an image of the partition sdb2, using a 64 MiB block size.
| {{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}} || [[Disk cloning|Clones]] one [[hard disk partition|partition]] to another.
| {{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}} || Clones a hard disk drive "ad0" to "ad1".
| {{pre|1=dd if=/dev/ad0 of=/dev/ad1 bs=64M conv=noerror}} || क्लोन एक हार्ड डिस्क ड्राइव "ad0" को "ad1" में क्लोन करता है।
|}
|}


  {{Mono|noerror}} }} विकल्प का अर्थ है कि यदि कोई त्रुटि है तो चलते रहना है, जबकि {{Mono|sync}} विकल्प आउटपुट ब्लॉक को गद्देदार बनाता है।
  {{Mono|noerror}} विकल्प का अर्थ है कि यदि कोई त्रुटि है तो चलते रहना, जबकि sync विकल्प के कारण आउटपुट ब्लॉक पैडेड हो जाते हैं।


=== इन-प्लेस संशोधन{{anchor|data modification}} ===
=== इन-प्लेस संशोधन{{anchor|data modification}} ===
{{Mono|dd}} डेटा को जगह में संशोधित कर सकते हैं। उदाहरण के लिए, यह फ़ाइल के पहले 512 बाइट्स को शून्य बाइट्स के साथ ओवरराइट करता है:
{{Mono|डीडी}} डेटा को स्थान में संशोधित कर सकते हैं। उदाहरण के लिए, यह फ़ाइल के पहले 512 बाइट्स को शून्य बाइट्स के साथ ओवरराइट करता है:


{{pre|1=
{{pre|1=
Line 81: Line 86:
}}
}}


  {{Mono|notrunc}} }} कनवर्ज़न विकल्प का अर्थ है आउटपुट फ़ाइल को छोटा न करें - अर्थात, यदि आउटपुट फ़ाइल पहले से मौजूद है, तो बस निर्दिष्ट बाइट्स को बदलें और शेष आउटपुट फ़ाइल को अकेला छोड़ दें। इस विकल्प के बिना, {{Mono|dd}} 512 बाइट लंबी आउटपुट फ़ाइल बनाएगा।
  {{Mono|notrunc}}<nowiki> }} रूपांतरण विकल्प का अर्थ है आउटपुट फ़ाइल को छोटा न करें - अर्थात, यदि आउटपुट फ़ाइल पहले से मौजूद है, तो केवल निर्दिष्ट बाइट्स को बदलें और शेष आउटपुट फ़ाइल को अकेला छोड़ दें। इस विकल्प के बिना, dd 512 बाइट लंबी आउटपुट फाइल बनाएगा।</nowiki>


==== [[मास्टर बूट दस्तावेज़]] बैकअप और पुनर्स्थापित करें ====
==== [[मास्टर बूट दस्तावेज़]] बैकअप और पुनर्स्थापित करें ====
Line 93: Line 98:


=== डिस्क वाइप ===
=== डिस्क वाइप ===
{{Main|Data erasure}}
{{Main|डेटा विलोपन}}
सुरक्षा कारणों से, कभी-कभी किसी छोड़े गए डिवाइस का [[डिस्क पोंछे]] करना आवश्यक होता है। यह यूनिक्स विशेष फाइलों से डेटा ट्रांसफर द्वारा प्राप्त किया जा सकता है।
सुरक्षा कारणों से, कभी-कभी किसी छोड़े गए डिवाइस का [[डिस्क पोंछे|डिस्क वाइप]] करना आवश्यक होता है। यह यूनिक्स विशेष फाइलों से डेटा ट्रांसफर द्वारा प्राप्त किया जा सकता है।


* डिस्क पर शून्य लिखने के लिए, प्रयोग करें <code>डीडी if=[[/dev/zero]] of=[[/dev/sda]] bs=16M</code>.
* डिस्क पर शून्य लिखने के लिए, <code>डीडी if=[[/dev/zero]] of=[[/dev/sda]] bs=16M</code>. का प्रयोग करें
* किसी डिस्क पर यादृच्छिक डेटा लिखने के लिए, उपयोग करें <code>डीडी if=[[/dev/urandom]] of=[[/dev/sda]] bs=16M</code>.
* किसी डिस्क पर यादृच्छिक डेटा लिखने के लिए, <code>डीडी if=[[/dev/urandom]] of=[[/dev/sda]] bs=16M का</code>प्रयोग करें


जब डेटा संशोधन उदाहरण की तुलना #डेटा संशोधन से की जाती है, {{Mono|notrunc}} रूपांतरण विकल्प की आवश्यकता नहीं है क्योंकि इसका कोई प्रभाव नहीं पड़ता है {{mono|dd}}की आउटपुट फाइल एक ब्लॉक डिवाइस है।<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>
ऊपर दिए गए डेटा संशोधन उदाहरण की तुलना में, 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.
  | last1 = Wright | first1 = Craig S.
  | last2 = Kleiman | first2 = Dave
  | last2 = Kleiman | first2 = Dave
  | last3 = S. | first3 = Shyaam Sundhar R.
  | last3 = S. | first3 = Shyaam Sundhar R.
  | editor1-last = Sekar | editor1-first = R.
  | editor1-last = Sekar | editor1-first = R.
  | editor2-last = Pujari | editor2-first = Arun K.
  | editor2-last = Pujari | editor2-first = Arun K.
  | contribution = Overwriting Hard Drive Data: The Great Wiping Controversy
  | contribution = Overwriting Hard Drive Data: The Great Wiping Controversy
  | doi = 10.1007/978-3-540-89862-7_21
  | doi = 10.1007/978-3-540-89862-7_21
  | pages = 243–257
  | pages = 243–257
  | publisher = Springer
  | publisher = Springer
  | series = Lecture Notes in Computer Science
  | series = Lecture Notes in Computer Science
  | title = सूचना प्रणाली सुरक्षा, चौथा अंतर्राष्ट्रीय सम्मेलन, ICISS 2008, हैदराबाद, भारत, 16-20 दिसंबर, 2008। कार्यवाही| volume = 5352
  | title = सूचना प्रणाली सुरक्षा, चौथा अंतर्राष्ट्रीय सम्मेलन, ICISS 2008, हैदराबाद, भारत, 16-20 दिसंबर, 2008। कार्यवाही| volume = 5352
  | year = 2008}}</ref> हालाँकि, अन्य प्रकार के ड्राइव जैसे फ्लैश मेमोरी के साथ, [[डेटा अवशेष]] द्वारा अभी भी बहुत डेटा पुनर्प्राप्त किया जा सकता है।
  | 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|seek}}) और अन्य निम्न-स्तरीय सेटिंग्स। वेनिला {{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> अक्टूबर 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>
{{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 में, जीएनयू ने एक अलग उपयोगिता लिखी, जो इससे संबंधित नहीं थी {{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 के लिए कभी-कभी वैकल्पिक नामों का उपयोग किया जाता है {{code|ddrescue}}, समेत {{code|addrescue}} (नाम freecode.com और Freshmeat.net पर), {{code|gddrescue}} ([[डेबियन]] पैकेज का नाम), और {{code|gnu_ddrescue}} (ओपनएसयूएसई पैकेज नाम)।


एक अन्य ओपन-सोर्स प्रोग्राम कहा जाता है {{code|savehd7}} एक परिष्कृत एल्गोरिथ्म का उपयोग करता है, लेकिन इसके लिए [[Seed7]]|की अपनी प्रोग्रामिंग-भाषा दुभाषिया की स्थापना की भी आवश्यकता होती है।
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-बाइट ब्लॉक के लिए प्रदर्शन पढ़ें और लिखें:
ड्राइव बेंचमार्क टेस्ट करने और अनुक्रमिक (और सामान्यतः सिंगल-थ्रेडेड) सिस्टम का विश्लेषण करने के लिए 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}} आमतौर पर कोई प्रगति संकेत प्रदान नहीं करता है। इसे भेजकर इसे दूर किया जा सकता है {{Mono|USR1}} चल रहे GNU को संकेत {{Mono|dd}} प्रक्रिया ({{mono|INFO}} बीएसडी सिस्टम पर), जिसके परिणामस्वरूप {{Mono|dd}} हस्तांतरित ब्लॉकों की वर्तमान संख्या को प्रिंट करना।
मुख्य रूप से फ़िल्टर के रूप में डिज़ाइन किया गया प्रोग्राम होने पर, {{Mono|dd}} सामान्यतः कोई प्रगति संकेत प्रदान नहीं करता है। इसे भेजकर इसे दूर किया जा सकता हैचल रही GNU {{Mono|dd}} प्रक्रिया (INFO on BSD सिस्टम) को USR1 सिग्नल भेजकर इसे दूर किया जा सकता है, जिसके परिणामस्वरूप {{Mono|dd}} स्थानांतरित ब्लॉकों की वर्तमान संख्या को प्रिंट करता है।।


निम्नलिखित वन-लाइनर के परिणामस्वरूप स्थानांतरण समाप्त होने तक प्रत्येक 10 सेकंड में प्रगति का निरंतर आउटपुट मिलता है, जब {{Mono|''dd-pid''}} की प्रक्रिया-आईडी द्वारा प्रतिस्थापित किया जाता है {{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}}जीएनयू का फोर्क (सॉफ्टवेयर विकास) है {{Mono|dd}} यह निक हार्बर द्वारा विकसित एक उन्नत संस्करण है, जो उस समय संयुक्त राज्य अमेरिका के रक्षा साइबर अपराध केंद्र #Defense कंप्यूटर फोरेंसिक प्रयोगशाला (DCFL) के लिए काम कर रहा था।<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>
=== डीसीएफएलडीडी {{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>




=== दक़ाद ===
{{mono|dc3dd}} एक और उन्नत GNU है {{mono|dd}} युनाइटेड स्टेट्स [[रक्षा साइबर अपराध केंद्र विभाग]] (DC3) से। इसे dcfldd की निरंतरता के रूप में देखा जा सकता है, जब भी GNU अपस्ट्रीम को अपडेट किया जाता है, अपडेट करने के एक घोषित उद्देश्य के साथ। इसकी आखिरी रिलीज 2018 में हुई थी।<ref>{{cite web |title=डीकेडी|url=https://sourceforge.net/projects/dc3dd/ |website=SourceForge |language=en}}</ref>




Line 181: Line 193:




==इस पेज में लापता आंतरिक लिंक की सूची==


*UNIX- जैसे
 
*इन्फर्नो (ऑपरेटिंग सिस्टम)
 
*मानक त्रुटि धारा
 
*फाइल समाप्त
 
*ब्लॉक (डेटा संग्रहण)
 
*इकाइयों की अंतर्राष्ट्रीय प्रणाली
 
*पॉज़िक्स खोल
 
*बिट शिफ्ट
 
*सिक्योर डिजिटल
 
*यूएसबी फ्लैश ड्राइव
 
*डाटा रिकवरी
 
*openSUSE
 
*कांटा (सॉफ्टवेयर विकास)
== बाहरी संबंध ==
== बाहरी संबंध ==
{{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:हार्ड डिस्क सॉफ्टवेयर]]
[[Category: डेटा इरेज़र सॉफ़्टवेयर]]
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 07/12/2022]]

Latest revision as of 16:12, 3 January 2023

dd
Original author(s)Ken Thompson
(AT&T Bell Laboratories)
Developer(s)Various open-source and commercial developers
Initial releaseJune 1974; 51 years ago (1974-06)
Repositorycoreutils: git.savannah.gnu.org/cgit/coreutils.git/
Written inPlan 9: C
Operating systemUnix, Unix-like, Plan 9, Inferno, Windows
PlatformCross-platform
TypeCommand
Licensecoreutils: 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]

Data transfer forms of dd
blocks=$(isosize -d 2048 /dev/sr0)
dd if=/dev/sr0 of=isoimage.iso bs=2048 count=$blocks status=progress
सीडी-रोम, डीवीडी 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]



यह भी देखें

संदर्भ

  1. Austin Group. "पॉज़िक्स मानक: डीडी मंगलाचरण". Retrieved 2016-09-29.
  2. Chessman, Sam. "डीडी कमांड का उपयोग कैसे और कब करें?". CodeCoffee. Retrieved 2008-02-19.
  3. 3.0 3.1 Raymond, Eric S. "डीडी". Retrieved 2008-02-19.
  4. Ritchie, Dennis (Feb 17, 2004). "पुन: यूनिक्स डीडी कमांड की उत्पत्ति". Newsgroupalt.folklore.computers. Usenet: c0s1he$1atuh9$1@ID-156882.news.uni-berlin.de. Retrieved January 10, 2016. dd का नाम हमेशा JCL dd कार्ड के नाम पर रखा गया था।
  5. Shein, Barry (Apr 22, 1990). "पुन: यूनिक्स "डीडी" कमांड की व्युत्पत्ति". Newsgroupalt.folklore.computers. Usenet: 1990Apr22.191928.11180@world.std.com. Retrieved 2016-07-14.
  6. dd(1) – Plan 9 Programmer's Manual, Volume 1
  7. "अपनी डिस्क को नष्ट किए बिना लिनक्स में dd का उपयोग कैसे करें". Opensource.com (in English). 2018-07-05. Retrieved 2020-10-11.
  8. McIlroy, M. D. (1987). एक रिसर्च यूनिक्स रीडर: प्रोग्रामर मैनुअल, 1971-1986 से एनोटेट किए गए अंश (PDF) (Technical report). CSTR. Bell Labs. 139.
  9. 9.0 9.1 9.2 9.3 9.4 9.5 dd – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  10. 10.0 10.1 dd(1) – Linux User Manual – User Commands
  11. "कुछ GNU उपयोगिताओं के नेटिव Win32 पोर्ट". unxutils.sourceforge.net.
  12. dd(1) – FreeBSD General Commands Manual
  13. 13.0 13.1 Gilles (2011). "क्लोनिंग - डीडी बनाम बिल्ली - क्या डीडी अभी भी प्रासंगिक है?". Unix & Linux Stack Exchange.
  14. "Creating an ISO image from a CD, DVD, or BD". ArchWiki. Retrieved April 18, 2022.
  15. "linux - dd के साथ डिस्क की क्लोनिंग करते समय conv=notrunc का उपयोग क्यों करें?". Stack Overflow. 2013-12-11. Retrieved 2014-03-24.
  16. 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.
  17. "dd_बचाव". garloff.de.
  18. LAB Valentin (19 September 2011). "dd_rhelp लेखक का भंडार". महत्वपूर्ण नोट: कुछ समय के लिए, dd_rhelp एकमात्र उपकरण (AFAIK) था जो इस प्रकार का काम करता था, लेकिन कुछ वर्षों से, यह अब सच नहीं है: एंटोनियो डियाज़ ने मेरे टूल के लिए एक आदर्श प्रतिस्थापन लिखा था: GNU 'ddrescue'।
  19. "Ddrescue - GNU प्रोजेक्ट - फ्री सॉफ्टवेयर फाउंडेशन (FSF)". gnu.org.
  20. "जीएनयू कोरुटिल्स: डीडी मंगलाचरण". The GNU Operating System and the Free Software Movement. Retrieved 2019-08-26.
  21. "स्रोत फोर्ज पर DCFLDD". Source Forge. Retrieved 2013-08-17.
  22. Jeremy Faircloth, Chris Hurley (2007). पेनेट्रेशन टेस्टर का ओपन सोर्स टूलकिट. Syngress. pp. 470–472. ISBN 9780080556079.
  23. Jack Wiles, Anthony Reyes (2011). द बेस्ट डेमन साइबर क्राइम एंड डिजिटल फोरेंसिक बुक पीरियड. Syngress. pp. 408–411. ISBN 9780080556086.
  24. "dcfldd: फोरेंसिक और सुरक्षा के लिए dd का उन्नत संस्करण". GitHub. Retrieved 2020-11-19.
  25. "डीकेडी". SourceForge (in English).









बाहरी संबंध