এক ফাইল থেকে অন্য ড্রাইভে পুরো ফাইল সিস্টেমের ক্রমবিন্যাস অনুলিপি করুন


95

আমি সম্পূর্ণ ফাইল সিস্টেমের ক্রমক্রমটি এক ড্রাইভ থেকে অন্য ড্রাইভে অনুলিপি করতে চাই ... প্রতিটি ডিরেক্টরিতে থাকা সামগ্রীর পাশাপাশি লিনাক্স প্ল্যাটফর্মে নিয়মিত ফাইল। সম্ভবত লিনাক্স অন্তর্নির্মিত ফাংশনগুলির সাথে এটি করার সর্বোত্তম উপায়টি জানার জন্য কৃতজ্ঞ হবে। ফাইল সিস্টেমটি একটি অতিরিক্ত পরিবার ext


1
উম্ম ... ভালবাসা কই dd? dd if=/dev/sda1 of=/dev/sdb1 bs=4096
জুনিয়ররবিস্ট

@ জুনিয়ররুবিস্ট +1 এর জন্য d আমি সর্বদা এটি ব্যবহার করি তবে কোন পতাকা ব্যবহার করতে হবে? আমি ব্যবহার conv=notrunc,noerror,sync
বেনিবেলা

-1 জন্য dd2 কারণে: প্রথমত এটি একটি খারাপ ধারণা একটি ফাইল সিস্টেম যে মাউন্ট করা হয় একটি ব্লক-স্তরের অনুলিপি (যা কেনার ক্ষেত্রে দেখা যায় সঞ্চালন করতে /) এবং দ্বিতীয়ত ddতথ্য কপি করা হবে না উত্স মত ফাইলসিস্টেম মধ্যে মাউন্ট থেকে /bootএবং /home
এরিক

উত্তর:


33

আমি প্রায়শই ব্যবহার করি

> cp -ax / /mnt

অনুমান / mnt হ'ল নতুন ডিস্ক / mnt উপর মাউন্ট করা হয় এবং / এ অন্য কোনও মাউন্ট নেই।

-x এটিকে একটি ফাইল সিস্টেমে রাখে।

অবশ্যই এটি রুট হিসাবে বা sudo ব্যবহার করে করা উচিত।

এই লিঙ্কটিতে উপরের একটি সহ কিছু বিকল্প রয়েছে

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


যখন এই মৃত পুরাতন উত্তর এটি এখনও টুকুনি আপনি সাধারণত যে সব উপাদান উপস্থাপন কপি করতে চাই না /, ব্যতীত অর্থাত /dev, /sys, /procইত্যাদি অতএব জারি আগে cpআমি ভাল পন্থা অনুসন্ধানের জন্য পরামর্শ দিই (এছাড়াও rsync ব্যবহার করে)
মার্সিন Orlowski

2
@ মারকিনআরোলোস্কি ওল্ফজেএম-এর -xপতাকা ব্যবহারের অর্থ হল আপনার উল্লেখ করা সিন্থেটিক ফাইল সিস্টেমগুলি অনুলিপি করা হবে না।
জিম এল।

192

আপনি যা চান তা আরএসসিএনসি

এই কমান্ডটি কোনও ফোল্ডার সিঙ্ক্রোনাইজ করতে, এবং অর্ধেক পথ বাতিল হয়ে গেলে অনুলিপি পুনরায় শুরু করতে ব্যবহার করা যেতে পারে। একটি ডিস্ক অনুলিপি করার আদেশটি হ'ল:

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)) যুক্ত করুন, ফাইলের ডেল্টা / ডিফগুলি গণনা এড়াতে। এটি যখন ডিফল্ট তখন উত্স এবং গন্তব্য উভয়ই স্থানীয় পাথ হিসাবে নির্দিষ্ট করা হয়, যেহেতু আরএসইএনসি-র ডেল্টা-ট্রান্সফার অ্যালগরিদমের আসল সুবিধা নেটওয়ার্কের ব্যবহার হ্রাস করে।

