सवाल पूरे फ़ाइल सिस्टम पदानुक्रम को एक ड्राइव से दूसरे ड्राइव में कॉपी करें


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


80
2017-07-07 03:30


मूल


उम्म ... के लिए प्यार कहाँ है dd? dd if=/dev/sda1 of=/dev/sdb1 bs=4096 - juniorRubyist
डीडी के लिए @juniorRubyist +1। मैं हमेशा इसका इस्तेमाल करता हूं। लेकिन किस का उपयोग करने के लिए झंडे? मैं उपयोग करता हूं conv=notrunc,noerror,sync। - BeniBela


जवाब:


मैं अक्सर उपयोग करता हूं

> cp -ax / /mnt

अनुमान / mnt नई डिस्क / mnt पर आरोहित है और / पर कोई अन्य माउंट नहीं है।

-x इसे एक फाइल सिस्टम पर रखता है।

यह निश्चित रूप से रूट के रूप में या सूडो का उपयोग करने की जरूरत है।

इस लिंक में ऊपर दिए गए कुछ विकल्प हैं

http://linuxdocs.org/HOWTOs/mini/Hard-Disk-Upgrade/copy.html


30
2017-07-07 03:42





आप क्या चाहते हैं rsync

इस कमांड का उपयोग किसी फ़ोल्डर को सिंक्रनाइज़ करने के लिए किया जा सकता है, और जब इसे आधा रास्ता छोड़ा जाता है तो प्रतिलिपि फिर से शुरू करें। एक डिस्क की प्रतिलिपि बनाने का आदेश है:

rsync -avxHAX --progress / /new-disk/

विकल्प हैं:

-a  : all files, with permissions, etc..
-v  : verbose, mention files
-x  : stay on one file system
-H  : preserve hard links (not included with -a)
-A  : preserve ACLs/permissions (not included with -a)
-X  : preserve extended attributes (not included with -a)

कॉपी की गति में सुधार करने के लिए, जोड़ें -W (--whole-file), फ़ाइलों के डेल्टा / diffs की गणना से बचने के लिए। यह डिफ़ॉल्ट है जब स्रोत और गंतव्य दोनों को स्थानीय पथ के रूप में निर्दिष्ट किया जाता है, क्योंकि rsync के डेल्टा-स्थानांतरण एल्गोरिदम का वास्तविक लाभ नेटवर्क उपयोग को कम कर रहा है।

जोड़ने पर भी विचार करें --numeric-ids उपयोगकर्ता / समूह नाम द्वारा uid / gid मान मैपिंग से बचने के लिए।


167
2017-07-07 03:36



जीनियस, धन्यवाद। बीटीडब्ल्यू, मैं उपयोग समाप्त हो गया rsync -avxHAWX --numeric-ids --progress / mnt/लेकिन मुझे करना चाहिए था rsync -avxHAWX --numeric-ids --progress / mnt/ > ~/rsync.out। मुझे संदेह है कि टर्मिनल को आउटपुट डालने से प्रक्रिया धीमी हो जाती है। : डी - Chris K
--info=progress2 के बजाय --progress बड़े हस्तांतरण के लिए उपयोगी है, क्योंकि यह व्यक्तिगत फाइलों के लिए (लाखों लाइनों) की बजाय समग्र प्रगति देता है। - Florian
मुझे बदलना पड़ा X तथा A साथ में E, क्योंकि विस्तारित विशेषताओं और एसीएल द्वारा कवर किया जाता है E मेरे मैक पर परीक्षण: rsync version 2.6.9 protocol version 29 - Jonathan Komar
के अतिरिक्त > ~/rsync.out, 2> ~/rsync.err एक अलग फ़ाइल में किसी भी त्रुटि को बचाएगा। - Aneel
यदि आप किसी अन्य फ़ोल्डर से कॉपी कर रहे हैं /, ध्यान दें कि स्रोत निर्देशिका पर पिछला स्लैश (या नहीं) होने से कोई फर्क पड़ता है: rsync source/ dest/ अंदर सबकुछ कॉपी करता है source/ सेवा मेरे dest/, जबकि rsync source dest/ फ़ोल्डर की प्रतिलिपि बनाता है source और अंदर सब कुछ dest/। - semi-extrinsic


