প্রশ্ন ডিস্ক ক্লোনিং জন্য ডিডি ব্যবহার করে


ডিস্ক ক্লোনিং সরঞ্জাম এবং সম্পর্কিত অনেক প্রশ্ন আছে dd অন্তত একবার প্রস্তাব করা হয়েছে। আমি ইতিমধ্যে ব্যবহার বিবেচনা করা হয়েছে dd নিজেকে, প্রধানত কারণ ব্যবহারের সহজতা, এবং এটি বেশিরভাগ বুটেবল লিনাক্স ডিস্ট্রিবিউশনের উপর সহজেই উপলব্ধ।

ব্যবহার করার সেরা উপায় কি dd একটি ডিস্ক cloning জন্য? আমি দ্রুত গুগল অনুসন্ধান করেছি, এবং প্রথম ফলাফল একটি স্পষ্ট ছিল ব্যর্থ প্রচেষ্টা। আমি ব্যবহার করার পরে কিছু করতে হবে কি আছে dd, অর্থাত এমন কিছু আছে যা ব্যবহার করা যাবে না dd?


176
2018-05-05 18:21


উত্স


আমি জানি কিভাবে ডিডি কাজ করে, আমার প্রশ্নটি ডিএন সম্পর্কিত ক্লোনিং ডিস্কগুলির সাথে সম্পর্কিত কোন সমস্যাগুলির দিক থেকে আরও বেশি ছিল (লিঙ্ক অনুসারে বর্ণিত), সম্ভবত এটি খুব স্পষ্ট ছিল না। তার উত্তর কি এবং আপনার না "আমি কখনও এটি সঙ্গে কোন সমস্যা ছিল না"। আমি আপনার উত্তরটিও উত্থাপিত করেছি, যেমন আপনি স্পষ্টভাবে কিছু আকর্ষণীয় পয়েন্ট উপস্থাপন করেছেন (আমি কোন অগ্রগতি ইঙ্গিত সম্পর্কে এক পছন্দ করি)। - falstro
দেখে মনে হচ্ছে স্পলস্কি বাম্প পেয়েছে: joelonsoftware.com/items/2009/05/29.html - Kyle Cronin
যখন আমি জিজ্ঞাসা করেছি (এবং উত্তর দেওয়া হয়েছে) superuser একই প্রশ্ন - এখানে এই দেখতে না - superuser.com/questions/11453/... - warren
এটি জঘন্য যে জোয়েল এই প্রশ্নের সাথে সার্ভার-ফল্টের একটি ভাল উদাহরণ হিসাবে লিঙ্ক করেছিলেন, যদিও উত্তরগুলি কোনও ভাল ছিল না। অধিকার সঙ্গে 25 (মন্তব্য ছাড়া) মধ্যে এক উত্তর ছিল না dd খারাপ ব্লক skipping জন্য অপশন - পুনরুদ্ধারের জন্য ডিস্ক ক্লোন যখন অপরিহার্য যা। আমি একটি ভাল উত্তর যুক্ত করেছি, যা খারাপ ব্লকগুলির ডিস্ক ক্লোন করতে পারে: dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror - Sam Watkins
আমি ড্রাইভ জ্যামিতি নির্ভর ফাইল সিস্টেম সম্পর্কে কথা বলা এবং পুনঃস্থাপন অ অভিন্ন হার্ড ড্রাইভে সম্পন্ন হলে ডিডি পুনরুদ্ধার "ব্যর্থ" হতে পারে? আমি ডিডি পুনরুদ্ধারের কিছু ব্যর্থতা সম্মুখীন, এবং আমার মনে হয় এই ক্ষেত্রে আমার সমস্যা ছিল। - Marco


উত্তর:


ডিডি অবশ্যই সবচেয়ে ভাল ক্লোনিং টুল, এটি কেবল নিম্নলিখিত কমান্ড ব্যবহার করে 100% প্রতিলিপি তৈরি করবে। আমি একবার এটি সঙ্গে কোনো সমস্যা ছিল না।

dd if=/dev/sda of=/dev/sdb bs=32M