--numeric-idsব্যবহারকারী / গোষ্ঠীর নাম অনুসারে uid / gid মানগুলি এড়াতে যুক্ত করার বিষয়টি বিবেচনা করুন ।


1
জিনিয়াস, আপনাকে ধন্যবাদ। বিটিডব্লিউ, আমি ব্যবহার শেষ করেছি rsync -avxHAWX --numeric-ids --progress / mnt/কিন্তু আমার করা উচিত ছিল rsync -avxHAWX --numeric-ids --progress / mnt/ > ~/rsync.out। আমার সন্দেহ হয় টার্মিনালে আউটপুট pourালাই প্রক্রিয়াটি ধীর করে দিয়েছে। : ডি
ক্রিস কে

28
--info=progress2পরিবর্তে --progressবৃহত স্থানান্তরগুলির জন্য দরকারী, এটি সামগ্রিক অগ্রগতি দেয়, পরিবর্তে পৃথক ফাইলগুলি (লক্ষ লক্ষ লাইন)।
ফ্লোরিয়ান

3
আমাকে প্রতিস্থাপন করতে হয়েছিল Xএবং এর Aসাথে ছিল E, কারণ বর্ধিত বৈশিষ্ট্য এবং এসিএলগুলি Eআমার ম্যাকের দ্বারা আচ্ছাদিত । পরীক্ষিত:rsync version 2.6.9 protocol version 29
জোনাথন কোমার

1
এছাড়াও > ~/rsync.out, 2> ~/rsync.errপৃথক ফাইলে কোনও ত্রুটি সংরক্ষণ করবে।
আনিল

2
তোমাদের পরিবর্তে অন্য ফোল্ডার থেকে চেয়ে অনুলিপি থাকেন /: লক্ষ করুন যে, সোর্স ডিরেক্টরিতে উপর একটি trailing স্ল্যাশ থাকার (অথবা না) একটি পার্থক্য তোলে rsync source/ dest/ভিতরে কপি সবকিছু source/করতে dest/, যখন rsync source dest/কপি ফোল্ডারের sourceএবং সবকিছু ভিতরে প্রবেশ dest/
আধা-বহিরাগত

45

মাইকেল অ্যারন সাফিয়ানের উত্তর বিচ্ছিন্ন ফাইলগুলির জন্য অ্যাকাউন্ট করে না। -Sবিকল্প এটি স্থির করে।

এছাড়াও এই রূপটি প্রতিটি ফাইলের অগ্রগতির সাথে স্প্যাম করে না এবং ডেল্টা সিঙ্কিং করে না যা নন-নেটওয়ার্ক ক্ষেত্রে কার্য সম্পাদন করে।

এক স্থানীয় ড্রাইভ থেকে অন্য স্থানীয় ড্রাইভে ফাইল সিস্টেম অনুলিপি করার জন্য উপযুক্ত।

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

1
অ্যামেজিং। এটি সত্যিই একটি ভাল কাজ করছে
গিল্ডাস

1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, দুর্দান্ত কাজ করে। উদাহরণ55,431,669,792 57% 97.47MB/s 0:06:56 xfr#2888, ir-chk=5593/8534)
4:11

1
<3 এটি নিখুঁত
টিম স্ট্রিজডহর্স্ট

6

অন্য এক ড্রাইভ থেকে একটি এক শট স্থানীয় অনুলিপি জন্য, আমি অনুমান CP এখানে উপরে Wolfmann দ্বারা বর্ণিত যথেষ্ট।

উদাহরণস্বরূপ স্থানীয় বা রিমোট ব্যাকআপের মতো বড় কাজের জন্য, সেরাটি হল rsync

অবশ্যই, আরএসএনসি ব্যবহারের ক্ষেত্রে উল্লেখযোগ্যভাবে জটিল।