माइकल हारून सफान का जवाब स्पैस फाइलों के लिए जिम्मेदार नहीं है। -S विकल्प ठीक करता है कि।

इसके अलावा यह संस्करण प्रत्येक फ़ाइल को प्रगति के साथ स्पैम नहीं करता है और डेल्टा सिंकिंग नहीं करता है जो गैर-नेटवर्क मामलों में प्रदर्शन को मारता है।

एक स्थानीय ड्राइव से दूसरे स्थानीय ड्राइव में फाइल सिस्टम की प्रतिलिपि बनाने के लिए बिल्कुल सही।

rsync -axHAWXS --numeric-ids --info=progress2

20
2018-03-05 10:42



गजब का। यह वास्तव में एक अच्छा काम कर रहा है - Gildas
यह स्वीकार्य उत्तर होना चाहिए, महान काम करता है। उदाहरण 55,431,669,792 57% 97.47MB/s 0:06:56 xfr#2888, ir-chk=5593/8534) - Drew


एक ड्राइव के लिए स्थानीय प्रतिलिपि एक ड्राइव से दूसरे तक, मुझे लगता है cp ऊपर वुल्फमैन द्वारा वर्णित पर्याप्तताएं।

उदाहरण के लिए स्थानीय या दूरस्थ बैकअप जैसे बड़े कार्यों के लिए, सबसे अच्छा है rsync

बेशक, rsync उपयोग करने के लिए काफी जटिल है।

क्यों rsync:

  • यह आपको कॉपी करने की अनुमति देता है (सिंक्रनाइज़ प्रतिलिपि) अपने ड्राइव ए के सभी या हिस्से ए ड्राइव बी, कई विकल्पों के साथ, जैसे से कुछ निर्देशिकाओं को छोड़कर प्रतिलिपि (उदाहरण के लिए / proc को छोड़कर)।

  • एक और बड़ा फायदा यह है कि यह देशी उपकरण फ़ाइल पर नज़र रखता है स्थानांतरण: उदाहरण के लिए बड़े पैमाने पर स्थानांतरण के लिए, अगर कनेक्शन बाधित है, तो यह ब्रेकपॉइंट से जारी रहेगा।

  • और अंतिम लेकिन कम से कम नहीं, rsync का उपयोग करता है एसएसएच कनेक्शन, तो यह आपको अनुमति देता है रिचर्ड सिंक्रनाइज़ सुरक्षित सुरक्षित "प्रतियां"। एक नज़र डालें आदमी पृष्ठ साथ ही साथ कुछ के लिए यहाँ उदाहरण


6
2017-07-07 20:53





माइकल सफान की तरह ऊपर बताता है, मैंने उपयोग किया है rsync इस उद्देश्य के लिए। मैं उन निर्देशिकाओं को बाहर करने के लिए कुछ अतिरिक्त विकल्पों का उपयोग करने का सुझाव देता हूं जिन्हें आप कॉपी नहीं करना चाहते हैं।

यह संस्करण जीनोम- और डेबियन / उबंटू-आधारित सिस्टम के लिए काफी विशिष्ट है, क्योंकि इसमें उपयोगकर्ता की होम निर्देशिकाओं की उप-निर्देशिकाएं शामिल हैं जो जीनोम के साथ-साथ एपीटी पैकेज कैश के लिए विशिष्ट हैं।

अंतिम पंक्ति को बाहर कर दिया जाएगा कोई भी कैश / कैश /। कैश नाम की निर्देशिका, जो कुछ उपयोगों के लिए बहुत आक्रामक हो सकती है:

rsync -WavxHAX --delete-excluded --progress \
  /mnt/from/ /mnt/to/
  --exclude='/home/*/.gvfs' \
  --exclude='/home/*/.local/share/Trash' \
  --exclude='/var/run/*' \
  --exclude='/var/lock/*' \
  --exclude='/lib/modules/*/volatile/.mounted' \
  --exclude='/var/cache/apt/archives/*' \
  --exclude='/home/*/.mozilla/firefox/*/Cache' \
  --exclude='/home/*/.cache/chromium'
  --exclude='home/*/.thumbnails' \
  --exclude=.cache --exclude Cache --exclude cache

3
2018-02-06 06:11





थ्रेड री rynync में दो उपयोगी बिट्स जोड़ना: साइफर बदलना, और उपयोग करना --update:

वुल्फमैन की पोस्ट के अनुसार, cp -ax स्थानीय सामान के लिए सुरुचिपूर्ण और शांत है।

हालाँकि, rsync भी भयानक है। माइकल के जवाब के आगे -W, साइफर बदल रहा है चीजों को गति भी दे सकता है (हालांकि किसी भी सुरक्षा प्रभाव पर पढ़ें)।

rsync --progress --rsh="ssh -c blowfish" / /mnt/dest -auvx

वहाँ है कुछ चर्चा (और बेंचमार्क) एक धीमी सीपीयू के बारे में वास्तविक बाधा होने के बारे में जगह के आसपास, लेकिन यह मेरी मदद करता प्रतीत होता है जब मशीन अन्य समवर्ती चीजें कर रही है।

इस तरह की एक बड़ी, रिकर्सिव प्रतिलिपि में rsync का उपयोग करने के अन्य बड़े कारणों में से एक है -u स्विच (या --अद्यतन करें)। यदि प्रतिलिपि के दौरान कोई समस्या है, तो आप इसे ठीक कर सकते हैं, और rsync इसे छोड़कर उठाएगा (मुझे नहीं लगता कि एसपीपी में यह है)। इसे स्थानीय रूप से करना, सीपी में एक-स्विच भी है।

(मुझे यकीन नहीं है कि --update और --whole-file के प्रभाव क्या हैं, लेकिन वे हमेशा इस प्रकार के कार्य में मेरे लिए समझदारी से काम करते प्रतीत होते हैं)

मुझे एहसास है कि यह rsync की विशेषताओं के बारे में एक धागा नहीं है, लेकिन इसके लिए उपयोग किए जाने वाले कुछ सबसे आम हैं:

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

संयोग से, अगर मुझे कभी भी विंडोज़ का उपयोग करना पड़ता है, तो मैं शुरुआत से शुरू करने के इच्छुक एक्सप्लोरर के थोड़ा मस्तिष्क-मृत की वजह से बड़ी रिकर्सिव प्रतियां करने के लिए साइगविन से rsync का उपयोग करता हूं (हालांकि मुझे लगता है कि खोजक ओएस एक्स भी बदतर है)


2
2018-03-19 23:53





rsync

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

से:

https://wiki.archlinux.org/index.php/Full_system_backup_with_rsync

मैन पेज यहाँ


2
2018-05-18 15:45





rsync उपरोक्त समझाया गया सही समाधान है।

मैं बस जोड़ूँगा -S सेवा मेरे "कुशलतापूर्वक स्पैस फ़ाइलों को संभाल लें"यदि एक डॉकर devicemapper मात्रा या नकल के समान है।


0
2017-08-07 18:04





जूनियर रूबिस्ट द्वारा टिप्पणियों में उल्लिखित अनुसार, यहां पसंदीदा दृष्टिकोण का उपयोग करना चाहिए dd। मुख्य कारण प्रदर्शन है, यह फ़ाइल-दर-फ़ाइल की बजाय ब्लॉक-दर-ब्लॉक प्रति है।

एक विभाजन क्लोनिंग

# dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync status=progress

एक पूरी डिस्क क्लोनिंग

# dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync status=progress

संदर्भ

  1. https://wiki.archlinux.org/index.php/disk_cloning

0
2018-06-14 17:30