সচেতন হোন যে প্রতি বাইট ক্লোন করার সময়, আপনি এটি ব্যবহার করা হচ্ছে এমন একটি ড্রাইভে বা পার্টিশনে ব্যবহার করবেন না। বিশেষ করে ডেটাবেস মত অ্যাপ্লিকেশন এই খুব ভাল সঙ্গে সামলাতে পারে না এবং আপনি দূষিত তথ্য দিয়ে শেষ হতে পারে।


152
2018-05-05 18:31



অবশ্যই, যতক্ষণ / dev / sdb অন্তত বড় / dev / sda হিসাবে বড় হয় ... - Eddie
একটি "bs = 100m conv = notrunc" যোগ করুন এবং এটি আমার অভিজ্ঞতার মধ্যে আরও দ্রুত। - Tim Williscroft
শুধু 'আই' এবং 'ও' অক্ষরের সাথে খুব সতর্ক থাকুন ... - bandi
কেউই এই কৌশলটি জানেন না ... ডিডি একটি অসম্মতিপূর্ণ অনুলিপি প্রোগ্রাম, যার অর্থ এটি প্রথমে পড়বে, তারপর লিখুন, তারপর ফিরে যান। আপনি নিজেই পাইপ ডিডি করতে পারেন এবং এটি সমষ্টিগতভাবে অনুলিপি সম্পাদন করতে বাধ্য করতে পারেন, এটির মতো: dd if=/dev/sda | dd of=/dev/sdb। আমার পরীক্ষায়, পাইপ ছাড়া কমান্ড চালানো আমাকে ~ 112 কেবি / এস এর একটি থ্রুপুট দিয়েছে। পাইপ দিয়ে, আমি ~ 235kb / গুলি পেয়েছিলাম। আমি এই পদ্ধতির সঙ্গে কোনো সমস্যা সম্মুখীন না। গুড লাক! - Mistiry
@ মিস্টরি, যে শব্দটি সমার্থক শব্দ মানে না। - psusi


স্থান সংরক্ষণ করতে, আপনি gzip সহ dd দ্বারা উত্পাদিত ডেটা সঙ্কুচিত করতে পারেন, যেমন .:।

dd if=/dev/hdb | gzip -c  > /image.img

আপনি এর সাথে আপনার ডিস্ক পুনরুদ্ধার করতে পারেন:

gunzip -c /image.img.gz | dd of=/dev/hdb

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

mkdir /mnt/hdb
mount /dev/hdb /mnt/hdb
dd if=/dev/zero of=/mnt/hdb/zero

একটু অপেক্ষা করুন, ডিডি শেষ পর্যন্ত একটি "ডিস্ক পূর্ণ" বার্তা দিয়ে ব্যর্থ হবে, তারপর:

rm /mnt/hdb/zero
umount /mnt/hdb
dd if=/dev/hdb | gzip -c  > /image.img

এছাড়াও, আপনি এটির একটি ডিডি প্রক্রিয়া পটভূমিতে চলতে পারেন যাতে এটি মার্ট কমান্ডের সাথে একটি সংকেত পাঠিয়ে স্ট্যাটাসের প্রতিবেদন করতে পারে, যেমন।

dd if=/dev/hdb of=/image.img &
kill -SIGUSR1 1234

আপনার সিস্টেম পরীক্ষা করুন - উপরের কমান্ডটি লিনাক্স, ওএসএক্স এবং বিএসডি ডিডি কমান্ডগুলির জন্য গ্রহণ করা সংকেতগুলিতে ভিন্ন। (OSX ব্যবহার করে SIGINFO - আপনি প্রেস করতে পারেন জন্য ctrl+ +টি অবস্থা রিপোর্ট করতে)।


104
2018-05-06 22:47



