मैं पुराने ड्राइव से डेटा को नई ड्राइव पर स्थानांतरित करने के लिए डीडी का उपयोग कैसे कर सकता हूं?


29

मैं अपने लैपटॉप पर आंतरिक SATA हार्ड ड्राइव को 40G ड्राइव से 160G ड्राइव में अपग्रेड कर रहा हूं। मेरे पास एक Linux / Ubuntu डेस्कटॉप है जिसमें SATA कार्ड है। मैं वास्तव में काम पर एक युगल CentOS & FreeBSD बक्से के लिए एक ही बात करना चाहते हैं, और ऐसा लगता है कि यह एक ही समाधान होगा।

मैंने सुना है कि मैं 40G विभाजन को 160G ड्राइव पर दर्पण करने के लिए DD का उपयोग कर सकता हूं , या कि मैं अपने स्थानीय सिस्टम पर एक छवि के रूप में 40G विभाजन को बचा सकता हूं, और फिर उस 40G छवि को 160G ड्राइव पर कॉपी कर सकता हूं।

क्या कोई वर्णन कर सकता है कि मैं यह कैसे कर सकता हूं? क्या मुझे किसी अन्य उपयोगिताओं की आवश्यकता है, जैसे कि gparted


3
अहहा ... यह पहला सवाल है !!
हर्षित श्रीवास्तव

2
प्रश्न नंबर एक! मैं इस साइट का प्रस्तावक भी हूं, और मुझे लगा कि मैं काफी तकनीकी प्रश्न के साथ साइट को बंद कर दूंगा। मुझे एक टी-शर्ट और कुछ स्वैग से पुरस्कृत किया गया।
स्टीफन लासिवस्की

जवाबों:


6

आपका पहला काम किसी मौजूदा लिनक्स सिस्टम से दोनों डिस्क को जोड़ना या नई डिस्क को मूल सिस्टम से जोड़ना होगा।

आपको बहुत सावधान रहना चाहिए क्योंकि अच्छी डिस्क के शीर्ष पर रिक्त डिस्क की प्रतिलिपि बनाना बहुत सरल है!

बूट सेक्टर और सभी को समाप्त करने के लिए, आप कुछ ऐसा करेंगे:

dd if=/dev/hdx of=/dev/hdy

hdxआपकी 40G डिस्क कहां है और hdyआपकी 160G डिस्क है। आप देखेंगे कि जैसे विभाजन संख्याएँ नहीं हैं /dev/hdx1। यह संपूर्ण डिस्क, विभाजन जानकारी और सभी को कॉपी करता है।

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

एक अन्य समाधान प्रत्येक व्यक्तिगत विभाजन को डंप करना है। इसके लिए बहुत अधिक स्थिति जागरूकता की आवश्यकता है क्योंकि आपको बूट जानकारी को फिर से बनाना होगा।

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


17

आम तौर पर मैं एक समाधान सुझाता हूं जैसे "बाहरी परिक्षेत्र का उपयोग करके दूसरी हार्ड ड्राइव को हुक करना, एक लिनक्स सीडी से बूट करना, फिर एक कमांड का उपयोग करना जैसे कि dd if=/dev/sda of=/dev/sdb bs=1G, लेकिन जब से आप काम के लिए एक ही तकनीक का उपयोग करना चाहते हैं, मेरे पास क्या हो सकता है एक बेहतर समाधान।

मेरे सभी सर्वर और लैपटॉप Clonezilla का उपयोग करके काम पर लग जाते हैं । इसका उपयोग करने के दो तरीके हैं ... जिनमें से एक समर्पित सर्वर का उपयोग करता है और संभवतः आपके लिए ओवरकिल है, और दूसरा जो बूट सीडी और बाहरी हार्ड ड्राइव का उपयोग करता है।

विचार यह है कि आप क्लोनज़िला सीडी के साथ बूट करते हैं और एक लार्जिश (स्रोत ड्राइव से बड़ा) बाहरी यूएसबी ड्राइव है। Clonezilla आपको मौजूदा ड्राइव की एक छवि बनाने के माध्यम से चलता है, जिसके बाद आप मशीन को पावर करते हैं, ड्राइव को प्रतिस्थापित करते हैं, फिर Clonezilla में वापस बूट करते हैं, और यह आपको डेटा को पुनर्स्थापित करने के माध्यम से चलता है।

यह आपको ए) को बड़ी ड्राइव पर छवि डालने का अवसर देता है, और बी) डेटा का बैकअप बनाए रखता है।


5

