सवाल डिस्क क्लोनिंग के लिए डीडी का उपयोग करना


डिस्क क्लोनिंग उपकरण और संबंधित कई प्रश्न हैं dd कम से कम एक बार सुझाव दिया गया है। मैंने पहले ही उपयोग करने पर विचार किया है dd खुद, मुख्य रूप से उपयोग की आसानी, और यह आसानी से सभी बूट करने योग्य लिनक्स वितरण पर उपलब्ध है।

उपयोग करने का सबसे अच्छा तरीका क्या है dd एक डिस्क क्लोनिंग के लिए? मैंने एक त्वरित Google खोज की, और पहला परिणाम स्पष्ट था असफल प्रयास। क्या उपयोग करने के बाद मुझे कुछ करने की ज़रूरत है dd, यानी ऐसा कुछ भी है जिसे उपयोग नहीं किया जा सकता है dd?


176
2018-05-05 18:21


मूल


मुझे पता है कि डीडी कैसे काम करता है, डीडी से संबंधित किसी भी ज्ञात समस्या की दिशा में मेरा प्रश्न अधिक था (लिंक द्वारा वर्णित), शायद यह बहुत स्पष्ट नहीं था। उसका जवाब क्या है और आपका नहीं है "मुझे कभी इसके साथ कोई समस्या नहीं है"। मैंने आपके उत्तर को भी ऊपर उठाया है, क्योंकि आपने निश्चित रूप से कुछ दिलचस्प बिंदु प्रस्तुत किए हैं (मुझे कोई प्रगति संकेत नहीं है)। - falstro
ऐसा लगता है कि आपको स्पॉल्स्की टक्कर मिली है: joelonsoftware.com/items/2009/05/29.html - Kyle Cronin
जब मैंने पूछा (और उत्तर दिया) सुपरसियर पर एक समान सवाल पूछा तो यह यहां नहीं देखा - superuser.com/questions/11453/... - warren
यह विडंबना है कि जोएल ने इस सवाल से सर्वर-गलती का एक अच्छा उदाहरण बताया, हालांकि कोई भी जवाब अच्छा नहीं था। दाईं ओर 25 (टिप्पणियों को छोड़कर) के बीच कोई जवाब नहीं था dd खराब ब्लॉक को छोड़ने के विकल्प - वसूली के लिए डिस्क क्लोन करते समय आवश्यक है। मैंने एक बेहतर उत्तर जोड़ा, जो खराब ब्लॉक वाले डिस्क को क्लोन कर सकता है: dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror - Sam Watkins
मुझे लगता है कि ड्राइव ज्यामिति निर्भर फ़ाइल सिस्टम और पुनर्स्थापना के बारे में बात करते हुए डीडी बहाली "असफल" हो सकती है और गैर समान हार्ड ड्राइव पर पुनर्स्थापित किया जाता है? मैंने डीडी बहाली पर कुछ असफलताओं का अनुभव किया, और मुझे लगता है कि यह मेरे मामले में समस्या थी। - Marco


जवाब:


डीडी निश्चित रूप से सबसे अच्छा क्लोनिंग टूल है, यह निम्न आदेश का उपयोग कर 100% प्रतिकृति बना देगा। मुझे कभी इसके साथ कोई समस्या नहीं हुई है।

dd if=/dev/sda of=/dev/sdb bs=32M

ध्यान रखें कि प्रत्येक बाइट क्लोन करते समय, आपको इसका उपयोग किसी ड्राइव या विभाजन पर नहीं करना चाहिए जिसका उपयोग किया जा रहा है। विशेष रूप से डेटाबेस जैसे अनुप्रयोग इस बहुत अच्छी तरह से सामना नहीं कर सकते हैं और आप दूषित डेटा के साथ समाप्त हो सकते हैं।


152
2018-05-05 18:31