এটি কি "আধুনিক" এর সাথে কাজ করে যেমন একটি বিটিআরএফএস, এনআইএলএফএস, [আপনি যা স্বপ্ন দেখাতে পারেন]? - Steve Schnepp
DD ব্লক ডিভাইসগুলিতে কাজ করে, ফাইল সিস্টেমের চেয়ে কম বিমূর্ততা স্তর, তাই এটি হওয়া উচিত। আমি আসলে এটি চেষ্টা করে না, যদিও। হুম, NILFS আকর্ষণীয় দেখায়, আমাকে এটার দিকে নজর দিতে হবে। - David Hicks
জন্য +1 kill -SIGUSR1 %1, এবং ওএসএক্স ডিডি কমান্ড আনন্দের সাথে SIGUSR1 গ্রহণ করে ... সুপার দরকারী, ধন্যবাদ! - stuartc
+1 জন্য Kill -SIGUSR1 1234 আমি যে খুঁজছেন ছিল। - hot2use
এটা করা উচিত: dd if=/dev/hdb | gzip -c > /image.img.gz ? - Mike Causer


সতর্কতা বিশেষ: একটি লাইভ ফাইল সিস্টেম dd'ing ফাইল দূষিত করতে পারেন। কারণটি সহজ, এটি চলতে পারে এমন ফাইল সিস্টেম ক্রিয়াকলাপের কোনও বোঝা নেই এবং এটি হ্রাস করার কোনও প্রচেষ্টা করে না। যদি একটি লেখা আংশিকভাবে চলছে, আপনি একটি আংশিক লেখা পাবেন। এটি সাধারণত জিনিসগুলির জন্য ভাল নয় এবং সাধারণত ডেটাবেসের জন্য মারাত্মক। উপরন্তু, আপনি টাইপ-প্রবণ আপ স্ক্রু আপ যদি এবং এর পরামিতি, আপনি দুর্ভোগ। অধিকাংশ ক্ষেত্রে, rsync আগমনের পরে লিখিত একটি সমান কার্যকর হাতিয়ার মাল্টিটাস্কিং, এবং পৃথক ফাইল সামঞ্জস্যপূর্ণ মতামত প্রদান করবে।

যাইহোক, ডিডি সঠিকভাবে একটি unmounted ড্রাইভ বিট রাষ্ট্র ক্যাপচার করা উচিত। বুটলোডার, ললিউম ভলিউম, পার্টিশন ইউআইআইডিএস এবং লেবেল ইত্যাদি। শুধু নিশ্চিত করুন যে আপনার বিটের জন্য লক্ষ্য ড্রাইভ বিট মিরর করার জন্য একটি ড্রাইভ রয়েছে।


37
2018-05-05 20:20



আমি যে সন্দেহ syncদুর্নীতি সমস্যা ফাইল উত্তর নেই। একটি deamon বা কিছু পরে আরো ফাইল লিখতে হলে কি হবে sync, সময় dd অপারেশন? - Deleted
প্রথমে ড্রাইভটি umount করা (অথবা কেবল-পঠনযোগ্য হিসাবে পুনরাবৃত্তি করা) এটি ভাল ধারণা কিন্তু এটি সর্বদা সম্ভব নয় - Alex Bolotov
কোন ক্ষেত্রে, আপনি rsync ব্যবহার করেন এবং ফাইলটি হ্যান্ডেল জাদুটিকে সামঞ্জস্যপূর্ণ ফাইল পেতে দেন এবং লেখার অনুলিপিগুলি অন্তর্মুখী লেখাকে হ্যান্ডেল করতে দেয়। - jldugger
আমি মাউন্ট করা ফাইল সিস্টেমে চলমান dd যুক্ত করতে চাই যে মাউন্ট করা ফাইল সিস্টেমে ফাইলগুলি সংশোধন করা হবে না, তবে এখানে অর্থ কী যে ফাইল সিস্টেমটির অনুলিপিটি অবশ্যই একটি পরিচিত ভাল অবস্থায় থাকবে। - 3molo
ব্যবহার rsync নিশ্চিত করবে যে অভ্যন্তরীণ তথ্য গন্তব্য ফাইল সিস্টেম সামঞ্জস্যপূর্ণ। এটা হবে না ফাইলগুলির তথ্য সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করুন - এটি করার জন্য, আপনাকে ফাইলগুলি লক করতে হবে এবং ফাইলগুলিতে যে কোনও প্রোগ্রামগুলি লিখতে হবে তা এই তালিকে সম্মান করতে হবে। - Martin Geisler


