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


182

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

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


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

1
लगता है कि आपको स्पॉल्स्की
काइल क्रोनिन

जब मैंने पूछा (और जवाब दिया) सुपरसुअर पर एक समान सवाल - सुपरयूज़र.
वारेन

3
यह विडंबना है कि जोएल सवाल को सर्वर-फॉल्ट के एक अच्छे उदाहरण के रूप में जुड़ा हुआ है, हालांकि कोई भी उत्तर अच्छा नहीं था। ddखराब ब्लॉकों को छोड़ने के सही विकल्पों के साथ 25 (टिप्पणियों को छोड़कर) के बीच एक जवाब नहीं था - जो कि वसूली के लिए क्लोनिंग के समय आवश्यक है। मैंने एक बेहतर उत्तर जोड़ा, जिसमें खराब ब्लॉकों वाले क्लोन डिस्क हो सकते हैं:dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror
सैम वाटकिंस

मुझे लगता है कि अगर ड्राइव ज्योमेट्री डिपेंडेंट फाइल सिस्टम की बात की जाए तो dd रिस्टोर "फेल" हो सकता है और रीस्टोर नॉन समान हार्ड ड्राइव पर किया जाता है? मुझे dd पुनर्स्थापना पर कुछ विफलताओं का अनुभव हुआ, और मुझे लगता है कि मेरे मामले में यह समस्या थी।
मार्को

जवाबों:


160

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

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

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


12
बेशक, जब तक / dev / sdb कम से कम / dev / sda जितना बड़ा हो ...
Eddie

22
"bs = 100M conv = notrunc" जोड़ें और यह मेरे अनुभव में बहुत तेज है।
टिम विलक्रॉफ्ट

127
बस 'मैं' और 'ओ' अक्षरों के साथ बहुत सावधान रहना चाहिए ...
बंदी

17
किसी को भी इस ट्रिक का पता नहीं लगता ... dd एक असममित प्रतिलिपि प्रोग्राम है, जिसका अर्थ है कि यह पहले पढ़ेगा, फिर लिखेगा, फिर वापस आएगा। आप अपने आप से dd को पाइप कर सकते हैं और कॉपी को सममित रूप से करने के लिए बाध्य कर सकते हैं, जैसे dd if=/dev/sda | dd of=/dev/sdb:। मेरे परीक्षणों में, पाइप के बिना कमांड चलाने से मुझे ~ 112kb / s का थ्रूपुट दिया गया। पाइप के साथ, मुझे ~ 235kb / s मिला। मैंने इस पद्धति के साथ किसी भी मुद्दे का अनुभव नहीं किया है। सौभाग्य!
मिस्टीरी

13
@ मिस्टी, यह सममित शब्द का अर्थ नहीं है।
psusi

113

स्थान बचाने के लिए, आप dd द्वारा उत्पादित डेटा को gzip के साथ संपीड़ित कर सकते हैं, जैसे:

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

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

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

इसके अलावा, आप पृष्ठभूमि कमांड में चल रहे एक dd प्रक्रिया को स्टेटस रिपोर्ट करने के लिए मार सकते हैं, इसे किल कमांड के साथ संकेत भेजकर प्राप्त कर सकते हैं, जैसे:

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

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


2
क्या यह "बीआरटीएस, एनआईएलएफएस, [आप जो भी सपना देख सकते हैं] का" आधुनिक "एफएस के साथ काम करता है?"
स्टीव श्नेप

डीडी ब्लॉक डिवाइस पर काम करता है, फ़ाइल सिस्टम की तुलना में निम्न स्तर का होता है, इसलिए इसे हां करना चाहिए। मैं वास्तव में यह कोशिश नहीं की है, यद्यपि। हम्म, एनआईएलएफएस दिलचस्प लग रहा है, मुझे उस पर एक नज़र रखना होगा।
डेविड हिक्स

4
+1 के लिए kill -SIGUSR1 %1, और OSX dd कमांड खुशी से SIGUSR1 को स्वीकार करता है ... सुपर उपयोगी, धन्यवाद!
स्टुअर्टक

1
+1 के लिए Kill -SIGUSR1 1234मैं देख रहा था।
गर्म हो

2
क्या यह होना चाहिए dd if=/dev/hdb | gzip -c > /image.img.gz:?
माइक कॉसर

37

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

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