बेशक, जब तक / dev / sdb कम से कम / dev / sda के रूप में बड़ा है ... - Eddie
एक "बीएस = 100 एम रूपांतरण = notrunc" जोड़ें और यह मेरे अनुभव में बहुत तेज है। - Tim Williscroft
बस 'मैं' और 'ओ' अक्षरों से बहुत सावधान रहें ... - bandi
कोई भी इस चाल को नहीं जानता ... डीडी एक विषम प्रतिलिपि प्रोग्राम है, जिसका अर्थ है कि यह पहले पढ़ेगा, फिर लिखें, फिर वापस। आप अपने आप को डीडी पाइप कर सकते हैं और इसे समरूप रूप से प्रतिलिपि बनाने के लिए मजबूर कर सकते हैं, जैसे: dd if=/dev/sda | dd of=/dev/sdb। मेरे परीक्षणों में, पाइप के बिना कमांड चलाने से मुझे ~ 112kb / s का थ्रूपुट दिया गया। पाइप के साथ, मुझे ~ 235 केबी / एस मिला। मैंने इस विधि के साथ कभी भी किसी भी मुद्दे का अनुभव नहीं किया है। सौभाग्य! - Mistiry
@ मिस्ट्री, यह शब्द सममित शब्द का अर्थ नहीं है। - psusi


अंतरिक्ष को बचाने के लिए, आप gdip के साथ डीडी द्वारा उत्पादित डेटा को संपीड़ित कर सकते हैं, उदा।

dd if=/dev/hdb | gzip -c  > /image.img

आप अपनी डिस्क को इसके साथ पुनर्स्थापित कर सकते हैं:

gunzip -c /image.img.gz | dd of=/dev/hdb

और भी स्थान को सहेजने के लिए, जिस ड्राइव / विभाजन को आप पहले से क्लोन करना चाहते हैं उसे डिफ्रैगमेंट करें (यदि उपयुक्त हो), तो सभी शेष अप्रयुक्त स्थान को शून्य-आउट करें, जिससे gzip को संपीड़ित करना आसान हो जाता है:

mkdir /mnt/hdb
mount /dev/hdb /mnt/hdb
dd if=/dev/zero of=/mnt/hdb/zero

थोड़ी देर रुको, डीडी अंत में "डिस्क पूर्ण" संदेश के साथ असफल हो जाएगा, फिर:

rm /mnt/hdb/zero
umount /mnt/hdb
dd if=/dev/hdb | gzip -c  > /image.img

साथ ही, आप पृष्ठभूमि में चल रहे डीडी प्रक्रिया को स्थिति कमांड के साथ सिग्नल भेजकर स्थिति रिपोर्ट करने के लिए प्राप्त कर सकते हैं, उदाहरण के लिए:

dd if=/dev/hdb of=/image.img &
kill -SIGUSR1 1234

अपने सिस्टम की जांच करें - उपरोक्त आदेश लिनक्स, ओएसएक्स और बीएसडी डीडी कमांड के लिए है जो वे स्वीकार करते हैं सिग्नल में भिन्न होते हैं (ओएसएक्स उपयोग SIGINFO - आप दबा सकते हैं Ctrl+टी स्थिति की रिपोर्ट करने के लिए)।


104
2018-05-06 22:47



क्या यह "आधुनिक" एफएस जैसे बीटीआरएफएस, एनआईएलएफएस, [जो भी आप सपने देख सकते हैं] के साथ भी काम करते हैं? - Steve Schnepp
डीडी ब्लॉक उपकरणों पर काम करता है, फाइल सिस्टम से कम अमूर्त स्तर का स्तर, इसलिए इसे चाहिए, हां। हालांकि, मैंने वास्तव में कोशिश नहीं की है। हम्म, एनआईएलएफएस दिलचस्प लग रहा है, मुझे इसे देखना होगा। - David Hicks
के लिए +1 kill -SIGUSR1 %1, और ओएसएक्स डीडी कमांड खुशी से SIGUSR1 स्वीकार करता है ... सुपर उपयोगी, धन्यवाद! - stuartc
के लिए +1 Kill -SIGUSR1 1234 मैं उस की तलाश में था। - hot2use
क्या यह होना चाहिए: dd if=/dev/hdb | gzip -c > /image.img.gz ? - Mike Causer