খারাপ সেক্টর ধারণ করতে পারে এমন একটি ডিস্ক ক্লোন করার জন্য ডিডি ব্যবহার করার সময়, "ত্রুটি = নোংরা, সিঙ্ক" ব্যবহার করুন যাতে এটি ত্রুটির মুখোমুখি হতে না পারে তা নিশ্চিত করতে এবং নল বাইটগুলির সাথে অনুপস্থিত ক্ষেত্রগুলিতে পূরণ হয়। একটি ব্যর্থ বা ব্যর্থ ডিস্ক থেকে পুনরুদ্ধার করার চেষ্টা করা হলে এটি প্রথম ধাপে নেওয়া হয় - কোন পুনরুদ্ধারের প্রচেষ্টা করার আগে একটি অনুলিপি পান এবং তারপরে ভাল (ক্লোন) ডিস্কের পুনরুদ্ধার করবেন। আমি কপি করা যায় না যে কোন ফাঁকা সেক্টর সঙ্গে সামলাতে পুনরুদ্ধারের হাতিয়ার এটি ছেড়ে।

এছাড়াও, আপনি ডি ডি গতিতে বিএস (ব্লক আকার) সেটিং দ্বারা প্রভাবিত হতে পারে। আমি সাধারণত bs = 32768 চেষ্টা করে দেখি, তবে আপনার নিজের সিস্টেমে এটি আপনার জন্য দ্রুততম কাজটি দেখতে পরীক্ষা করতে পারে। (এটি অনুমান করে যে আপনাকে অন্য কোনও কারণে একটি নির্দিষ্ট ব্লক সাইজ ব্যবহার করার প্রয়োজন নেই, উদাঃ যদি আপনি একটি টেপে লেখেন।)


26
2018-05-07 02:42



যদি আপনার খারাপ সেক্টরগুলির সাথে একটি ডিস্ক থাকে, তবে আপনাকে অবশ্যই dd পরিবর্তে 'ddrescue' ব্যবহার করতে হবে। এটি আরও দক্ষ, এবং আরো তথ্য পুনরুদ্ধারের জন্য আরো ভাল সুযোগ আছে। (Dd_rescue এর সাথে বিভ্রান্ত হবেন না যা ভাল নয়) - davr
খারাপ ব্লকগুলি বাদ দেওয়ার চেষ্টা করলে বড় আকারের ব্লক ব্যবহার করা উচিত নয়, বা এটি খুব বেশি ছাড়বে। 4096 যথেষ্ট বড়। - Sam Watkins


একটি ডিস্ক ক্লোন করতে, আপনাকে যা করতে হবে তা সত্যিই ডিডিতে ইনপুট এবং আউটপুট নির্দিষ্ট করে দিতে হবে:

dd if=/dev/hdb of=/image.img

অবশ্যই, আপনার / dev / hdb থেকে সরাসরি পড়ার জন্য যথাযথ অনুমতিগুলি নিশ্চিত করুন (আমি রুট হিসাবে চলমান সুপারিশ করব), এবং যে / dev / hdb মাউন্ট করা হয় না (আপনি ডিস্ক পরিবর্তন করার সময় অনুলিপি করতে চান না - শুধুমাত্র পাঠযোগ্য হিসাবে মাউন্ট করাও গ্রহণযোগ্য)। একবার সম্পন্ন হলে, image.img সমগ্র ডিস্কের একটি বাইট-ফর-বাইট ক্লোন হবে।