আরএসসিএন কেন:

  • এটি আপনাকে কপি থেকে কিছু ডিরেক্টরি বাদ দেওয়ার জন্য উদাহরণস্বরূপ (যেমন / প্রোকে বাদ দিয়ে) অনেকগুলি বিকল্প সহ বি ড্রাইভ করতে আপনার ড্রাইভ A এর সমস্ত বা অংশ কপির (সিঙ্ক্রোনাইজড কপি) করতে দেয়।

  • আর একটি বড় সুবিধা হ'ল এই নেটিভ সরঞ্জামটি ফাইল স্থানান্তর পর্যবেক্ষণ করে: উদাহরণস্বরূপ বিশাল স্থানান্তরগুলির জন্য, যদি সংযোগটি বাধাগ্রস্ত হয় তবে তা ব্রেকপয়েন্ট থেকে অবিরত থাকবে।

  • এবং সর্বশেষে তবে সর্বনিম্ন নয়, আরএসসিএনএইচ সংযোগ ব্যবহার করে, তাই এটি আপনাকে রিমোট সিঙ্ক্রোনাইজড সুরক্ষিত "অনুলিপিগুলি" অর্জন করতে দেয়। করার জন্য একটি চেহারা আছে man পৃষ্ঠা সেইসাথে কিছু উদাহরণ এর জন্য এখানে


4

মাইকেল সাফিয়ান উপরের পরামর্শ মতো, আমি rsyncএই উদ্দেশ্যে ব্যবহার করেছি । আপনি সম্ভবত অনুলিপি করতে চান না এমন ডিরেক্টরিগুলি বাদ দেওয়ার জন্য কিছু অতিরিক্ত বিকল্প ব্যবহার করার পরামর্শ দিচ্ছি।

এই সংস্করণটি জিনোম এবং ডেবিয়ান / উবুন্টু-ভিত্তিক সিস্টেমগুলির জন্য মোটামুটি নির্দিষ্ট, কারণ এতে ব্যবহারকারীর হোম ডিরেক্টরিগুলির উপ-ডিরেক্টরিগুলি জিনোমের সাথে নির্দিষ্ট রয়েছে, পাশাপাশি এপিটি প্যাকেজ ক্যাশে।

শেষ লাইনটি ক্যাশে / ক্যাশে / .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

2

আরএসসিএন থ্রেডে দুটি দরকারী বিট যুক্ত করা: সাইফার পরিবর্তন করা এবং ব্যবহার করে --update:

ওল্ফম্যানের পোস্ট অনুসারে, cp -axমার্জিত এবং স্থানীয় স্টাফের জন্য দুর্দান্ত।

তবে, rsyncদুর্দান্ত। মাইকেল এর উত্তর পুনরায় -W, সাইফার পরিবর্তন জিনিস দ্রুত করতে পারে (যদিও কোনও সুরক্ষা জড়িত উপর পড়ুন)।

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

নেই কিছু আলোচনা (এবং benchmarks) একটি মন্থর CPU- র প্রকৃত বোতলের হচ্ছে জায়গা প্রায়, কিন্তু এটা আমাকে সাহায্য করতে যখন মেশিন অন্যান্য সমবর্তী জিনিসগুলি আপ লোড হয় মনে হচ্ছে না।

এর মতো বৃহত, পুনরাবৃত্ত অনুলিপিতে আরএসসিএনসি ব্যবহারের অন্য একটি বড় কারণ হ'ল -উ সুইচ (বা - আপডেট ) এর কারণে। অনুলিপিটির সময় যদি কোনও সমস্যা হয়, আপনি এটি ঠিক করতে পারেন, এবং আরএসসিএনসি যেখানে ছেড়ে গিয়েছিল তা বেছে নেবে (আমার মনে হয় না স্কিপ এটি আছে)। স্থানীয়ভাবে এটি করা, সিপিতে একটি-সুইচও রয়েছে।

(আমি - আপডেট এবং - পুরো ফাইলের একত্রে কী বোঝাতে চাই তা নিশ্চিত নই, তবে তারা সর্বদা এই ধরণের টাস্কে আমার পক্ষে সংবেদনশীলভাবে কাজ করে বলে মনে হয়)