सावधान: एक लाइव फाइल सिस्टम dd'ing फाइल दूषित कर सकते हैं। कारण सरल है, इसे फाइल सिस्टम गतिविधि की कोई समझ नहीं है जो चल रहा है, और इसे कम करने का कोई प्रयास नहीं करता है। यदि कोई लेख आंशिक रूप से चल रहा है, तो आपको आंशिक लेखन मिलेगा। यह आम तौर पर चीजों के लिए अच्छा नहीं है, और आम तौर पर डेटाबेस के लिए घातक है। इसके अलावा, यदि आप टाइपो-प्रोन को पेंच करते हैं अगर तथा का पैरामीटर, आप के लिए दुःख। अधिकतर परिस्थितियों में, rsync आगमन के बाद लिखा एक समान प्रभावी उपकरण है बहु कार्यण, और व्यक्तिगत फ़ाइलों के निरंतर विचार प्रदान करेगा।

हालांकि, डीडी को एक अनमाउंट ड्राइव की बिट स्थिति को सटीक रूप से कैप्चर करना चाहिए। बूटलोडर्स, llvm वॉल्यूम्स, विभाजन यूयूआईडी और लेबल्स इत्यादि। बस सुनिश्चित करें कि आपके पास बिट ड्राइव के लिए लक्ष्य ड्राइव बिट को मिरर करने में सक्षम ड्राइव है।


37
2018-05-05 20:20



मुझे संदेह है कि sync भ्रष्टाचार की समस्याओं को दर्ज करने का जवाब नहीं है। क्या होता है यदि एक deamon या कुछ के बाद और अधिक फाइलें लिखता है sync, दौरान dd ऑपरेशन? - Deleted
पहले ड्राइव को उतारना एक अच्छा विचार है (या केवल पढ़ने के लिए ही छूट) लेकिन यह हमेशा संभव नहीं होता है - Alex Bolotov
इस मामले में, आप rsync का उपयोग करते हैं और इसे एक संगत फ़ाइल प्राप्त करने के लिए फ़ाइल हैंडल जादू करने दें और प्रतिलिपि लिखने वाले प्रतिलिपि को आने वाले लिखने को संभालने दें। - jldugger
मैं जोड़ना चाहता हूं कि एक घुड़सवार फाइल सिस्टम पर चल रहा डीडी घुड़सवार फाइल सिस्टम पर फ़ाइलों को कॉर्रूट नहीं करेगा, लेकिन यहां क्या मतलब है कि फाइल सिस्टम की प्रति एक ज्ञात अच्छी स्थिति में होगी। - 3molo
का उपयोग करते हुए rsync यह सुनिश्चित करेगा कि आंतरिक डेटा गंतव्य फाइल सिस्टम में सुसंगत है। यह नहीं होगा सुनिश्चित करें कि फ़ाइलों में डेटा सुसंगत है - ऐसा करने के लिए, आपको फ़ाइलों को लॉक करने की आवश्यकता होगी और फ़ाइलों को लिखने वाले किसी भी प्रोग्राम को इन ताले का सम्मान करने की आवश्यकता होगी। - Martin Geisler


खराब डिस्क वाले डिस्क को क्लोन करने के लिए डीडी का उपयोग करते समय, "conv = noerror, sync" का उपयोग यह सुनिश्चित करने के लिए करें कि यह किसी त्रुटि से सामना नहीं करता है, और अनुपस्थित क्षेत्र (ओं) में शून्य बाइट्स के साथ भरता है। असफल या असफल डिस्क से पुनर्प्राप्त करने का प्रयास करते समय आमतौर पर यह पहला कदम होता है - किसी रिकवरी प्रयास करने से पहले एक प्रति प्राप्त करें, और फिर अच्छी (क्लोन) डिस्क पर पुनर्प्राप्ति करें। मैं इसे किसी रिक्त क्षेत्र से निपटने के लिए वसूली उपकरण में छोड़ देता हूं जिसे कॉपी नहीं किया जा सका।

साथ ही, आप पाएंगे कि डीडी की गति बीएस (ब्लॉक आकार) सेटिंग से प्रभावित हो सकती है। मैं आमतौर पर बीएस = 32768 का प्रयास करता हूं, लेकिन आप यह देखने के लिए अपने सिस्टम पर परीक्षण करना चाहेंगे कि आपके लिए सबसे तेज़ क्या काम करता है। (यह मानता है कि आपको किसी अन्य कारण के लिए विशिष्ट ब्लॉक आकार का उपयोग करने की आवश्यकता नहीं है, उदाहरण के लिए यदि आप टेप पर लिख रहे हैं।)


26
2018-05-07 02:42