ক্লোন ডিস্কগুলিতে ডিডি ব্যবহার করার জন্য কয়েকটি ত্রুটি রয়েছে। প্রথমত, ডিডি আপনার সম্পূর্ণ ডিস্ক, এমনকি খালি স্থান অনুলিপি করবে এবং বড় ডিস্কে সম্পন্ন হলে এটি একটি অত্যন্ত বড় চিত্র ফাইল হতে পারে। দ্বিতীয়ত, ডিডি সম্পূর্ণরূপে কোন অগ্রগতি ইঙ্গিত দেয় না, যা হতাশাজনক হতে পারে কারণ অনুলিপিটি দীর্ঘ সময় নেয়। তৃতীয়, যদি আপনি এই ছবিটিকে অন্য ড্রাইভে অনুলিপি করেন (আবার, ডিডি ব্যবহার করে), তারা মূল ডিস্কের চেয়ে বড় বা বড় হতে হবে, তবুও আপনি লক্ষ্য ডিস্কে আপনার কাছে যেকোনো অতিরিক্ত স্থান ব্যবহার করতে পারবেন না। আপনার পার্টিশন পরিবর্তন করুন।

আপনি সরাসরি ডিস্ক-টু-ডিস্ক অনুলিপি করতে পারেন:

dd if=/dev/hdb of=/dev/hdc

কিন্তু আপনি এখনও বিনামূল্যে স্থান সম্পর্কিত উপরে সীমাবদ্ধতা সাপেক্ষে।

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

আমি এই সমস্যার সমাধান করার জন্য কিছু সময় ব্যয় করেছি (আমি টাস্ক সম্পন্ন করার পরে) এবং আমি একটি প্রোগ্রাম খুঁজে পেয়েছি ddrescue, যা সাইট অনুযায়ী, ডিডি মত কাজ করে কিন্তু এটি একটি ত্রুটি সম্মুখীন এমনকি পড়া চালিয়ে। আমি প্রোগ্রামটি আসলেই ব্যবহার করি নি, তবে এটি বিবেচনাযোগ্য, বিশেষ করে যদি আপনি যে ডিস্কটি অনুলিপি করছেন সেটি পুরানো হয়, যা সিস্টেমটি সূক্ষ্ম বলে মনে হলেও খারাপ সেক্টর থাকতে পারে।


17
2018-05-05 18:26



... ডিডি একেবারে কোন অগ্রগতি ইঙ্গিত প্রদান করে ... - ভাল এটি সত্য নয় - কীভাবে প্রগতি প্রদর্শন করতে হয় তা নিয়ে জটিল উপায় রয়েছে - আপনাকে ডিডি প্রক্রিয়াটির পিআইডি খুঁজে বের করতে হবে ('ps -a | grep dd') এবং তারপর এই প্রক্রিয়াটিতে সিগন্যাল ইউএসআর 1 পাঠান - 'kill -USR1 < dd_pid_here> '(ছাড়া <>) যা DD কে অগ্রগতি তথ্য প্রদর্শন করতে বাধ্য করে। - Michal Bernhard
"ডি ডি-তে অনেকগুলি সেক্টর যা ডিডি পড়তে পারেনি": আমি মনে করি conv=sync,noerror সাহায্য চাই. - Gauthier
দ্য conv=sync,noerror বিকল্পগুলি অপরিহার্য, তারা ডিডিগুলিকে খারাপ ব্লকগুলি এড়িয়ে যাওয়ার অনুমতি দেয় এবং চিত্রটিতে তাদের শূন্য করে দেয় যাতে জিনিস সঠিকভাবে সংলগ্ন হয়। যে সম্পর্কে খুব মন্তব্য যারা খুব অল্প লোকের জন্য Props। - Sam Watkins
গনুহ ddrescue কোন বিশেষ বিকল্প ছাড়াই অগ্রগতি সূচক সরবরাহ করে, এবং আপনি কপি বন্ধ করতে এবং যেখানে আপনি ছেড়ে দিয়ে পুনরায় শুরু করতে পারেন। - endolith
ডিডি সঙ্গে অগ্রগতি পেতে একটি কম চতুর উপায় বিকল্প যোগ করা হয় status=progress - James


সোর্স ড্রাইভ সব সময়ে ক্ষতিগ্রস্ত হয়, তাহলে, আপনি ব্যবহার করে আরো ভাগ্য থাকবে dd_rhelp সঙ্গে dd_rescue (আমার ব্যক্তিগত পছন্দ) অথবা জিএনইউ ddrescue

