سؤال نسخ التدرج الهرمي لنظام الملفات بأكمله من محرك أقراص إلى آخر


أرغب في نسخ التسلسل الهرمي الكامل لنظام الملفات من محرك أقراص إلى آخر .. أي محتويات كل دليل وكذلك الملفات العادية في نظام Linux. سيكون من دواعي سرورنا أن نعرف أفضل طريقة للقيام بذلك مع وظائف اللينكس الممكنة. نظام الملفات هو عائلة ext.


80
2017-07-07 03:30


الأصل


أم ... أين هو الحب dd؟ dd if=/dev/sda1 of=/dev/sdb1 bs=4096 - juniorRubyist
juniorRubyist +1 لـ dd. أنا دائما استخدم ذلك. لكن أي الأعلام تستخدم؟ أنا أستعمل conv=notrunc,noerror,sync. - BeniBela


الأجوبة:


أنا غالبا ما استخدم

> cp -ax / /mnt

افتراض / mnt هو القرص الجديد الذي تم تحميله على / mnt ولا يوجد أي تركيب آخر على /.

يحتفظ -x على نظام ملفات واحد.

هذا بالطبع يجب أن يتم كجذر أو باستخدام sudo.

يحتوي هذا الرابط على بعض البدائل ، بما في ذلك واحد أعلاه

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


30
2017-07-07 03:42





ما تريده هو رسينك.

يمكن استخدام هذا الأمر لمزامنة مجلد ، وكذلك استئناف النسخ عندما يتم إحباطه في منتصف الطريق. أمر نسخ قرص واحد هو:

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) ، لتجنب حساب deltas / اختلاف الملفات. هذا هو الإعداد الافتراضي عندما يتم تحديد كل من المصدر والوجهة كمسارات محلية ، حيث أن الفائدة الحقيقية لخوارزمية نقل دلتا 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لأن السمات الموسعة و ACLs مغطاة 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


الجواب مايكل آرون Safyan لا حساب للملفات المتفرقة. -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


لنسخة محلية واحدة من محرك أقراص إلى آخر ، أعتقد حزب المحافظين يكفي كما وصفها ولفمان هنا أعلاه.

بالنسبة إلى الأعمال الكبيرة مثل النسخ الاحتياطية المحلية أو البعيدة ، فإن الأفضل هو الأفضل رسينك.

بالطبع ، rsync معقد بشكل كبير للاستخدام.

لماذا rsync:

  • هذا يسمح لك بنسخ (متزامن نسخ) كل أو جزء من محرك الأقراص A إلى محرك الأقراص B ، مع العديد من الخيارات ، مثل باستثناء بعض الدلائل من نسخة (على سبيل المثال باستثناء / proc).

  • ميزة كبيرة أخرى هي أن هذا الأداة الأصلية تراقب الملف نقل: على سبيل المثال لعمليات نقل ضخمة ، إذا تمت مقاطعة الاتصال ، فإنه سوف تستمر من نقطة التوقف.

  • وأخيرا وليس آخرا ، يستخدم rsync اتصال ssh ، لذلك هذا يسمح لك تحقيق متزامن عن بعد آمن "نسخ". إلقاء نظرة على رجل صفحة طالما هنا للبعض أمثلة.


6
2017-07-07 20:53





مثل مايكل سفيان يشير أعلاه ، لقد استعملت rsync لهذا الغرض. أقترح استخدام بعض الخيارات الإضافية لاستبعاد الأدلة التي ربما لا تريد نسخها.

هذا الإصدار مخصص إلى حد ما لأنظمة Gnome- و Debian / Ubuntu ، نظرًا لأنه يتضمن أدلة فرعية لدلائل المستخدمين الرئيسية الخاصة بـ Gnome ، بالإضافة إلى ذاكرة التخزين المؤقت لحزمة APT.

السطر الأخير سيستبعد أي الدليل المسمى ذاكرة التخزين المؤقت / Cache / .cache ، والتي قد تكون شديدة العدوانية لبعض الاستخدامات:

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





إضافة اثنين من بت مفيدة إلى مؤشر ترابط إعادة rsync: تغيير cypher ، واستخدام --update:

حسب مشاركة ولفمان ، cp -ax أنيق ، وبارد للأشياء المحلية.

ومع ذلك، rsync رائع ايضا. إلى مزيد من الإجابة مايكل إعادة -W، تغيير الشيف يمكن أيضا تسريع الامور (اقرأ على أي آثار أمنية على الرغم من).

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

يوجد بعض المناقشة (والمعايير) حول المكان حول وحدة المعالجة المركزية بطيئة كونها عنق الزجاجة الفعلي ، ولكن يبدو أنه يساعدني عندما يتم تحميل الجهاز حتى تفعل أشياء أخرى متزامنة.

أحد الأسباب الكبيرة الأخرى لاستخدام rsync في نسخة كبيرة متكررة مثل هذا هو بسبب -u التبديل (أو --تحديث). إذا كانت هناك مشكلة أثناء النسخ ، فيمكنك إصلاحها ، وسوف تلتقط rsync المكان الذي توقفت عنده (لا أعتقد أن scp لديها هذا). القيام بذلك محليا ، كما أن لديها CP -U التبديل.

(لست متأكداً ما هي الآثار المترتبة على --update و - whole-file معاً ، لكنهم دائمًا ما يعملون بشكل منطقي من أجل هذا النوع من المهام)

أدرك أن هذا ليس موضوعًا حول ميزات rsync ، ولكن بعض أكثر أنواع الاستخدام الشائعة لذلك هي:

  • --delete بعد الخ (كما ذكر مايكل في المتابعة) ، إذا كنت ترغب في مزامنة النظام الجديد مرة أخرى إلى المكان الأصلي أو شيء من هذا القبيل. و،
  • --exclude - لتخطي الدلائل / الملفات ، لحالات مثل نسخ / إنشاء نظام جديد إلى مكان جديد أثناء تخطي الدلائل الرئيسية للمستخدم إلخ (إما أنك تصعد المنازل من مكان آخر ، أو تنشئ مستخدمين جدد ، إلخ).

بالمناسبة ، إذا كنت مضطرًا إلى استخدام النوافذ ، فأنا استخدم rsync من cygwin للقيام بنسخ متكررة كبيرة ، بسبب رغبة المختبر قليلاً في الدماغ للبدء من البداية (على الرغم من أنني أجد Finder هو OS X أسوأ)


2
2018-03-19 23:53





رسينك

"يعتبر هذا النهج أفضل من استنساخ القرص مع dd   لأنه يسمح لحجم مختلف ، جدول الأقسام ونظام الملفات   لاستخدامها ، وأفضل من النسخ مع CP -A كذلك ، لأنه   يسمح بتحكم أكبر في أذونات الملفات ، والسمات ، والوصول   قوائم التحكم (ACLs) والسمات الموسعة. "

من عند:

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





كما ذكر في تعليقات juniorRubyist ، يجب أن يكون النهج المفضل هنا هو الاستخدام 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