यदि आपके पास खराब क्षेत्रों के साथ डिस्क है, तो आपको वास्तव में डीडी के बजाय 'ddrescue' का उपयोग करना चाहिए। यह अधिक कुशल है, और अधिक डेटा पुनर्प्राप्त करने का एक बेहतर मौका है। (इसे dd_rescue से भ्रमित न करें, जो उतना अच्छा नहीं है) - davr
खराब ब्लॉक को छोड़ने का प्रयास करते समय बड़े ब्लॉक आकार का उपयोग नहीं करना चाहिए, या यह बहुत अधिक छोड़ देगा। 40 9 6 काफी बड़ा है। - Sam Watkins


डिस्क को क्लोन करने के लिए, आपको वास्तव में करने की आवश्यकता है इनपुट और आउटपुट को डीडी में निर्दिष्ट करें:

dd if=/dev/hdb of=/image.img

बेशक, सुनिश्चित करें कि आपके पास सीधे / dev / hdb से पढ़ने के लिए उचित अनुमतियां हैं (मैं रूट के रूप में चलने की अनुशंसा करता हूं), और वह / dev / hdb घुड़सवार नहीं है (डिस्क को बदला जा रहा है, जबकि आप प्रतिलिपि बनाना नहीं चाहते हैं - केवल पढ़ने के लिए आरोही भी स्वीकार्य है)। एक बार पूरा होने पर, image.img पूरी डिस्क का बाइट-फॉर-बाइट क्लोन होगा।

क्लोन डिस्क में डीडी का उपयोग करने के लिए कुछ कमियां हैं। सबसे पहले, डीडी आपकी पूरी डिस्क, खाली जगह भी कॉपी करेगा, और यदि बड़ी डिस्क पर किया जाता है तो परिणामस्वरूप एक बहुत बड़ी छवि फ़ाइल हो सकती है। दूसरा, डीडी बिल्कुल प्रगति संकेत प्रदान करता है, जो निराशाजनक हो सकता है क्योंकि प्रतिलिपि एक लंबा समय लेती है। तीसरा, यदि आप इस छवि को अन्य ड्राइव (फिर से, डीडी का उपयोग करके) पर कॉपी करते हैं, तो वे मूल डिस्क की तुलना में बड़े या बड़े होने चाहिए, फिर भी आप लक्ष्य डिस्क पर आपके पास अतिरिक्त डिस्क का उपयोग नहीं कर पाएंगे अपने विभाजन का आकार बदलें।

आप सीधे डिस्क-टू-डिस्क प्रतिलिपि भी कर सकते हैं:

dd if=/dev/hdb of=/dev/hdc

लेकिन आप अभी भी खाली स्थान के संबंध में उपर्युक्त सीमाओं के अधीन हैं।

जहां तक ​​मुद्दे या गॉथस जाते हैं, डीडी, अधिकांश भाग के लिए, एक उत्कृष्ट काम करता है। हालांकि, कुछ समय पहले मेरे पास एक हार्ड ड्राइव था जो मरने वाला था, इसलिए मैंने डीडी का इस्तेमाल करने की कोशिश की और कॉपी करने के लिए पूरी तरह से मरने से पहले मैं किस जानकारी को बंद कर सकता था। तब यह पता चला कि डीडी पढ़ने की त्रुटियों को बहुत अच्छी तरह से संभाल नहीं पाता है - डिस्क पर कई सेक्टर थे जो डीडी पढ़ नहीं सके थे, जिससे डीडी छोड़ने और प्रतिलिपि रोकना पड़ा। उस समय मुझे पढ़ने की त्रुटि का सामना करने के बावजूद जारी रखने के लिए डीडी को बताने का कोई तरीका नहीं मिला (हालांकि ऐसा लगता है जैसे कि यह सेटिंग है), इसलिए मैंने मैन्युअल रूप से छोड़ने के लिए काफी समय बिताया और अपठनीय वर्गों पर हॉप करने की कोशिश की।