এই পিছনে কারণ যে, ত্রুটি পড়তে, dd চেষ্টা এবং চেষ্টা এবং চেষ্টা রাখে - সম্ভাব্য সময়সীমার জন্য একটি দীর্ঘ সময়ের জন্য অপেক্ষা করছে। dd_rescue স্মার্ট জিনিসগুলিকে একটি ত্রুটি পর্যন্ত পড়ার মতো করে, তারপর ডিস্কের উপর আরও একটি স্পট বাছাই করে এবং শেষ ত্রুটির দিকে পিছনে পড়া, এবং dd_rhelp মূলত একটি dd_rescueঅধিবেশন ম্যানেজার - চতুর শুরু এবং পুনরায় শুরু dd_rescue এটা আবার দ্রুত করতে রান।

শেষ ফলাফল dd_rhelp সর্বনিম্ন সময় উদ্ধার করা সর্বোচ্চ তথ্য। যদি তুমি ত্যাগ কর dd_rhelp চলমান, শেষ পর্যন্ত এটি ঠিক একই কাজ করে dd একই সময়. তবে, যদি dd আপনার 100 জিবি ডিস্কের বাইটি 100 এ ত্রুটিগুলি পড়ার সম্মুখীন হলে আপনাকে 9, 999, 9 00 বাইট * পুনরুদ্ধারের জন্য দীর্ঘ সময় অপেক্ষা করতে হবে। dd_rhelp+ +dd_rescue তথ্য দ্রুত পরিমাণে পুনরুদ্ধার করা হবে।


11
2018-05-31 02:12



কিছু dd_rescue এবং ddrescue এর মধ্যে নির্বাচন করতে সহায়তা করে: askubuntu.com/a/211579/50450 - Johann


উৎস ডিস্কের কোনো মাউন্ট করা ফাইল সিস্টেম থাকতে হবে না। ব্যবহারকারী হিসাবে ব্লক ডিভাইস (রুট কাজ) পড়তে সক্ষম হিসাবে, 'dd if = / dev / sda .... চালান।'

এখন, এখানে সুস্পষ্ট জিনিসগুলির মধ্যে একটি হল যে আপনি বাইটগুলির একটি স্ট্রিম তৈরি করছেন ... এবং আপনি এটি দিয়ে অনেক কিছু করতে পারেন: এটি সংক্ষেপে, নেটওয়ার্কটিকে এটি পাঠান, ছোট ব্লোবগুলিতে ছড়িয়ে দিন ইত্যাদি।

এই ক্ষেত্রে:

dd if=/dev/sda | ssh user@backupserver "cat > backup.img"

কিন্তু আরো শক্তিশালীভাবে:

dd if=/dev/sda | pv -c | gzip | ssh user@backupserver "split -b 2048m -d - backup-`hostname -s`.img.gz"

উপরে একটি রিমোট সিস্টেমে উৎস হার্ডড্রাইভের সংকুচিত চিত্রটি কপি করে, যেখানে এটি আপনাকে অগ্রগতিতে আপডেট রাখার সময় উৎস সার্ভার হোস্টের নাম ব্যবহার করে এটির সংখ্যাযুক্ত 2G অংশগুলিতে সঞ্চয় করে।

মনে রাখবেন যে ডিস্কের আকার, উৎসে সিপিইউ গতি, গন্তব্যস্থলের সিপিইউ গতি, নেটওয়ার্ক গতি ইত্যাদি নির্ভর করে আপনি কম্প্রেশন এড়িয়ে যেতে পারেন, অথবা রিমোট পার্শ্বে সংকোচন করতে পারেন, বা ssh এর কম্প্রেশন সক্ষম করতে পারেন।


7
2018-05-29 19:23



+1 জিপিপ মাধ্যমে পাইপ সময় এবং ব্যান্ডউইথ অনেক সংরক্ষণ করতে পারেন! - M. Dudley
আমার মনে রাখা উচিত যে dd কমান্ডে 'bs = 1m' যোগ করা সাধারণত গতি বৃদ্ধি করে। - retracile


