dd
लिनक्स में सबसे महत्वपूर्ण कमांड में से एक है, जिसका उपयोग ज्यादातर हार्ड डिस्क और पार्टीशन के बैकअप में किया जाता है। जब सही तरीके से उपयोग किया जाता है, तो डीडी एक विभाजन से दूसरे में डेटा लिखने और फाइलों के साथ विभिन्न कार्यों को करने के लिए एक शक्तिशाली उपकरण हो सकता है। यहां हम आपको दिखाते हैं कि dd कमांड को अच्छे उपयोग में कैसे लाया जाए।
द स्टोरी ऑफ़ dd
कमांड को मूल रूप से एटी एंड टी बेल लेबोरेटरीज में 1970 के दशक में केन थॉम्पसन नामक एक कंप्यूटर वैज्ञानिक द्वारा विकसित किया गया था। इसे यूनिक्स-आधारित प्रणालियों के लिए विकसित किया गया था और इसे एक नाम दिया गया था जिसे आईबीएम की जॉब कंट्रोल लैंग्वेज में पाए गए एक बयान के संदर्भ के रूप में चुना गया था, जिसे "डीडी" कहा जाता था। यह ध्यान दिया जा सकता है कि कमांड का सिंटैक्स जॉब कंट्रोल लैंग्वेज में एक स्टेटमेंट से काफी मिलता-जुलता है।
कमांड को मूल रूप से एएससीआईआई को ईबीसीडीआईसी में बदलने के लिए उपयोगिता के रूप में डिजाइन किया गया था और इसके विपरीत। इसे पहली बार 1974 में ऑपरेटिंग सिस्टम के 5वें संस्करण के रिलीज के साथ यूनिक्स के एक संस्करण के साथ एकीकृत किया गया था।
डीडी को यूनिक्स समुदाय में एक मजाक के रूप में "डिस्क विध्वंसक" कहा जाता है क्योंकि यह अनुचित तरीके से उपयोग किए जाने पर हार्ड डिस्क पर डेटा को नष्ट करने की क्षमता के कारण होता है।
बुनियादी ऑपरेंड
अब जब आप कमांड की पृष्ठभूमि और गलत तरीके से उपयोग किए जाने पर इसकी विनाशकारी क्षमताओं के बारे में कुछ जानते हैं, तो यह सीखने का समय है कि विभिन्न लिनक्स वितरण के उपयोगकर्ताओं को जो कुछ भी प्रदान करता है उसका लाभ कैसे उठाया जाए।
सबसे पहले, --help
. का उपयोग करके मैनुअल देखें झंडा:
dd --help
कमांड के लिए दो ऑपरेंड हैं जिनका सबसे अधिक उपयोग किया जाता है। वे if
. हैं और of
, जो क्रमशः "इनपुट फ़ाइल" और "आउटपुट फ़ाइल" के लिए खड़े हैं। if
ऑपरेंड का उपयोग स्रोत स्थान का प्रतिनिधित्व करने के लिए किया जाता है, जबकि of
ऑपरेंड का उपयोग उस स्थान का प्रतिनिधित्व करने के लिए किया जाता है जहां आप इनपुट स्थान से डेटा को सहेजना चाहते हैं।
dd if=<input file> of=<output file>
सबसे आम स्रोत और आउटपुट स्थानों में हार्ड डिस्क, पार्टीशन और डिस्क इमेज शामिल हैं।
कमांड का उपयोग करने से पहले, fdisk
. का उपयोग करना सहायक हो सकता है आपके सिस्टम पर विभाजन देखने के लिए उपयोगिता। यह कमांड के -l
. का उपयोग करके आसानी से किया जा सकता है झंडा:
sudo fdisk -l
इस मामले में, if
"/ dev/sda" ड्राइव का प्रतिनिधित्व करने के लिए प्रयोग किया जाता है, और of
"/ dev/sdb" ड्राइव का प्रतिनिधित्व करता है, जहां "/dev/sda" से डेटा को यहां सहेजा जाएगा:
dd if=/dev/sda of=/dev/sdb
डिस्क इमेज बनाना
कमांड के लिए सबसे अच्छे उपयोग के मामलों में से एक ".img" फ़ाइल प्रारूप में डिस्क चित्र बनाना है। यह आपके Linux-आधारित सिस्टम पर डेटा का बैकअप लेने के लिए अत्यंत उपयोगी है और संभवत:संपूर्ण हार्ड डिस्क का बैकअप लेने का सबसे तेज़ और आसान तरीका है।
if
. के साथ इस मामले में यहां तर्क प्राथमिक रूप से एक ही है ऑपरेंड “/dev/sda” ड्राइव और of
. का प्रतिनिधित्व करता है ऑपरेंड एक ".img" फ़ाइल का प्रतिनिधित्व करता है, जहां हार्ड डिस्क से डेटा को यहां सहेजा जाएगा:
dd if=/dev/sda of=example.img
डिस्क इमेज को पार्टीशन में सेव करना
कमांड के साथ एक डिस्क छवि बनाना काफी सरल है, लेकिन ऐसा ही उस प्रक्रिया का उल्टा संस्करण है।
इस परिदृश्य में, हमारी डिस्क छवि फ़ाइल इनपुट फ़ाइल के रूप में कार्य कर रही है, और हमारा नया विभाजन आउटपुट फ़ाइल के रूप में कार्य कर रहा है। उपयोगिता हमारी डिस्क छवि से डेटा को हमारे "/ dev/sdb" विभाजन में सहेज रही है:
dd if=example.img of=/dev/sdb
संपीड़ित डिस्क छवि बनाना
यदि आप एक पूर्ण आकार की हार्ड डिस्क की डिस्क छवि बनाते हैं, तो आप कल्पना कर सकते हैं कि अंतिम डिस्क छवि का फ़ाइल आकार काफी बड़ा होगा। इस कारण से, dd उपयोगिता में एक विशेषता है जो संपीड़ित डिस्क छवियाँ बनाती है।
पाइप का उपयोग करके एक संपीड़ित डिस्क छवि बनाई जा सकती है |
आज्ञा। इस मामले में, इसका उपयोग इनपुट फ़ाइल की सामग्री लेने और gzip
. करने के लिए किया जाता है -c
. के साथ कमांड ध्वज, सामग्री के साथ एक ".gz" फ़ाइल में पैक किया जा रहा है:
dd if=/dev/sda | gzip -c > image.gz
ब्लॉक आकार निर्दिष्ट करना
आप dd कमांड के संचालन की गति के साथ भी खेल सकते हैं। इसे bs
. का उपयोग करके पूरा किया जा सकता है संकार्य, जिसका उपयोग ब्लॉक आकार का प्रतिनिधित्व करने के लिए किया जाता है। ब्लॉक आकार एक उदाहरण में आउटपुट फ़ाइल में बाइट्स dd प्रतियों की संख्या का प्रतिनिधित्व करता है। इसे 1024 बाइट्स के गुणकों का उपयोग करके दर्शाया जाता है, और डिफ़ॉल्ट मान 512 बाइट्स पर सेट होता है। ब्लॉक आकार जितना अधिक होगा, डेटा उतनी ही तेज़ी से आउटपुट फ़ाइल में सहेजा जाएगा।
इस मामले में, हम ब्लॉक का आकार 2048 पर सेट कर रहे हैं:
dd if=/dev/sda of=example.img bs=2048
ब्लॉक का आकार किलोबाइट में भी निर्दिष्ट किया जा सकता है:
dd if=/dev/sda of=example.img bs=2048K
हार्ड डिस्क को पोंछना
dd का उपयोग आपकी हार्ड डिस्क को वाइप करने के लिए भी किया जा सकता है। यह "/ dev / शून्य" या "/ dev / urandom" से शून्य या यादृच्छिक वर्णों को पढ़कर और उन्हें हार्ड डिस्क / विभाजन में सहेज कर पूरा किया जाता है, जो उस पर डेटा को अधिलेखित कर देता है। यह बेहद उपयोगी है जब आप यह सुनिश्चित करना चाहते हैं कि आपकी हार्ड डिस्क को बेचने या अन्यथा निपटाने के बाद आपका डेटा आसानी से पुनर्प्राप्त नहीं किया जा सकता है।
शून्य का उपयोग करके हार्ड डिस्क को अधिलेखित करना:
dd if=/dev/zero of=/dev/sdb
ओवरराइटिंग की प्रक्रिया यादृच्छिक वर्णों का उपयोग करके भी की जा सकती है:
dd if=/dev/urandom of=/dev/sdb
बूट करने योग्य USB ड्राइव बनाना
कमांड के साथ ".iso" फ़ाइलों का उपयोग करके बूट करने योग्य USB फ्लैश ड्राइव का निर्माण सरल है:
dd if=os.iso of=<USB drive location>
रैपिंग अप
यह कहना सुरक्षित है कि कई क्षेत्रों में इसकी उपयोगिता और हार्ड ड्राइव, विभाजन और डिस्क छवि फ़ाइलों के साथ कुछ भी करने के कारण डीडी कमांड को "स्विस आर्मी चाकू" माना जा सकता है। जब तक आप अपनी हार्ड डिस्क को नष्ट नहीं करते हैं, तब तक यह हार्ड डिस्क या USB ड्राइव को वाइप करने से लेकर कंप्रेस्ड बैकअप बनाने तक किसी भी चीज़ के लिए एक प्रभावी और उपयोग में आसान टूल है।