मैंने इस समस्या के समाधान के लिए कुछ समय बिताया (जब मैंने कार्य पूरा कर लिया) और मुझे एक कार्यक्रम मिला ddrescue, जो साइट के अनुसार, डीडी की तरह काम करता है लेकिन अगर यह किसी त्रुटि का सामना करता है तो भी पढ़ना जारी रखता है। मैंने वास्तव में कभी भी प्रोग्राम का उपयोग नहीं किया है, लेकिन यह विचार करने लायक है, खासकर अगर आप जिस डिस्क से प्रतिलिपि बना रहे हैं वह पुराने है, जिसमें सिस्टम ठीक दिखने पर भी खराब क्षेत्र हो सकते हैं।


17
2018-05-05 18:26



... डीडी बिल्कुल प्रगति संकेत प्रदान करता है ... - ठीक है यह सच नहीं है - प्रगति दिखाने के लिए एक कठिन तरीका है - आपको डीडी प्रक्रिया ('ps -a | grep dd') के पिड को ढूंढना होगा और फिर इस प्रक्रिया में सिग्नल यूएसआर 1 भेजना होगा- 'kill -USR1 < dd_pid_here> '(बिना <>) जो डीडी को प्रगति जानकारी दिखाने के लिए मजबूर करता है। - Michal Bernhard
"डिस्क पर कई सेक्टर जो डीडी पढ़ नहीं सके": मुझे लगता है कि conv=sync,noerror मदद करेगा। - Gauthier
conv=sync,noerror विकल्प आवश्यक हैं, वे डीडी को खराब ब्लॉक को छोड़ने और उन्हें छवि में शून्य करने की अनुमति देते हैं ताकि चीजें सही ढंग से गठबंधन हो जाएं। बहुत कम लोगों को प्रॉप्स जिन्होंने इसके बारे में कुछ टिप्पणी की। - Sam Watkins
जीएनयू ddrescue बिना किसी विशेष विकल्प के प्रगति संकेतक प्रदान करता है, और आप कॉपी को रोक सकते हैं और फिर से शुरू कर सकते हैं जहां आपने छोड़ा था। - endolith
डीडी के साथ प्रगति पाने का एक कम मुश्किल तरीका विकल्प जोड़ना है status=progress - James


यदि स्रोत ड्राइव बिल्कुल क्षतिग्रस्त है, तो आप का उपयोग करके अधिक भाग्य होगा dd_rhelp साथ में dd_rescue (मेरी व्यक्तिगत वरीयता) या जीएनयू ddrescue

इसका कारण यह है कि, पढ़ने की त्रुटियों पर, dd कोशिश कर रहा है और कोशिश कर रहा है और कोशिश कर रहा है - समय-समय पर होने के लिए लंबे समय तक इंतजार कर रहा है। dd_rescue स्मार्ट चीजों को एक त्रुटि को पढ़ने की तरह करता है, फिर डिस्क पर आगे एक स्थान लेना और पिछली त्रुटि पर पीछे की ओर पढ़ना, और dd_rhelp मूल रूप से एक है dd_rescueसत्र प्रबंधक - चालाकी से शुरू और फिर से शुरू dd_rescue इसे फिर से तेज करने के लिए चलाता है।

का अंतिम परिणाम dd_rhelp न्यूनतम समय में अधिकतम डेटा वसूल किया गया है। अगर तुम गए dd_rhelp चल रहा है, अंत में यह वही काम करता है जैसा कि dd एक ही समय में। हालांकि, यदि dd आपकी 100 जीबी डिस्क के बाइट 100 में पढ़ने वाली त्रुटियों का सामना करना पड़ा, आपको अन्य 9, 99 9, 9 00 बाइट्स * को पुनर्प्राप्त करने के लिए लंबे समय तक इंतजार करना होगा, जबकि dd_rhelp+dd_rescue डेटा के थोक को बहुत तेज़ी से ठीक कर देगा।


11
2018-05-31 02:12



कुछ dd_rescue और ddrescue के बीच चयन करने में मदद करते हैं: askubuntu.com/a/211579/50450 - Johann


स्रोत डिस्क में कोई आरोहित फाइल सिस्टम नहीं होना चाहिए। चूंकि उपयोगकर्ता ब्लॉक डिवाइस (रूट वर्क्स) को पढ़ने में सक्षम है, 'dd if = / dev / sda ....' चलाएं

अब, यहां साफ-सुथरे चीजों में से एक यह है कि आप बाइट्स की एक धारा बना रहे हैं ... और आप इसके साथ बहुत कुछ कर सकते हैं: इसे संपीड़ित करें, इसे नेटवर्क पर भेजें, इसे छोटे ब्लब्स में घुमाएं, इत्यादि।