একটি ডিস্ক ক্লোন করতে, আপনি সত্যিই করতে হবে ইনপুট এবং আউটপুট নির্দিষ্ট করতে হবে dd:

dd if=/dev/hdb of=hdb.img

অবশ্যই, আপনি সরাসরি থেকে পড়তে উপযুক্ত অনুমতি আছে তা নিশ্চিত করুন /dev/hdb (আমি রুট হিসাবে চলমান সুপারিশ চাই), এবং যে /dev/hdb মাউন্ট করা হয় না (ডিস্ক পরিবর্তন হচ্ছে যখন আপনি অনুলিপি করতে চান না)। একবার সম্পন্ন, hdb.img সম্পূর্ণ ডিস্ক একটি বাইট জন্য জন্য বাইট ক্লোন হবে।

ব্যবহার করার জন্য কয়েকটি ত্রুটি আছে dd ডিস্ক ক্লোন করতে। প্রথমত, dd আপনার সম্পূর্ণ ডিস্ক, এমনকি খালি স্থান অনুলিপি করা হবে, এবং একটি বড় ডিস্কে সম্পন্ন হলে এটি একটি অত্যন্ত বড় চিত্র ফাইল হতে পারে। দ্বিতীয়ত, dd সম্পূর্ণরূপে কোন অগ্রগতি ইঙ্গিত প্রদান করে, কপি দীর্ঘ সময় লাগে কারণ হতাশ হতে পারে। তৃতীয়, যদি আপনি এই ছবিটিকে অন্য ড্রাইভে অনুলিপি করেন (আবার, ডিডি ব্যবহার করে), তারা মূল ডিস্কের চেয়ে বড় বা বড় হতে হবে, তবুও আপনি লক্ষ্য ডিস্কে আপনার কাছে যেকোনো অতিরিক্ত স্থান ব্যবহার করতে পারবেন না। আপনার পার্টিশন পরিবর্তন করুন।

আপনি সরাসরি ডিস্ক-টু-ডিস্ক অনুলিপি করতে পারেন:

dd if=/dev/hdb of=/dev/hdc

কিন্তু আপনি এখনও বিনামূল্যে স্থান সম্পর্কিত উপরে সীমাবদ্ধতা সাপেক্ষে।

আপনি প্রথম অনুলিপিটি তৈরি করে ডাটাটি জিজিপি করে প্রথম ত্রুটিটি সমাধান করতে পারেন। উদাহরণ স্বরূপ:

dd if=/dev/hdb | gzip -9 > hdb.img.gz

দ্বিতীয় অপূর্ণতা পাইপউইউ ব্যবহার করে সমাধান করা যেতে পারে (pv) টুল. উদাহরণ স্বরূপ:

dd if=/dev/hdb | (pv -s `fdisk -l /dev/hdb | grep -o '[0-9]*\{1\} MB' | awk '{print $1}'`m) | cat > hdb.img

আমি তৃতীয় অপূর্ণতা পরাস্ত করার কোন উপায় জানি।

উপরন্তু, আপনি কপি সময় কপি আপ করতে পারেন dd তথ্য বৃহৎ অংশ সঙ্গে কাজ করতে। উদাহরণ স্বরূপ:

dd if=/dev/hdb of=hdb.img bs=1024

6
2018-05-29 22:03