আমি বুঝতে পারি এটি আরএসসিএন এর বৈশিষ্ট্যগুলি সম্পর্কে কোনও থ্রেড নয়, তবে এর জন্য আমি ব্যবহার করা বেশিরভাগ সাধারণ:

  • --ডিলেট-পরে ইত্যাদি (মাইকেল যেমন ফলো-আপে উল্লিখিত হয়েছে), আপনি যদি নতুন সিস্টেমটিকে মূল জায়গায় বা এর মতো কিছুতে সিঙ্ক করতে চান। এবং,
  • --excolve - ডিরেক্টরি / ফাইলগুলি এড়িয়ে যাওয়ার জন্য যেমন কোনও স্থানে নতুন সিস্টেম অনুলিপি করা / নতুন সিস্টেম তৈরি করা যেমন ব্যবহারকারীর হোম ডিরেক্টরিগুলি ইত্যাদি বাদ দেওয়া (আপনি অন্য কোথাও থেকে বাড়িগুলি মাউন্ট করছেন, অথবা নতুন ব্যবহারকারী তৈরি করছেন ইত্যাদি)।

ঘটনাক্রমে, যদি আমাকে কখনও উইন্ডোজ ব্যবহার করতে হয় তবে আমি সাইগউইন থেকে বৃহত্তর পুনরাবৃত্তির অনুলিপিগুলি ব্যবহার করার জন্য আরএসসিএনসি ব্যবহার করি কারণ এক্সপ্লোরারের সামান্য ব্রেইন-ডেড শুরু থেকেই শুরু করতে চেয়েছিল (যদিও আমি খুঁজে পেয়েছি যে ওএস এক্স আরও খারাপ)


2

rsync

"এই পদ্ধতির ডিডির সাথে ডিস্ক ক্লোনিংয়ের চেয়ে ভাল বলে বিবেচিত হয় যেহেতু এটি একটি পৃথক আকার, পার্টিশন টেবিল এবং ফাইল সিস্টেম ব্যবহার করার অনুমতি দেয় এবং সিপি-এ-র সাথে অনুলিপি করার চেয়েও ভাল, কারণ এটি ফাইল অনুমতি, বৈশিষ্ট্যগুলির উপর আরও বেশি নিয়ন্ত্রণের অনুমতি দেয় , অ্যাক্সেস কন্ট্রোল তালিকাগুলি (এসিএল) এবং বর্ধিত বৈশিষ্ট্য ""

থেকে:

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

ম্যান পেজ এখানে


2

জুনিয়ররুবিস্টের মন্তব্যে যেমন উল্লেখ করা হয়েছে, এখানে পছন্দসই পদ্ধতির ব্যবহার হওয়া উচিত 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

dd2 কারণে খুব খারাপ ধারণা: প্রথমত মাউন্ট করা ফাইল সিস্টেমের একটি ব্লক-স্তরের অনুলিপি সম্পাদন করা (যার ক্ষেত্রে এটি হয় /) লক্ষ্যযুক্ত ফাইল সিস্টেম ত্রুটির ফলে আরও বেশি ফলাফল ddঘটবে এবং দ্বিতীয়ত, মাউন্ট করা উত্সগুলি থেকে ডেটা অনুলিপি করা হবে না ফাইল সিস্টেমের মত /bootএবং /home। আপনার লিঙ্কটি ডিস্ক ক্লোনিংয়ের জন্য বৈধ, "ফাইলের স্তরক্রম" ক্লোনিংয়ের জন্য নয়
এরিক

1

'ডিডি' দুর্দান্ত, তবে ddrescue (অ্যাপ্লিকেশন gddrescue ইনস্টল) আরও ভাল। যদি ডিডি বাধা পায়, পুনরায় চালু করার উপায় নেই (আরএসসিএনসি ব্যবহারের আরও একটি ভাল কারণ)। আপনি যখন লগফাইলে ddrescue ব্যবহার করেন, এটি কোন ব্লক অনুলিপি করেছে তা ট্র্যাক করে।

