भौतिक ड्राइव का उपयोग करते हुए विभाजन को दूसरे विभाजन में कॉपी करने के लिए dd का उपयोग करना


17

मुझे यकीन नहीं है कि इस विषय में बेहतर तरीके से कैसे समझा जाए, इसलिए "प्रश्न" सही नहीं हो सकता है। लेकिन यहाँ जाता है। मेरे पास तीन हार्ड ड्राइव हैं। ड्राइव ए 320 जीबी ड्राइव है, ड्राइव बी 80 जीबी ड्राइव है, और ड्राइव सी 1 टीबी ड्राइव है। मैंने 1 जीबी ड्राइव पर 80 जीबी ड्राइव से डेटा कॉपी किया है, और विभाजन का आकार बदलने जा रहा हूं (इसलिए मैं 320 जीबी ड्राइव से डेटा कॉपी कर सकता हूं)।

मेरा सवाल यह है: यदि मैं 1TB ड्राइव पर ऑपरेटिंग सिस्टम में बूट करता हूं, तो क्या मैं उस भौतिक ड्राइव पर किसी अन्य पार्टीशन पर 320 GB ड्राइव की प्रतिलिपि बनाने के लिए dd का उपयोग कर सकता हूं? मुझे पता है कि मुझे लाइव विभाजन पर कॉपी नहीं करना चाहिए (मतलब कि मैं 320 जीबी ड्राइव से डेटा कॉपी नहीं कर सकता हूं अगर मैं उस ऑपरेटिंग सिस्टम को चला रहा हूं)।

मेरा तर्क यह है: मैंने Acronis TrueImage, विभाजन प्रबंधक और छवि 4 DOS / Linux (दोनों एप्लिकेशन) का उपयोग करने की कोशिश की, और डेटा को कॉपी करने के लिए एक सप्ताह से अधिक समय लगने वाला था। इसका मतलब है कि एक हफ्ते के लिए, मैं कंप्यूटर का उपयोग करने में सक्षम नहीं हूं, जो स्वीकार्य नहीं है (जब तक कि यह मेरा एकमात्र विकल्प नहीं है)। मुझे उम्मीद है कि यह काम करता है, इसलिए मैं कॉपी करते समय कम से कम कंप्यूटर का उपयोग कर सकता हूं।

अगर मुझे करना है, तो मैं या तो एक लाइव सीडी को बूट कर सकता हूं (वास्तव में एक पसंदीदा विकल्प नहीं) या "ड्राइव बी" का उपयोग कर सकता हूं, लेकिन मैं जल्द से जल्द उस ड्राइव को निकालना चाहूंगा।


जरूर, क्यों नहीं ?
माइकल हैम्पटन

जवाबों:


18

हां, आप जो करना चाहते हैं वह ठीक काम करेगा, जिसे देखते हुए निम्नलिखित दो शर्तें सत्य हैं:

  1. कोई (घुड़सवार) विभाजन पर फाइल सिस्टम है कि आप dd'ing कर रहे हैं करने के लिए
  2. विभाजन आप dd'ing कर रहे हैं करने के लिए कम से कम एक के रूप में एक ही आकार है आप कर रहे हैं dd'ing से (यानी 320 जीबी)।

यह ठीक काम करेगा कारण यह है कि विभाजन UNIX में केवल फाइलें हैं। उनकी सामग्री का केवल विशेष अर्थ होता है यदि उनमें एक माउंटेड फ़ाइल सिस्टम होता है।

मान लें कि आपके पास एक लेआउट है जो इस तरह दिखता है:

1 टीबी = एसडीए, दो विभाजन, sda1 जिसे आपने sda2 से बूट किया है और जिसे आप dd'ing कर रहे हैं

320 GB = sdb, एक विभाजन, sdb1 जिसे आप से dd'ing कर रहे हैं

आपका आदेश इस तरह दिखेगा:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

bs=1Mपैरामीटर कि dd प्रतियां बड़ी मात्रा में डेटा वहाँ सुनिश्चित करने के बजाय प्रत्येक क्षेत्र के लिए एक अनुरोध जारी करने की है।


1
अगर = का स्रोत = मुझे लगता है कि ऊपर की सलाह में कुछ गड़बड़ है।

उपरोक्त उदाहरण में, sdb1 स्रोत है और sda2 गंतव्य है। मैंने उस बारे में अधिक स्पष्ट होने के लिए उत्तर संपादित किया।
माइकल फेन

1
resize2fsकॉपी के बाद परफॉर्म करने की जरूरत नहीं ? आकार भिन्न होते हुए भी?
शोपाजो डे एरिएरेस

5

सामान्य रूप से किसी भी विभाजन को dd करने के लिए ठीक है, जबकि यह आरोहित नहीं है। यदि आपको dd के चलते समय पढ़ने के लिए स्रोत विभाजन को माउंट करना है, तो इसे केवल -o ro पैरामीटर के साथ पढ़ने के लिए माउंट करना बेहतर होगा।

यदि आप स्रोत विभाजन amd में पहले बूट करना चाहते हैं, तो इसे कॉपी करने के लिए dd का उपयोग करें, आप बूट करने के बाद ही इसे पढ़ने के लिए आरओ-माउंट, रिमाउंट / माउंट कर सकते हैं।


केवल पढ़ने का मतलब यह नहीं है कि फाइल सिस्टम जर्नल के साथ बेवकूफ नहीं बना रहा है या मुक्त स्थान या जो भी पुनर्गठन कर रहा है।
वॉनब्रांड

@vonbrand क्या आप लिनक्स फाइल सिस्टम कार्यान्वयन का एक उदाहरण प्रदान कर सकते हैं जो आरओ मोड में है?
बसिलेव्स

@vonbrand UNIX फाइलसिस्टम में आरओ माउंटेड होने का मतलब यह है कि अंतर्निहित डिवाइस को कोई लिखना जारी नहीं किया जाना चाहिए।
माइकल फेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.