लिनक्स को दूसरे विभाजन में कैसे स्थानांतरित करें?


9

मुझे एक काम करने वाली लिनक्स प्रणाली की एक प्रति बनाने की आवश्यकता है, जो (/ में निहित है, और नई जगह / mnt / sdb5 में तैयार की गई है) में काफी मात्रा में हार्ड, सॉफ्ट-लिंक और विशेष फाइलें शामिल हैं। cpioअतिरिक्त जादू लागू किए बिना इस काम को संभालना होगा ?

वर्तमान में ज्ञात सुरक्षा उपाय:

  • जब तक प्रतिलिपि को बूट करने योग्य नहीं माना जाता है और उसके साथ काम करना है root=/dev/sdb5, तब तक चल रहे सिस्टम को हटाने / संशोधित करने के लिए नहीं ; हटाने से पहले, एक पूर्ण विभाजन बैकअप लें।
  • प्रत्येक रूट डायरेक्टरी को अलग से संग्रहीत करने के लिए cpio का उपयोग करेंगे, इस प्रकार इसे LiveCD वातावरण से अनपैक करेंगे ताकि दाता विभाजन को नुकसान न पहुंचे

लेकिन फिर भी, केवल समय खोने के लिए नहीं जा रहा है क्योंकि cpio ने कुछ ध्वज को याद किया और अनुमतियों / नोड प्रकार / नरम या हार्डलिंक को अपंग कर दिया।

कौन से उपकरण का उपयोग करें / कौन से पानी के नीचे की चट्टानों से बचने के लिए?



@warren, धन्यवाद। अब एक और cpio-vs-tar टेस्ट करने जा रहा है;)
kagali-san

कोई चिंता नहीं: आशा है कि यह मदद करता है :)
वॉरेन

जवाबों:


10

के बारे में वास्तविक सवाल का जवाब देने के लिए cpio: ये वे झंडे हैं जिनके लिए मैं उपयोग करूंगा cpio:

find / -xdev -depth \! -path ./lost+found -print0 | cpio --pass-through --null --dot --make-directories --unconditional --preserve-modification-time --sparse /mnt/sdb5

बेशक, चूंकि आप नेटवर्क पर नकल नहीं कर रहे हैं, मैं सिर्फ उपयोग करूंगा cp:

cp --archive --sparse=always --verbose --one-file-system --target-directory=/mnt/sdb5 /

और यदि आप कई बार नकल करने में सक्षम होना चाहते हैं, तो rsyncअपनी क्षमताओं को फिर से शुरू करने के लिए एक बेहतर विकल्प है। (यह भी, जैसे cp, ACLs और विस्तारित विशेषताओं को संभालता है और वैकल्पिक रूप से नेटवर्क की तरह काम कर सकता है cpio। इसलिए यह सबसे उपयोगी विकल्प है, स्थानीय रूप से पहली कॉपी करने के अलावा, जिसका मैं उपयोग करना पसंद करता हूं cp।)

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials --one-file-system --8-bit-output --human-readable --progress / /mnt/sdb5

कॉपी करने के लिए मत भूलना /bootऔर /dev!

/bootआसान है, बस इसे कॉपी करें। लेकिन /devआजकल बहुत पेचीदा है क्योंकि यह छिपा हुआ है udev। मैं निम्नलिखित प्रक्रिया का सुझाव देता हूं:

  1. mkdir /tmp/dev
  2. mount --move /dev /tmp/dev
  3. उपरोक्त आदेशों में से एक का उपयोग /devकरने के लिए कॉपी करें/mnt/sdb5
  4. mount --move /tmp/dev /dev
  5. rmdir /tmp/dev

6

जैसा कि @ क्लॉक्स ने उल्लेख किया है, जब मैं उसी आकार के विभाजन की नकल करता हूं, जिसका उपयोग करने पर मैं सहमत हूं dd

लेकिन जब आप एक डिस्क को एक अलग विभाजन पर अलग आकार के साथ कॉपी करना चाहते हैं, तो मैं साथ जाना चाहूंगा rsync। नया विभाजन माउंट करें (मान लें, / mnt / नया) और:

# rsync -a --exclude=/proc --exclude=/dev --exclude=/sys / /mnt/new

सिम्बलिंक के लिए कोई एडिक्टिव मैजिक और लाइव सीडी (सिंगल यूजर / इनिट 1 के लिए कोई काम नहीं होगा)।


आह, हाँ। मैं rsyncहर समय उपयोग करता हूं और स्पष्ट याद करता हूं । मुझे ddबताए गए कारणों के लिए पसंद है , लेकिन rsyncओपी की जरूरतों के लिए एक बेहतर फिट है।
Klox

3

जितना अधिक इष्टतम संस्करण ddउपयोग कर रहा है partimage, यह विभाजन के केवल उपयोग किए गए अनुभाग को बड़े अप्रयुक्त विभाजन की प्रतिलिपि बनाने में अधिक समीचीन होगा।

महत्वपूर्ण चेतावनी पर ध्यान दें:

Partimage Ext4 का समर्थन नहीं करता है जो नए उबंटू प्रतिष्ठानों पर डिफ़ॉल्ट है।

एक सुविधाजनक प्रतिलिपि सिस्टम रेस्क्यू सीडी वितरण पर शामिल है ।


2

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

अब, निश्चित रूप से, विभाजन का मुद्दा नई डिस्क को भरने का नहीं है, लेकिन मैं केवल अतिरिक्त स्थान को भरने के लिए एक नया विभाजन बनाऊंगा और निर्देशिकाओं को स्थानांतरित करने के लिए सिमिलिंक पर भरोसा करूंगा। (मुझे यकीन है कि विभाजन का आकार बदलने के लिए भी उपकरण हैं, लेकिन मैंने उनका उपयोग नहीं किया है।)


मैं जिस सिस्टम के बारे में बात करता हूं, उसमें 500 gb XFS विभाजन पर सिर्फ 50 gigs मुफ्त हैं (जो कि सिकुड़ा नहीं जा सकता है, वर्तमान में केवल बढ़ने का समर्थन किया जाता है xfs_grow), और रूट विभाजन भी XFS है; इससे भी बदतर, यह एक अच्छी तरह से स्थापित Gentoo है जो लगभग खुद वसा है। इससे भी बदतर, इस कदम को अधिक भंडारण को जोड़ने के बिना किया जाना है और वर्तमान में 60 से अधिक गिग्स का बैकअप नहीं हो सकता है - इसलिए कोई विभाजन ऑपरेशन नहीं। कुछ सामानों के परीक्षण के लिए उस मशीन पर विन ’लगाने की जरूरत है।
कगली-सान

भी, dd अच्छा है, लेकिन ड्राइव / विभाजन के संचालन के लिए मैं और अधिक उपयोग करते हैं .. मालिकाना समाधान। Acronis TrueImage बेहतर काम करने लगता है (संपीड़न, सांबा शेयर - लाइव एलसीडी / लाइवसब फ्लैश से)।
कगली-सान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.