7
मुझे संदेह है कि syncभ्रष्टाचार की समस्याओं को दर्ज करने का जवाब नहीं है। यदि ऑपरेशन के syncदौरान, एक बहरीन या कुछ और के बाद अधिक फाइलें लिखता है तो क्या होता है dd?
नष्ट कर दिया

5
यह एक अच्छा विचार है कि पहले ड्राइव को umount करें (या केवल पढ़ने के लिए रीमाउंट करें) लेकिन यह हमेशा संभव नहीं है
एलेक्स बोल्तोव

1
जिस स्थिति में, आप rsync का उपयोग करते हैं और इसे एक सुसंगत फ़ाइल प्राप्त करने के लिए फ़ाइल हैंडल जादू करते हैं और आने वाले लेखन को कॉपी करें पर लिखें शब्दार्थ को संभालते हैं।
jldugger

4
मैं एक माउंटेड फाइल सिस्टम पर उस रनिंग डीडी को जोड़ना चाहूंगा, माउंटेड फाइल सिस्टम पर फाइलों को सही नहीं करूंगा, लेकिन इसका मतलब यह है कि फाइलसिस्टम की कॉपी जरूरी रूप से एक अच्छी स्थिति में होगी।
3molo

1
उपयोग करने rsyncसे यह सुनिश्चित होगा कि गंतव्य फाइल सिस्टम में आंतरिक डेटा सुसंगत है। यह सुनिश्चित नहीं करेगा कि फ़ाइलों में डेटा संगत है - ऐसा करने के लिए, आपको फ़ाइलों को लॉक करने की आवश्यकता होगी और फ़ाइलों को लिखने वाले किसी भी प्रोग्राम को इन तालों का सम्मान करने की आवश्यकता होगी।
मार्टिन गिस्लर

26

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

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


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

3
खराब ब्लॉक को छोड़ने का प्रयास करने पर एक बड़े ब्लॉक आकार का उपयोग नहीं करना चाहिए, या यह बहुत अधिक छोड़ देगा। 4096 काफी बड़ा है।
सैम वाटकिंस

17

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

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

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

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

आप डायरेक्ट डिस्क-टू-डिस्क कॉपी भी कर सकते हैं:

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

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

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

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


7
... dd पूरी तरह से कोई प्रगति संकेत प्रदान करता है ... - ठीक है यह सच नहीं है - थोड़े मुश्किल तरीका है कि कैसे प्रगति दिखाएं - आपको dd प्रक्रिया के pid का पता लगाना होगा ('ps -a | grep dd') और फिर इस प्रक्रिया के लिए सिग्नल USR1 भेजें - 'kill -USR1 <dd_pid_here>' (बिना <>) जो dd को प्रगति की जानकारी दिखाने के लिए मजबूर करता है।
मिशाल बर्नहार्ड

4
"डिस्क पर कई क्षेत्र जो dd नहीं पढ़ सकते हैं": मुझे लगता है कि conv=sync,noerrorइससे मदद मिलेगी।
गौथियर

2
conv=sync,noerrorविकल्प के लिए आवश्यक हैं, वे बुरा ब्लॉक छोड़ सकते हैं और छवि में उन्हें बाहर शून्य इसलिए चीजों को सही ढंग से गठबंधन कर रहे हैं डीडी अनुमति देते हैं। बहुत कम लोगों के लिए जो इस बारे में कुछ टिप्पणी करते हैं।
सैम वाटकिंस

1
जीएनयू ddrescueबिना किसी विशेष विकल्प के प्रगति संकेतक प्रदान करता है, और आप कॉपी और फिर से शुरू करना बंद कर सकते हैं जहां आपने छोड़ा था।
एंडोलिथ

2
Dd के साथ प्रगति पाने के लिए एक कम मुश्किल तरीका विकल्प को जोड़ना हैstatus=progress
जेम्स

11

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

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

dd_rhelpन्यूनतम समय में पुनर्प्राप्त अधिकतम डेटा का अंतिम परिणाम है। यदि आप dd_rhelpदौड़ना छोड़ देते हैं , तो अंत में यह ddउसी समय की तरह ही काम करता है। हालाँकि, अगर ddआपके 100Gb डिस्क के बाइट 100 पर रीड एरर का सामना करना पड़ा है , तो आपको अन्य 9,999,900 बाइट्स * को पुनर्प्राप्त करने के लिए एक लंबे समय तक इंतजार करना होगा , जबकि dd_rhelp+ dd_rescueबहुत तेजी से डेटा को पुनर्प्राप्त करेगा।