जब आप dd का उपयोग डिस्क को कॉपी करने के लिए कर सकते हैं, तो ऐसा करने में कई कमियां हैं:

  1. गंतव्य स्रोत के समान आकार या उससे बड़ा होना चाहिए
  2. कॉपी करने के बाद, आपको किसी भी अतिरिक्त स्थान का उपयोग करने के लिए विभाजन का आकार बदलना होगा
  3. आप खाली जगह की नकल करने में समय बर्बाद करेंगे
  4. पुरानी डिस्क में मौजूद किसी भी विखंडन को संरक्षित किया जाता है

Ghost4Linux, partclone, या clonezilla जैसे इमेजिंग प्रोग्राम का उपयोग करने से कम से कम संख्या 2 और 3 का ध्यान रखा जाता है। आप बस नई डिस्क को प्रारूपित कर सकते हैं, इसे माउंट कर सकते हैं और सभी फाइलों को कॉपी कर सकते हैं cp -ax(रूट के रूप में), और फिर से इंस्टॉल करें नई ड्राइव पर बूट लोडर। यह विधि उपरोक्त कमियों में से किसी से ग्रस्त नहीं है।


3

बस विभाजन की प्रतिलिपि बनाने के लिए, आप dd if=/dev/srcDrive of=/dev/dstDriveइस तरह का उपयोग या कुछ कर सकते हैं । मैं आपको इसके मैन पेज को पढ़ने के लिए फिर से भेजूंगा । क्षमा करें, मैं बहुत अधिक जानकारी नहीं दे सकता, क्योंकि मैं अभी काम पर हूँ ..


2

आपने पूछा कि इसे dd के साथ कैसे किया जाए, लेकिन मुझे डंप के आउटपुट को बहाल करने में बेहतर सफलता मिली । स्रोत ad1s1a और लक्ष्य ad2s1a को देखते हुए :

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

मैंने FreeBSD पर यह कोशिश की, वास्तव में मैंने इसे FreeBSD फोरम पर पाया


1

एक सरल उदाहरण यह है:

dd if=/dev/sda of=/dev/sdb

लेकिन अगर आपको कुछ विशेष आवश्यकताएं हैं, तो आपको वास्तव में मैनपेज (मैन डीडी) पढ़ना चाहिए या Google पर खोजना चाहिए।

एक अन्य विचार rsync का उपयोग हो सकता है (सही विकल्पों को सेट करने के लिए मत भूलना, जैसे-az [फाइलों को कॉपी करने के बजाय एक के बाद एक फाइल कॉपी करता है] या -numeric-ids जैसे नामों के बजाय uid / gid का उपयोग करता है "जड़"] और शायद कुछ अन्य)। लिंक में कई उदाहरण हैं।

यदि नए HDD में विभाजन नहीं हैं, तो आप gparted या palimpset का उपयोग कर सकते हैं।

जब आप अनिश्चित हों तो मैं एचडीडी को प्रारूपित करूंगा और फिर डेटा को rsync के साथ सिंक करूंगा।


1

खैर, मैंने इसके साथ माइग्रेशन किया है और दोनों डिस्क के साथ बूटिंग संलग्न है और एक लाइव सीडी।

  1. आप दूसरी डिस्क में पहली डिस्क के विभाजन की जानकारी को फिर से बनाते हैं, संभवतः अतिरिक्त स्थान का उपयोग करने के लिए कुछ विभाजन को बड़ा बनाते हैं, और इसी तरह।
  2. फिर मान लें कि आपके पास देव / sda {1,2,3,4} हैं और उन्हें / dev / sdb {1,2,3,4} पर कॉपी करना चाहते हैं, आप mkdir / mnt / sd {a, b} {1 , 2,3,4} और प्रत्येक डिर में प्रत्येक विभाजन को माउंट करें (या यदि आप इसे एक-एक करके करना चाहते हैं तो आप / mnt / मूल / mnt / गंतव्य बना सकते हैं और प्रत्येक जोड़ी को माउंट कर सकते हैं)
  3. फिर आप एक cp -avr / mnt / मूल / करते हैं। / mnt / गंतव्य / (या एक cp -avr / mnt / sda1 / / / mnt / sdb1 /
  4. वेब ब्राउज़ करते समय प्रतीक्षा करें :)
  5. अपने आप को ग्रब, लिलो या आपके द्वारा उपयोग किए जाने वाले बूटमैनगर को पुन: स्थापित करने के लिए याद रखें।

इसे इस तरह से करने से आप फ़ाइलों को कॉपी करने के दौरान डीफ़्रैग्मेंट करेंगे, आप फाइल सिस्टम को विभाजन में भी बदल सकते हैं (reiserfs या ext3 से ext4 इत्यादि पर माइग्रेट करें), लेकिन कृपया, सूट को कॉपी करने के बाद एडिट करना / आदि को याद रखना। नई स्थिति।

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