আপনি তৃতীয় বিপত্তি অতিক্রম করার উপায় ইতিমধ্যেই জানিয়েছেন ... পার্টিশন পুনরায় আকার দিন। একটি পার্টিশন বর্ধন করা সাধারণত একটি নিরাপদ এবং দ্রুত ক্রিয়াকলাপ (সঙ্কুচিত বা চলন্ত বনাম, এটি ধীরে ধীরে এবং আরও বিপজ্জনক কারণ এটি প্রায় চলন্ত তথ্য সরানো হয়)। - davr
gzipping কিছু সময়ের জন্য ব্যবহৃত একটি ডিস্কের সাথে কাজ করবে না, কারণ এটি বর্তমান বা মুছে ফেলা ডেটা দিয়ে ভরা হবে। খালি স্থানটি শূন্য হয়ে গেলে জিজিপ শুধুমাত্র কাজ করবে, যা শুধুমাত্র একটি ব্র্যান্ড নতুন ডিস্কের ক্ষেত্রেই হবে। - Tozz
@ টোজঃ আপনি ফাইল সিস্টেমটিকে 0 এর ভরাট ফাইল দিয়ে ডিস্কে সিঙ্ক করে ফাইল ফাইলটি সংকুচিত করে তারপরে ফাইলটি মুছতে পারেন। dd if=/dev/zero bs=1M of=/balloon; sync; rm /balloon(ফাইল সিস্টেম স্তরে মডুলো অতিরিক্ত বুদ্ধিমত্তা।) - retracile


ডিডি এবং রেসকিউ ডিস্কের সাথে আপনি যা করতে পারেন তা আরেকটি চমৎকার জিনিস হল নেটওয়ার্ক থেকে তথ্য অনুলিপি করা:

remote_machine$ nc -l -p 12345

local_machine$ dd if=/dev/sda | nc remote_machine 12345

নেটওয়ার্ক স্থানীয় না হলে আপনি এই পাইপলাইনে উভয় জিপিপি রাখতে পারেন। অগ্রগতি জন্য, ব্যবহার করুন pv। অনুলিপি করার পরে local_machine এর netcat টিপুন, আপনি যোগ করতে পারেন -w 5 অথবা অন্যকিছু.


5
2018-05-29 18:09



এই পুরোপুরি সঠিক নয়। 'Remote_machine' কমান্ডটি যেমন কিছু হারিয়েছে > disk_backup.img অথবা |dd of=/dev/sdb অথবা অন্য কিছু, আপনি কি করতে চান তার উপর নির্ভর করে। আমি আপনি ডিস্ক ইমেজ stdout ডাম্প করতে চান না অনুমান করছি। - davr
এবং উভয় প্রান্তে gzip মধ্যে প্রেরিত তথ্য কমানোর কমানো। - 3molo


মনে রাখবেন যে ডিডি একটি করে তোলে সঠিক কপি, সব ফাঁকা স্থান সহ।

এর মানে:

  1. দ্বিতীয় ড্রাইভ অন্তত প্রথম হিসাবে বড় হতে হবে
  2. যদি দ্বিতীয় ড্রাইভ বড় হয়, অতিরিক্ত স্থান অপচয় করা হবে (ফাইল সিস্টেম করতে পারেন আপনার মন প্রসারিত করা হবে)
  3. উৎস ড্রাইভ পূর্ণ না হলে, ডিডি ফাঁকা স্থান অনুলিপি সময় প্রচুর বর্জ্য হবে।
  4. আপনি সম্পূর্ণ ড্রাইভ, অথবা এই ভাবে একটি একক পার্টিশন অনুলিপি করতে পারেন।
  5. এটি একটি বুটযোগ্য ড্রাইভ, আমি নিশ্চিত যে আপনি ডিডি ব্যবহার করার পরে বুটলোডার ইনস্টল করতে হবে

সাহায্যকারী যে আশা করি


4
2018-05-05 18:38



যদি আপনি সম্পূর্ণ হার্ড ডিস্ক ক্লোন করছেন তবে আপনি বুট লোডার ক্লোন করছেন। - Cristian Ciupitu
ভাল, শুধু আপনি, কিন্তু আপনি পার্টিশন / ডিস্ক ব্যবহার করা যাই হোক না কেন নিচে কপি করা Gparted ব্যবহার করতে পারে না- তারপর ডিডি ড্রপ? এটি একটি ইন্টিমেট ইমেজ এটি অনুমান করা উচিত এই সমস্যাটি হ্রাস করা উচিত। - bbqchickenrobot


ভবিষ্যতের রেফারেন্সের জন্য এটি চেক করার আগ্রহ হতে পারে ddrescue। এটা আমার দিন কয়েক বার সংরক্ষিত হয়েছে।


3
2018-05-06 21:06