ডুয়াল বুট উইন্ডোজ / লিনাক্স সিস্টেমের ব্যাক আপ করার সময় আমি উইন্ডোজ পার্টিশনের জন্য এনটিএফএসক্লোন এবং লিনাক্স পার্টিশনের জন্য ডিডিএসকিউ এবং এমবিআর এর জন্য ডিডি ব্যবহার করি। (আমি জিপিটি / ইউইএফআই ব্যবহার করে দ্বৈত বুট সিস্টেমটি ব্যাক আপ করার চেষ্টা করিনি))

আমি যা দেখতে পছন্দ করি তা হ'ল একটি ডিড্রেসকিউ সরঞ্জাম যা এনটিএফএসক্লোন জাতীয় ফাইল তৈরি করতে পারে যেখানে নিয়ন্ত্রণের অক্ষর দ্বারা অযাচিত স্থান চিহ্নিত করা হয়। এটি চিত্রটিকে সরাসরি মাউন্ট করার যোগ্য করে তোলে না, তবে এটি কেবল থাকা ডেটার মতোই বড় হতে দেয়।

কেউ দয়া করে ddrescue জন্য ntfsclone "বিশেষ চিত্র ফর্ম্যাট" নিয়ে আসুন ...


0

rsync উপরে বর্ণিত হিসাবে নিখুঁত সমাধান।

যদি কোনও ডকার ডিভাইসমেপার ভলিউম বা অনুলিপি করার অনুরূপ থাকে তবে আমি কেবল -S" স্পর্শ ফাইলগুলি দক্ষতার সাথে পরিচালনা করতে" যুক্ত করব ।


0

আমি এখানে প্রস্তাবিত আরএসআইএনসি কমান্ড চেষ্টা করেছিলাম তবে শেষ পর্যন্ত আমি আরও পরিষ্কার এবং দ্রুত ফলাফল পেয়েছি partclone। উত্স এবং লক্ষ্য পার্টিশন আনমাউন্ট করুন এবং তারপরে নিম্নলিখিতগুলি চালান:

partclone.ext4 -b -s /dev/sd(source) -o /dev/sd(target)
e2fsck -f /dev/sd(target)
resize2fs /dev/sd(target)

এটি নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করে:

  1. পার্টিশনটি ক্লোন করুন (কেবলমাত্র ব্যবহৃত অংশগুলি)
  2. ফাইল সিস্টেমটি ঠিক আছে কিনা তা নিশ্চিত করুন (আকার পরিবর্তন 2fs এই পদক্ষেপটি প্রয়োগ করে)
  3. পার্টিশনটি নতুন ফাইল সিস্টেমে পুনরায় আকার দিন

লক্ষ্য পার্টিশনটি উত্সের চেয়ে একই আকার বা বড় ক্ষেত্রে উপরের কাজ করে above যদি আপনার লক্ষ্য উত্সের চেয়ে ছোট হয় (তবে সমস্ত ডেটা ফিট করে) তবে নিম্নলিখিতগুলি করুন:

e2fsck -f /dev/sd(target)
resize2fs -M /dev/sd(target)
partclone.ext4 -b -s /dev/sd(source) -o /dev/sd(target)
resize2fs /dev/sd(target)

resize2fs -M ডেটা ক্লোন করার আগে ফাইল সিস্টেমটিকে সর্বনিম্ন আকারে সঙ্কুচিত করে।

নোট করুন যে partcloneবেশিরভাগ সিস্টেমে ডিফল্টরূপে ইনস্টল করা হয় না। ক্লোনজিলার মতো লাইভ ডিস্ট্রো ব্যবহার করুন বা আপনার ডিস্ট্রো প্যাকেট ম্যানেজার থেকে পার্টক্লোন ইনস্টল apt-get install partcloneকরুন ( ডেবিয়ান ভিত্তিক সিটসেমগুলিতে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.