उदाहरण के लिए:

dd if=/dev/sda | ssh user@backupserver "cat > backup.img"

लेकिन अधिक शक्तिशाली:

dd if=/dev/sda | pv -c | gzip | ssh user@backupserver "split -b 2048m -d - backup-`hostname -s`.img.gz"

उपर्युक्त रिमोट सिस्टम पर स्रोत हार्डड्राइव की संकुचित छवि की प्रतिलिपि बनाई गई है, जहां यह आपको प्रगति पर अद्यतन रखने के दौरान स्रोत होस्ट के नाम का उपयोग करके क्रमांकित 2 जी भागों में संग्रहीत करता है।

ध्यान दें कि डिस्क के आकार, स्रोत पर सीपीयू की गति, गंतव्य पर सीपीयू की गति, नेटवर्क की गति इत्यादि के आधार पर आप संपीड़न को छोड़ना चाहते हैं, या रिमोट साइड पर संपीड़न करना चाहते हैं, या एसएसएच संपीड़न को सक्षम कर सकते हैं।


7
2018-05-29 19:23



+1 gzip के माध्यम से पिपिंग बहुत समय और बैंडविड्थ बचा सकता है! - M. Dudley
मुझे यह भी ध्यान रखना चाहिए कि डीडी कमांड में 'बीएस = 1 एम' जोड़ना आम तौर पर गति में काफी सुधार करेगा। - retracile


डिस्क को क्लोन करने के लिए, आपको वास्तव में करने की आवश्यकता है इनपुट और आउटपुट निर्दिष्ट करें dd:

dd if=/dev/hdb of=hdb.img

बेशक, सुनिश्चित करें कि आपके पास सीधे पढ़ने के लिए उचित अनुमतियां हैं /dev/hdb (मैं रूट के रूप में चलने की सिफारिश करता हूं), और वह /dev/hdb आरोहित नहीं है (डिस्क को बदला जा रहा है, जबकि आप कॉपी नहीं करना चाहते हैं)। एक बार पूरा हो गया, hdb.img पूरी डिस्क के बाइट-फॉर-बाइट क्लोन होगा।

उपयोग करने के लिए कुछ कमियां हैं dd डिस्क क्लोन करने के लिए। प्रथम, dd आपकी पूरी डिस्क, यहां तक ​​कि रिक्त स्थान की प्रतिलिपि बनायेगा, और यदि बड़ी डिस्क पर किया जाता है तो परिणामस्वरूप एक बहुत बड़ी छवि फ़ाइल हो सकती है। दूसरा, dd पूरी तरह से कोई प्रगति संकेत प्रदान करता है, जो निराशाजनक हो सकता है क्योंकि प्रतिलिपि लंबे समय तक लेती है। तीसरा, यदि आप इस छवि को अन्य ड्राइव (फिर से, डीडी का उपयोग करके) पर कॉपी करते हैं, तो वे मूल डिस्क की तुलना में बड़े या बड़े होने चाहिए, फिर भी आप लक्ष्य डिस्क पर आपके पास अतिरिक्त डिस्क का उपयोग नहीं कर पाएंगे अपने विभाजन का आकार बदलें।

आप सीधे डिस्क-टू-डिस्क प्रतिलिपि भी कर सकते हैं:

dd if=/dev/hdb of=/dev/hdc

लेकिन आप अभी भी खाली स्थान के संबंध में उपर्युक्त सीमाओं के अधीन हैं।

जब आप कॉपी करते हैं तो डेटा को gzipping करके पहली कमी का समाधान किया जा सकता है। उदाहरण के लिए:

dd if=/dev/hdb | gzip -9 > hdb.img.gz

दूसरी दोष को पाइपव्यू का उपयोग करके हल किया जा सकता है (pv) उपकरण। उदाहरण के लिए:

dd if=/dev/hdb | (pv -s `fdisk -l /dev/hdb | grep -o '[0-9]*\{1\} MB' | awk '{print $1}'`m) | cat > hdb.img

मुझे तीसरे दोष को दूर करने का कोई तरीका नहीं है।