1
Dd_rescue और ddrescue के बीच चयन करने में कुछ मदद: askubuntu.com/a/211579/50450
जोहान

7

स्रोत डिस्क में कोई माउंटेड फ़ाइल सिस्टम नहीं होना चाहिए। ब्लॉक डिवाइस (रूट वर्क्स) को पढ़ने में सक्षम उपयोगकर्ता के रूप में, '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"

उपर्युक्त स्रोत की एक संकुचित छवि को एक दूरस्थ प्रणाली में कॉपी करता है, जहाँ यह प्रगति पर अद्यतन रखते हुए स्रोत होस्ट के नाम का उपयोग करके क्रमांकित 2G विखंडू में संग्रहीत करता है।

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


+1 gzip के माध्यम से पाइप करने से बहुत समय और बैंडविड्थ बच सकता है!
एम। डडले

मुझे यह भी ध्यान रखना चाहिए कि dd कमांड में 'bs = 1M' जोड़ने से आमतौर पर गति में सुधार होगा।
रेट्रासिकल जूल

6

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

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

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

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

आप डायरेक्ट डिस्क-टू-डिस्क कॉपी भी कर सकते हैं:

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

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

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

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

1
आपने पहले ही तीसरी कमी को दूर करने का तरीका बताया था ... विभाजन का आकार बदलें। एक विभाजन को बढ़ाना आम तौर पर एक सुरक्षित और तेज़ ऑपरेशन है (बनाम सिकुड़ना या हिलना, जो धीमा और अधिक खतरनाक है क्योंकि यह चारों ओर घूम रहा है)।
दव्र

gzipping कुछ समय के लिए उपयोग की गई डिस्क के साथ काम नहीं करेगी, क्योंकि यह वर्तमान या हटाए गए डेटा से भरी जाएगी। gzip केवल तभी काम करेगा जब खाली जगह शून्य हो, जो केवल एक नई डिस्क के साथ हो।
20

3
@Tozz: आप फ़ाइल सिस्टम को 0 के साथ भरी हुई फाइल के साथ फाइल सिस्टम की कम्प्रेसिबिलिटी में सुधार कर सकते हैं, इसे डिस्क में सिंक कर सकते हैं, फिर डिलीट कर सकते हैं। dd if=/dev/zero bs=1M of=/balloon; sync; rm /balloon (फाइल सिस्टम लेयर में
मोडुलो

5

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

remote_machine$ nc -l -p 12345

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

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


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

1
और भेजे गए डेटा को और कम करने के लिए दोनों सिरों पर gzip में फेंक दें।
3molo

4

ध्यान रखें कि dd एक सटीक प्रतिलिपि बनाता है , जिसमें सभी रिक्त स्थान शामिल हैं।

इसका मत:

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

आशा है कि सहायक है


8
यदि आप पूरी हार्ड डिस्क को क्लोन कर रहे हैं, तो आप बूट लोडर को भी क्लोन कर रहे हैं।
क्रिस्टियन सियुपिटु

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

3

भविष्य के संदर्भ के लिए यह ddrescue बाहर की जाँच करने के लिए ब्याज की हो सकती है । इसने मेरे दिन को कई बार बचाया है।


3

एक और शानदार फीचर एमबीआर, पार्टीशन टेबल और बूट रिकॉर्ड की नकल कर रहा है।

केवल

dd if=/dev/sda of=parttable bs=512 count=1

और जब आप इसे लिख रहे हों तो दूसरी दिशा। के fdiskबाद पोलिश करें ।

जब आप अपनी विभाजन तालिका का बैकअप लेते हैं तो आप बहुत अधिक सुरक्षित महसूस करते हैं।

इसके अलावा, यह एक और हार्ड ड्राइव की ओर पलायन करता है (जबकि विभाजन संरचना को बदलते हुए) एक खुशी।


3

यह एक सस्ते हैक की तरह है, लेकिन यह आपकी डीडी प्रक्रिया की निगरानी करने का एक त्वरित और गंदा तरीका है।

अपनी dd कमांड चलाएं। एक नया शेल खोलें और अपनी dd प्रक्रिया 'PID को खोजने के लिए ps awx करें। अब नए शेल प्रकार में देखें -n 10 किल -USR1 {आपके डीडी प्रक्रिया के पीआईडी}

यह वॉच आउटपुट विंडो में कुछ भी नहीं करेगा, लेकिन मूल डीडी शेल में वापस, डीडी हर 10 सेकंड में स्टेटस रिपोर्ट आउटपुट देना शुरू कर देगा। आप घड़ी कमांड में 10 -n को पाठ्यक्रम के किसी अन्य समय सीमा में बदल सकते हैं।

Tachyon


OS X में dd watchउपलब्ध नहीं है और इसे -USR1मारता है। हालांकि निम्नलिखित कमांड काम करती है: while [ true ]; do killall -INFO dd; sleep 30; done
एडम फ्रैंको

मुझे नहीं लगता कि यह एक नौसिखिए के लिए बहुत व्यावहारिक है, वे pvकमांड के साथ बेहतर सेवा कर सकते हैं ।
रॉबी मैकेंनी

मैंने पाया कि आप dd में CTRL-T का उपयोग कर एक SIGINFO भी भेज सकते हैं। जबकि लूप और OSX 10.6 सीडी की तुलना में यह आसान है मेरे पास किलर नहीं है। से सीखा en.wikipedia.org/wiki/Unix_signal#Sending_signals
नागरिक केपलर

3
dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror

यह डिस्क की नकल करेगा, और त्रुटियों के साथ ब्लॉक को छोड़ देगा, जो बहुत महत्वपूर्ण है।

डिस्क का क्लोन या बचाव करने के लिए dd का उपयोग करने के लिए ये मूल और आवश्यक विकल्प हैं।

मैं एक और उत्तर पोस्ट नहीं करना चाहता था, लेकिन पोस्ट किए गए 25 के बीच आवश्यक "कन्ट = सिंक, नोइरोर" विकल्पों के साथ कोई अच्छे उत्तर नहीं थे।


1
वास्तव में इसका उल्लेख पहले किया गया था, एक उत्तर में और कम से कम दो टिप्पणियों में।
माइकल हैम्पटन

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

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

3

आप वास्तव में कुछ इस तरह की कोशिश कर सकते हैं

dd if = / dev / sda2 of = / dev / sdb2 bs = 4096 conv = सिंक, noerror

सभी त्रुटियों को छोड़ें और विभाजन या हार्ड ड्राइव का सटीक क्लोन करें


यह कन्टेनर होना चाहिए = सिंक होना चाहिए, सिंकर विकल्प की आवश्यकता है या फिर त्रुटियों वाले ब्लॉक को शून्य के रूप में कॉपी करने के बजाय हटा दिया जाएगा।
सैम वाटकिंस

2

dd प्रगति की जानकारी प्रदान करता है - अच्छी तरह से लिनक्स में अधिकांश संस्करण। मैंने कुछ ऐसे देखे हैं जो यूनिक्स स्वाद को याद नहीं करते हैं।

मैन पेज कहता है: USR1 सिग्नल को 'dd' प्रोसेस में भेजने से यह I / O के आँकड़े को मानक त्रुटि पर प्रिंट करता है और फिर कॉपी करना फिर से शुरू करता है।

मैं इस सुविधा का नियमित रूप से उपयोग करता हूं।


उपयोगी होते हुए, मुझे इसकी शुरुआत के लिए व्यावहारिकता पर संदेह है।
रॉबी मैकेंनी

2

किसी को यह कहना पड़ा: Clonezilla को एक कोशिश दें (http: // clonezilla.org/)

आपको क्या मिलेगा? फाइलसिस्टम के केवल उपयोग किए गए भागों को कॉपी करने के लिए। Clonezilla dd, grub, sfdisk, parted, partimage, ntfsclone और / या partclone का उपयोग करता है। आपके द्वारा चुने गए विकल्पों के आधार पर।

निर्णायक दस्तावेज यहां देखे जा सकते हैं: http: // clonezilla.org/clonezilla-live/doc/


मैंने प्रलेखन को थोड़ा मोटा पाया, और एक लिन्टा PATA ड्राइव को SATA ड्राइव में क्लोन करना मुझे कुछ भी नहीं छोड़ता था जो मैं बूट कर सकता था (अभी तक)। लेकिन बहुत तेजी से dd के रूप में परिणाम के लिए, और यह मेरे लैपटॉप ड्राइव उन्नयन के लिए बहुत अच्छा काम किया।
jbdavid

2

Dd का उपयोग करके प्रतिलिपि कैसे करें (इस मामले में एक दूरस्थ मशीन के लिए, लेकिन वही सिद्धांत स्थानीय प्रतिलिपि पर लागू होता है) जो प्रगति दिखाता है।

यह फ़ाइल डिस्क्रिप्टर 3 / tmp / pid के माध्यम से पीड को स्टोर करके काम करता है, जो बाद में सिग्नल USR1 के साथ बाद में मारता है। एक शिकन एक उपधारा के माध्यम से stderr छानने के माध्यम से stderr पर प्रगति के उत्पादन को केवल एक लाइन को फ़िल्टर करने के लिए था।

(dd bs=1M if=$lv-snapshot & echo $! >&3 ) 3>/tmp/pid  2> >(grep 'copied' 1>&2) | gzip --fast | ssh $DEST "gzip -d | dd bs=1M of=$lv" &
# Need this sleep to give the above time to run
sleep 1
PID=$(</tmp/pid)

while kill -0 $PID; do
  kill -USR1 $PID
  sleep 5
done

प्रश्न के लिए वास्तव में प्रासंगिक नहीं है, लेकिन इसकी एक उप-शेल और उच्च (stderr से अधिक) फ़ाइल डिस्क्रिप्टर का उपयोग करके इसे साफ करने के लिए एक स्वच्छ शेल चाल है, +1
falstro

जब क्लोनिंग डिस्क का इस्तेमाल किया गया था, तो मैं इस पृष्ठ पर अलग-अलग dd विकल्पों के लिए चर्चा कर रहा था, इसलिए यह उस समय के लिए उपयुक्त स्थान लगा, जो मैंने क्लोनिंग के लिए इस्तेमाल किया था, खासकर जब से मुझे लगा कि यह खुद साफ-सुथरा था :)
एडवर्ड ग्रोएनलाल

2

पिछली सम्मिलित प्राप्तियों में सबसे अधिक जानकारी का वर्णन किया गया था, लेकिन सभी का वर्णन नहीं किया गया था।

Linux के तहत आप dd कमांड द्वारा हार्ड ड्राइव या पार्टीशन को क्लोन कर सकते हैं। ध्यान दें, जब आप कोई गलती करेंगे, तो आप अपना सारा डेटा खो देंगे।

सबसे पहले, गंतव्य उपयोग में नहीं होना चाहिए, दूसरे स्रोत का उपयोग नहीं किया जाना चाहिए, या केवल मोड में पढ़ा जाना चाहिए। नहीं तो कॉपी खराब हो जाएगी। यदि रीमाउंटिंग असंभव है, तो कृपया किसी भी लिनक्स लाइव डिस्ट्रो को बूटेबल ड्राइव (hdd / ssd / pendrive) करें। मैं शूरवीरों को पसंद करता हूं, लेकिन यह आपका चयन है। यदि यह संभव है, तो आप सिंगल यूजर मोड के लिए सिस्टम लेवल को 1 में बूट या बदल सकते हैं, या आप सिस्टम को सीधे सिंगल यूजर मोड में रिबूट कर सकते हैं, यह डिस्ट्रो डिपेंडेड है। यदि आप केवल एक विभाजन को क्लोन करते हैं, तो इस विभाजन को आरओ में अनमाउंट या रिमाउंट किया जाना चाहिए:

umount /mountpoint_or_device

या

remount -o,ro /mountpoint_or_device

यदि आप संपूर्ण हार्ड ड्राइव को क्लोन करना चाहते हैं, तो आपको सभी विभाजन को umount या रिमाउंट करना होगा।

आपको स्रोत और गंतव्य डिवाइस की पहचान करनी चाहिए। कृपया dmesg को देखें, यहां वेंडर आदि के साथ डिवाइस के बारे में सभी आवश्यक जानकारी संग्रहीत की जाती है, वैकल्पिक रूप से पहचान डिवाइस के आकार पर आधारित हो सकती है, अगर यह अलग है। अगला, गंतव्य स्रोत से समान या बड़ा होना चाहिए। आपको स्रोत की गणना करनी चाहिए, उदाहरण के लिए: विभाजन ज्यामिति को छोड़कर fdisk -l / dev / sda (वहाँ GPT हो सकता है), आप लाएंगे: 1. कुल डिस्क आकार wigh GB और बाइट्स 2. ऐतिहासिक ज्यामिति और कुल सेक्टर संख्या, बहुत महत्वपूर्ण जानकारी 3. बाइट्स में ब्लॉक आकार, आमतौर पर यह 512 है।

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

# fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f1d1e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    40136703    20067328   83  Linux
/dev/sda2        40138750    41940991      901121    5  Extended
/dev/sda5        40138752    41940991      901120   82  Linux swap /     Solaris

अगली बार 512 डिवाइडर से बड़ा प्रयास करें, हमारे पास 41943040 भौतिक क्षेत्र हैं:

41943040/256 = 163840, बहुत अच्छा, हम 256 सेक्टरों की थोक प्रतिलिपि कर सकते हैं। क्या हम और कर सकते हैं? आइए कोशिश करें: 41943040/1024 = 40960, मुझे लगता है कि यह पर्याप्त है, हम इसे चुनेंगे। आइए सेक्टर समूह के आकार की गणना करें: 512 (सेक्टर आकार) * 1024 = 524288 बाइट्स eq 512K। फिर हम पैरामीटर bs = 512K या उससे कम का उपयोग कर सकते हैं, लेकिन इसे 2 ^ x से विभाजित करें। बड़े आंतरिक कैश के साथ आधुनिक हार्ड ड्राइव के लिए, यह पर्याप्त व्यावहारिक है। बहुत छोटी कैश वाली पुरानी ड्राइव के लिए, मूल्य 32K या उससे कम है।

फिर तैयारी के बाद हम एक कॉपी कर सकते हैं: dd if = / dev / source_devide of = / dev / डेस्टिनेशन_देविस bs = 32K और कॉपी हो जाएगी। ध्यान दें, कोई भी गलती आपके आयात डेटा को अधिलेखित कर देगी। गंतव्य पर सभी को अधिलेखित कर दिया जाएगा।

यदि आप क्षतिग्रस्त स्रोत डिस्क पर बचाव डेटा की कोशिश करते हैं, तो मूल क्षेत्र के आकार का बेहतर उपयोग करें, आमतौर पर यह 512 बाइट्स होता है, और विकल्प कनव = notrunc जोड़ें। अन्यथा बुरे क्षेत्रों द्वारा गिराए गए स्रोत में छेद गंतव्य पर सेक्टर की शिफ्टिंग में शामिल हो जाएंगे। यह मरम्मत के लिए कुछ मौका के साथ कॉपी को नुकसान पहुंचाएगा। तब कमांड होगी:

dd if=/dev/source of=/dev/destination bs=512 conv=notrunc  

, और लंबे समय तक प्रतीक्षा करें जब ड्राइव और सिस्टम हार मान लेंगे और सेक्टर से अंत तक सेक्टर चलेंगे।

dd विभाजन को नए स्थान पर ले जाने के लिए उपयोगी उपकरण है। बस विभाजन बनाएं, नए विभाजन को dd बनाएं (यह बड़ा हो सकता है, बहुत बड़ा हो सकता है), और यदि यह संभव है, तो सभी नए विभाजन को भरने के लिए कॉपी किए गए फ़ाइल सिस्टम का विस्तार करें, ext3 / ext4 / xfs / zfs / btrfs में यह सुविधा है। अंत में आपको बदलना होगा / etc / fstab, फिर umount / माउंट करें यदि यह संभव है, या रिबूट सिस्टम।

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

कोई तरकीब है। जब आपने पैरामीटर सेट नहीं किया था, तो dd आउटपुट को अपने स्टडआउट में डाल देगा। तब आप डिस्क या विभाजन की संकुचित कच्ची प्रतिलिपि बना सकते हैं, उदाहरण के लिए:

dd if=/dev/sda bs=512 | gzip >/any/place/computerOne_sda.gz

बेशक यह ऑफ़लाइन किया जाना चाहिए। आप इसे इसके द्वारा पुनर्स्थापित कर सकते हैं:

zcat /any/place/computerOne_sda.gz| dd of=/dev/sda bs=512   

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


1

आप उपयोग करके bzip2या gzipइसके बजाय फ़्लाई पर विभाजन (या डिस्क) की एक संकुचित छवि फ़ाइल बना सकते हैं dd। यह हटाने योग्य मीडिया में दूर छवियों को संग्रहीत करने के लिए अच्छा है:

bzip2 -c /dev/sdaX >imagefile.bz2
or
gzip -c /dev/sdaX >imagefile.gz

यदि डिस्क का उपयोग पहले किया गया है, तो आप इमेजिंग से पहले सभी अप्रयुक्त स्थान को शून्य के साथ भरकर संपीड़न बढ़ा सकते हैं:

mkdir /mnt/mymountpoint
mount /dev/sdaX /mnt/mymountpoint
cat /dev/zero >/mnt/mymountpoint/dummyfile.bin
(Wait for it to end with a "disk full" error)
rm /mnt/mymountpoint/dummyfile.bin
umount /mnt/mymountpoint

छवि को किसी अन्य डिस्क में पुनर्स्थापित करने के लिए, आपको बस इतना करना है:

bzcat imagefile.bz2 >/dev/sdbY
or
zcat imagefile.gz >/dev/sdbY

शून्य स्थान के साथ शेष स्थान को भरने के लिए चाल के लिए उत्कीर्ण। होशियार!
कन्फ्यूजन

यह, मुझे इसकी आवश्यकता थी! एसडी कार्ड पहले वीडियो कैप्चर के लिए इस्तेमाल किया गया था और बकवास से भरा था, संपीड़न ने बिल्कुल भी मदद नहीं की।
कोडी स्मिथ

0

किसी कारण के लिए, ऑडियो पटरियों के साथ सीडी की इमेजिंग करते समय dd विफल हो जाता है। आपको छवि + टीओसी फ़ाइल प्राप्त करने के लिए सीडीआरडीओ या कुछ समान का उपयोग करने की आवश्यकता है।


0

गति पर ध्यान दें: मेरे अनुभव में dd दो गुना तेज है यदि आप डिफ़ॉल्ट bs = 512 के बजाय bs = 1024 निर्दिष्ट करते हैं। एक भी बड़ा ब्लॉक आकार का उपयोग करने पर कोई ध्यान देने योग्य गति नहीं देता है bs = 1024।


4
डिस्क क्लस्टर आम तौर पर 4k के आसपास होते हैं, इसलिए 4096 का उपयोग करना शायद एक अच्छा विकल्प है, और यहां तक ​​कि 8192 यदि आप एक बार में 2 क्लस्टर पढ़ना चाहते हैं। यद्यपि आप खंडित स्मृति समस्याओं में चलते हैं, तो बहुत बड़ा मत बनो
user4767

0

जब आप dd-ing को पूर्ण डिस्क के रूप में जानते हैं, तो एक बात यह होनी चाहिए कि ऐसा करने से प्राप्त डिस्क के मास्टर बूट रिकॉर्ड को अधिलेखित कर दिया जाएगा। इसमें विभाजन तालिका और अन्य महत्वपूर्ण जानकारी शामिल है। यदि नई डिस्क पुरानी डिस्क के समान नहीं है, तो यह सभी प्रकार के टेबल बना सकती है। विभाजन पर नकल करना आम तौर पर सुरक्षित होता है (और स्वैप विभाजन की नकल नहीं करनी होती है)


0

मैं अब कई वर्षों के लिए व्यवस्थापक भूमिका से बाहर हो गया हूं, लेकिन मुझे पता है कि 'dd' नौकरी तक है। मैंने इस तकनीक का प्रयोग 80 के दशक के अंत में सन स्पार्क और 386 आई कंप्यूटर पर नियमित रूप से किया। मेरे पास 30 386i सिस्टम पर एक क्लाइंट ऑर्डर था जो सीएडी सॉफ्टवेयर चला रहा था जो कई क्यूआईसी टेप पर वितरित किया गया था।

हमने पहले कंप्यूटर पर इंस्टॉल किया, ऐप को कॉन्फ़िगर किया, SunOS के sys-unconfig को चलाया, ड्राइव को एक अलग SCSI पते के साथ एक शोएबॉक्स में रखा और फिर अन्य 30 ड्राइव्स के लिए 'dd' के लिए आगे बढ़ा।


0

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



0

बस शुरुआती लोगों के लिए एक चेतावनी जिसे कहने की आवश्यकता है: कम से कम कुछ संस्करणों के साथ, बी एस = एक्स का मतलब है कि एक्स के आकार को मेमोरी का शाब्दिक रूप से आवंटित किया जाएगा। bs = 2GB एक सिस्टम पर 1GB RAM और अपर्याप्त स्वैप के कारण खराब चीजें होंगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.