इसके अतिरिक्त, आप प्रतिलिपि करके प्रतिलिपि समय बढ़ा सकते हैं dd डेटा के बड़े हिस्से के साथ काम करने के लिए। उदाहरण के लिए:

dd if=/dev/hdb of=hdb.img bs=1024

6
2018-05-29 22:03



आपने पहले ही तीसरे दोष को दूर करने के तरीके को बताया है ... विभाजन का आकार बदलें। विभाजन को बढ़ाने से आम तौर पर एक सुरक्षित और तेज़ ऑपरेशन होता है (बनाम सिकुड़ना या आगे बढ़ना, जो धीमा और अधिक खतरनाक है क्योंकि यह डेटा को चारों ओर ले जा रहा है)। - davr
gzipping एक डिस्क के साथ काम नहीं करेगा जिसका उपयोग कुछ समय के लिए किया गया है, क्योंकि यह या तो वर्तमान या हटाए गए डेटा से भरा होगा। gzip केवल तभी काम करेगा जब रिक्त स्थान शून्य हो, जो केवल एक नई डिस्क के साथ मामला है। - Tozz
@Tozz: आप फ़ाइल सिस्टम को 0 से भरे फ़ाइल के साथ भरकर, डिस्क पर समन्वयित करके, फिर इसे हटाने के द्वारा फ़ाइल सिस्टम छवि की संपीड़न में सुधार कर सकते हैं। dd if=/dev/zero bs=1M of=/balloon; sync; rm /balloon  (फाइल सिस्टम परत में मॉड्यूलो अतिरिक्त खुफिया।) - retracile


डीडी और बचाव डिस्क के साथ आप एक और अच्छी चीज कर सकते हैं नेटवर्क पर डेटा कॉपी करें:

remote_machine$ nc -l -p 12345

local_machine$ dd if=/dev/sda | nc remote_machine 12345

यदि नेटवर्क स्थानीय नहीं है तो आप इन दोनों पाइपलाइनों में gzip चिपक सकते हैं। प्रगति के लिए, उपयोग करें pv। स्थानीय_माचिन की नेटकैट को कॉपी करने के बाद इसे छोड़ने के लिए, आप जोड़ सकते हैं -w 5 या कुछ और।


5
2018-05-29 18:09



यह काफी सही नहीं है। 'Remote_machine' कमांड में कुछ गुम है, जैसे कि > disk_backup.img या |dd of=/dev/sdb या कुछ और, जो आप करना चाहते हैं उसके आधार पर। मुझे लगता है कि आप डिस्क छवि को stdout पर डंप नहीं करना चाहते हैं। - davr
और भेजे गए डेटा को कम करने के लिए दोनों सिरों पर gzip में फेंक दें। - 3molo


ध्यान रखें कि डीडी बनाता है सटीक प्रति, सभी रिक्त स्थान सहित।

इसका मत:

  1. दूसरा ड्राइव कम से कम जितना बड़ा होना चाहिए
  2. यदि दूसरा ड्राइव बड़ा है, अतिरिक्त जगह बर्बाद हो जाएगी (फाइल सिस्टम कर सकते हैं आपको दिमाग का विस्तार किया जाए)
  3. यदि स्रोत ड्राइव पूर्ण नहीं है, तो डीडी रिक्त स्थान की प्रतिलिपि बनाने में बहुत समय बर्बाद कर देगा।
  4. आप या तो पूरे ड्राइव, या एक ही विभाजन की प्रतिलिपि बना सकते हैं।
  5. यदि यह एक बूट करने योग्य ड्राइव है, तो मुझे यकीन है कि आपको डीडी का उपयोग करने के बाद बूटलोडर स्थापित करने की आवश्यकता है

उम्मीद है कि मददगार है


4
2018-05-05 18:38



अगर आप पूरी हार्ड डिस्क क्लोन कर रहे हैं, तो आप बूट लोडर क्लोनिंग भी कर रहे हैं। - Cristian Ciupitu
ठीक है, बस एक ओह, लेकिन क्या आप बस विभाजन / डिस्क का उपयोग करने के लिए gparted का उपयोग नहीं कर सकते हैं जो कुछ भी उपयोग किया जाता है- फिर डीडी ड्रॉप? मान लीजिए कि यह एक टाइमटाइम छवि है, इसे इस मुद्दे को कम करना चाहिए। - bbqchickenrobot