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


182

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

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


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

1
দেখে মনে হচ্ছে আপনি স্পলস্কি
কাইল ক্রোনিন

আমি সুপার ्यु
ওয়ারেন

3
এটি হাস্যকর যে জোল এই প্রশ্নের সাথে সার্ভার-ফল্টের একটি ভাল উদাহরণ হিসাবে যুক্ত হয়েছে, যদিও উত্তরগুলির কোনওটিই ভাল ছিল না। ddখারাপ ব্লকগুলি এড়িয়ে যাওয়ার জন্য সঠিক বিকল্পগুলির সাথে 25 টি (মন্তব্য ব্যতীত) এর মধ্যে একটিও উত্তর ছিল না - যা পুনরুদ্ধারের জন্য ডিস্ক ক্লোনিং করার সময় প্রয়োজনীয়। আমি আরও ভাল উত্তর যুক্ত করেছি, যা খারাপ ব্লকযুক্ত ডিস্কগুলি ক্লোন করতে পারে:dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror
স্যাম ওয়াটকিন্স

আমি মনে করি ডিডি পুনরুদ্ধার "ব্যর্থ" হতে পারে যদি ড্রাইভ জ্যামিতি নির্ভর ফাইল সিস্টেমের কথা বলি এবং পুনরুদ্ধার অ অভিন্ন অভিন্ন ড্রাইভগুলিতে করা হয়? আমি ডিডি পুনরুদ্ধারের ক্ষেত্রে কিছু ব্যর্থতা অনুভব করেছি এবং আমি মনে করি এটি আমার ক্ষেত্রে সমস্যা ছিল।
মার্কো

উত্তর:


160

ডিডি অবশ্যই সেরা ক্লোনিং সরঞ্জাম, এটি নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি 100% প্রতিলিপি তৈরি করবে। আমি এর সাথে একবারও কোনও সমস্যা করি নি।

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

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


12
অবশ্যই, যতক্ষণ না / দেব / এসডিবি কমপক্ষে / দেব / এসডিএর মতো বড় ...
এডি

22
একটি "বিএস = 100 এম কৌন = notrunc" যুক্ত করুন এবং এটি আমার অভিজ্ঞতার চেয়ে দ্রুত।
টিম উইলিসক্রফ্ট

127
কেবল 'আমি' এবং 'ও' চিঠিগুলি সম্পর্কে খুব সাবধানতা অবলম্বন করুন ...
বান্ডি

17
কেউ এই কৌশলটি জানেন না বলে মনে হয় ... ডিডি হ'ল অসম্পূর্ণ কপি করার প্রোগ্রাম, যার অর্থ এটি প্রথমে পড়বে, তারপরে লিখবে, তারপরে ফিরে আসবে। আপনি নিজেই নল DD করতে পারেন এবং এই মত, নিয়মনিষ্ঠভাবে কপি সম্পাদন করতে এটা ফোর্স: dd if=/dev/sda | dd of=/dev/sdb। আমার পরীক্ষাগুলিতে পাইপ ছাড়াই কমান্ড চালানো আমাকে 112kb / s এর মাধ্যমে একটি আউটপুট দেয়। পাইপ সহ, আমি 235kb / s পেয়েছি। আমি এই পদ্ধতিটি নিয়ে কোনও সমস্যা কখনওই অনুভব করিনি। শুভকামনা!
বিদ্রূপ

13
@ মিস্ট্রি, এটি প্রতিসম শব্দটির অর্থ নয় not
psusi

113

স্থান বাঁচাতে, আপনি জিডিপ দিয়ে ডিডি দ্বারা উত্পাদিত ডেটা সংকোচিত করতে পারেন, যেমন:

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

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


2
এটি কি এই জাতীয় বিটিআরএফএস, এনআইএলএফএস, [আপনি যা স্বপ্ন দেখতে পারেন]] "আধুনিক" এর সাথেও কাজ করে?
স্টিভ স্নেপ

ডিডি ব্লক ডিভাইসগুলিতে কাজ করে, ফাইল সিস্টেমের চেয়ে বিমূর্ততার স্তর কম, তাই এটি হওয়া উচিত, হ্যাঁ। যদিও আমি আসলে এটি চেষ্টা করে দেখিনি। হুম, এনআইএলএফএস আকর্ষণীয় দেখাচ্ছে, আমাকে সেদিকে একবার নজর দিতে হবে।
ডেভিড হিকস

4
+1 এর জন্য kill -SIGUSR1 %1, এবং ওএসএক্স ডিডি কমান্ড সুখের সাথে SIGUSR1 গ্রহণ করে ... সুপার দরকারী, ধন্যবাদ!
stuartc

1
Kill -SIGUSR1 1234আমি এটি খুঁজছিলাম জন্য +1 ।
হট

2
এটা হওয়া উচিত: dd if=/dev/hdb | gzip -c > /image.img.gz?
মাইক কৌজার 10 ই

37

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

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


7
আমি সন্দেহ করি যে syncএটি ফাইল দুর্নীতির সমস্যার উত্তর নয়। অপারেশন syncচলাকালীন কোনও ডিমন বা অন্য কিছু পরে আরও ফাইল লিখলে কী হবে dd?
মুছে ফেলা হয়েছে

5
প্রথমে ড্রাইভটি আনমাউন্ট করা ভাল ধারণা (বা কেবল পঠনযোগ্য হিসাবে পুনঃনির্মাণ) তবে এটি সর্বদা সম্ভব নয়
অ্যালেক্স বলোটভ

1
কোন ক্ষেত্রে, আপনি আরএসইএনসি ব্যবহার করুন এবং এটি একটি সামঞ্জস্যপূর্ণ ফাইল পেতে ফাইল হ্যান্ডেল যাদু করতে দিন এবং লেখার অনুলিপি লিখুন আগত লেখাগুলি হ্যান্ডেল করুন।
jldugger

4
আমি যুক্ত করতে চাই যে মাউন্ট করা ফাইল সিস্টেমে চলমান ডিডিটি মাউন্ট করা ফাইল সিস্টেমে থাকা ফাইলগুলিকে সংশোধন করবে না, তবে এখানে বোঝানো যা ফাইল সিস্টেমের অনুলিপি অগত্যা একটি ভাল ভাল অবস্থানে থাকবে।
3molo

1
ব্যবহার rsyncনিশ্চিত করবে গন্তব্য ফাইল সিস্টেমের অভ্যন্তরীণ ডেটা সামঞ্জস্যপূর্ণ। এটি ফাইলগুলির ডেটা সুসংগত কিনা তা নিশ্চিত করে না - এটি করার জন্য আপনাকে ফাইলগুলি লক করতে হবে এবং যে সমস্ত প্রোগ্রাম ফাইলগুলিতে লিখিত থাকে তাদের এই লকগুলি সম্মান করতে হবে।
মার্টিন গিসলার

26

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

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


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

3
খারাপ ব্লকগুলি এড়িয়ে যাওয়ার চেষ্টা করা হলে একটি বৃহত ব্লক আকার ব্যবহার করা উচিত নয়, বা এটি খুব বেশি এড়িয়ে যাবে। 4096 যথেষ্ট বড়।
স্যাম ওয়াটকিন্স

17

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

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

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

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

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

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

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

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

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


7
... ডিডি একেবারে কোনও অগ্রগতির ইঙ্গিত দেয় না ... - তবে এটি সত্য নয় - প্রগতিটি কীভাবে দেখানো যায় তা কৌশলপূর্ণ উপায় রয়েছে - আপনাকে ডিডি প্রক্রিয়াটির পিড খুঁজে বের করতে হবে ('পিএস-এ | গ্রেপ ডিডি') এবং তারপরে এই প্রক্রিয়াতে সংকেত ইউএসআর 1 প্রেরণ করুন - 'কিল-ইউএসআর 1 <ডিডি_পিড_এইর>' (<> ছাড়াই) যা ডিডিটিকে প্রগতি সম্পর্কিত তথ্য প্রদর্শন করতে বাধ্য করে।
মিশাল বার্নহার্ড

4
"ডিস্কের কয়েকটি সেক্টর যা ডিডি পড়তে পারে না": আমি মনে করি এটি conv=sync,noerrorসাহায্য করবে।
গৌথিয়ার

2
conv=sync,noerrorঅপশন অপরিহার্য, তারা খারাপ ব্লক এড়িয়ে যান এবং চিত্রের তাদের শূন্য তাই কিছু সঠিকভাবে প্রান্তিককৃত হয় dd অনুমতি। খুব কম লোকের কাছে প্রপস যারা এই সম্পর্কে কিছু মন্তব্য করেছিলেন।
স্যাম ওয়াটকিন্স

1
GNU ddrescueকোনও বিশেষ বিকল্প ছাড়াই অগ্রগতি সূচক সরবরাহ করে এবং আপনি অনুলিপিটি বন্ধ করতে এবং আপনি যেখানে রেখেছিলেন সেখান থেকে আবার শুরু করতে পারেন।
এন্ডোলিথ

2
ডিডির সাথে অগ্রগতি লাভের একটি কম status=progress
জেমস

11

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

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

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


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

7

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

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

এই ক্ষেত্রে:

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"

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

নোট করুন যে ডিস্কের আকারের উপর নির্ভর করে, উত্স অনুসারে সিপিইউর গতি, গন্তব্যস্থলে সিপিইউর গতিবেগ, নেটওয়ার্কের গতি ইত্যাদি comp


+1 জিজিপ দিয়ে পাইপিং করাতে অনেক সময় এবং ব্যান্ডউইথের সাশ্রয় হয়!
এম ডুডলি

আমার আরও খেয়াল করা উচিত যে dd কমান্ডে 'bs = 1M' যুক্ত করা গতিবেগকে বেশ উন্নত করে।
পুনরায় প্রত্যাহার করুন

6

ডিস্কটি ক্লোন করতে, আপনাকে যা করতে হবে তা হ'ল ইনপুট এবং আউটপুট নির্দিষ্ট করে 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

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

জিজিপিং কোনও ডিস্কের সাথে কাজ করবে না যা কিছু সময়ের জন্য ব্যবহৃত হয়েছিল, কারণ এটি বর্তমান বা মুছে ফেলা ডেটা দিয়ে পূর্ণ হবে। gzip কেবল তখনই কাজ করবে যদি খালি স্থানটি শূন্য হয়, যা কেবলমাত্র একটি নতুন ডিস্কের ক্ষেত্রে।
তোজ

3
@ টোজ: আপনি 0 টি ভরা ফাইলটিকে ফাইল সিস্টেমটি পূরণ করে, ডিস্কে সিঙ্ক করে এবং তারপরে মুছে ফেলা করে একটি ফাইল সিস্টেমের চিত্রের সংকোচনের উন্নতি করতে পারেন। dd if=/dev/zero bs=1M of=/balloon; sync; rm /balloon (ফাইল সিস্টেমের স্তরের অতিরিক্ত
বুদ্ধিগুলি মডুলো

5

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

remote_machine$ nc -l -p 12345

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

নেটওয়ার্কটি স্থানীয় না থাকলে আপনি এই দুটি পাইপলাইনে জিজপ আটকে রাখতে পারেন। অগ্রগতির জন্য, ব্যবহার করুন pv। স্থানীয়_ম্যাচিনের নেটক্যাটটি অনুলিপি করার পরে ছেড়ে দিতে, আপনি হয়ত -w 5কিছু যুক্ত করতে পারেন।


9
এই পুরোপুরি সঠিক নয়। 'রিমোট_ম্যাচাইন' কমান্ডটি আপনি কী করতে চান তার উপর নির্ভর করে কিছু বা যেমন > disk_backup.imgবা |dd of=/dev/sdbঅন্য কিছু অনুপস্থিত রয়েছে । আমি অনুমান করছি আপনি কোনও ডিস্ক চিত্রকে স্টাডাউটে ডাম্প করতে চান না।
ডেভার

1
প্রেরিত ডেটা আরও নূন্যতম করতে উভয় প্রান্তে জিজপ নিক্ষেপ করুন।
3molo

4

মনে রাখবেন যে ডিডি সমস্ত ফাঁকা জায়গা সহ একটি সঠিক অনুলিপি তৈরি করে।

এর মানে:

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

আশা করি এটি সহায়ক


8
আপনি যদি পুরো হার্ড ডিস্কটি ক্লোনিং করে থাকেন তবে আপনি বুট লোডারকেও ক্লোনিং করছেন।
ক্রিশ্চিয়ান সিউপিতু

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


3

আর একটি দুর্দান্ত বৈশিষ্ট্য হ'ল এমবিআর, বিভাজন সারণী এবং বুট রেকর্ডগুলি অনুলিপি করা।

মাত্র

dd if=/dev/sda of=parttable bs=512 count=1

এবং আপনি যখন এটি লিখছেন তখন চারদিকে অন্য দিক। fdiskপরে পোলিশ ।

আপনার পার্টিশনের টেবিলটি ব্যাক আপ করার পরে আপনি আরও বেশি সুরক্ষিত বোধ করবেন।

এছাড়াও, এটি অন্য একটি হার্ড ড্রাইভে স্থানান্তরিত করে (পার্টিশনের কাঠামো পরিবর্তন করার সময়) একটি আনন্দ।


3

এটি একদম সস্তা হ্যাক, তবে এটি আপনার ডিডি প্রক্রিয়াটি পর্যবেক্ষণ করার জন্য দ্রুত এবং নোংরা উপায়।

আপনার ডিডি কমান্ড চালান। আপনার ডিডি প্রক্রিয়াটির পিআইডি খুঁজতে একটি নতুন শেল খুলুন এবং একটি পিএস অ্যাওএক্স করুন। এখন নতুন শেল টাইপ ঘড়িতে -n 10 কিল-ইউএসআর 1 আপনার ডিডি প্রসেসের পিড}

এটি ওয়াচ আউটপুট উইন্ডোতে কিছুই করবে না, তবে মূল ডিডি শেলটিতে ফিরে এসে ডিডি প্রতি 10 সেকেন্ডে স্থিতির প্রতিবেদনগুলি আউটপুট করা শুরু করবে। আপনি ওয়াচ কমান্ডের -n 10 অবশ্যই অন্য কোনও সময় ফ্রেমে পরিবর্তন করতে পারেন।

Tachyon


ওএস এক্সের watchউপলব্ধ নেই এবং -USR1ডিডি মেরে ফেলে। নিম্নলিখিত কমান্ডটি যদিও কাজ করে: while [ true ]; do killall -INFO dd; sleep 30; done
অ্যাডাম ফ্রাঙ্কো

আমি মনে করি না যে এটি কোনও নবজাতকের পক্ষে খুব ব্যবহারিক, তারা pvআদেশের সাথে আরও ভালভাবে পরিবেশন করতে পারে ।
রবি ম্যাকেনি

আমি দেখতে পেয়েছি যে আপনি সিডিআরএল-টি ব্যবহার করে ডিডিতে একটি সিআইএনএনএফওও পাঠাতে পারেন। এটি লুপের চেয়ে সহজ এবং আমার কাছে ওএসএক্স 10.6 সিডি কিল্ল নেই। এটি এন.ইউইকিপিডিয়া.আর.উইকি
সিটিজেন কেপলার

3
dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror

এটি ডিস্কটি অনুলিপি করবে এবং ত্রুটিগুলি সহ ব্লকগুলি এড়িয়ে যাবে, যা খুব গুরুত্বপূর্ণ।

ডিস্কটি ক্লোন বা উদ্ধার করতে ডিডি ব্যবহারের জন্য এগুলি হ'ল মৌলিক এবং প্রয়োজনীয় বিকল্প।

আমি অন্য উত্তর পোস্ট করতে চাইনি, তবে ইতিমধ্যে পোস্ট করা 25 টির মধ্যে প্রয়োজনীয় "কনভ = সিঙ্ক, নোরের" বিকল্পগুলির সাথে ভাল উত্তর নেই।


1
আসলে এটির আগে একটি উত্তর এবং কমপক্ষে দুটি মন্তব্যে উল্লেখ করা হয়েছিল ।
মাইকেল হ্যাম্পটন

1
@ মিশেল আপনি যে উত্তরটি যুক্ত করেছেন তাতে সম্পূর্ণ উদাহরণ কমান্ড থাকে না এবং এর মধ্যে অন্যান্য ত্রুটি রয়েছে - বৃহত ব্লকের আকার ব্যবহার করা ভাল ধারণা নয় conv=sync,noerrorকারণ এটি প্রতিটি খারাপ ব্লকের জন্য খুব বেশি ডেটা এড়িয়ে যাবে। "পুনরুদ্ধার ক্লোনিং" এর জন্য এই বিকল্পগুলি অপরিহার্য এবং তাদের জন্য মন্তব্যগুলি অনুসন্ধান করা ভাল নয়। ডিস্কগুলির কোনও খারাপ ব্লক না থাকলে সর্বাধিক জনপ্রিয় উত্তর যথেষ্ট eg উদাহরণস্বরূপ, একটি প্রিস্টাইন ডিস্ক ক্লোনিংয়ের জন্য, তবে পুনরুদ্ধারের জন্য নয়।
স্যাম ওয়াটকিন্স

@ মিশেল আমি যে উদাহরণটি দিয়েছি তা হ'ল একটি আদেশ যেটি আমি পেশাদার ডিস্ক পুনরুদ্ধারের জন্য বেশ কয়েকবার ব্যবহার করেছি। অন্য সরঞ্জাম রয়েছে যা কিছুটা ভাল কাজ করতে পারে, তবুও আমি যে উদাহরণটি দিয়েছি তা ডিস্কের পুনরুদ্ধারের ক্লোনিংয়ে ddএখানে অন্য প্রতিটি উদাহরণের চেয়ে ভাল , পাশাপাশি ত্রুটিমুক্ত ডিস্ক ক্লোন করার জন্য উপযুক্ত being সুতরাং, "ডিস্ক ক্লোনিংয়ের জন্য কীভাবে ডিডি ব্যবহার করবেন" সে সম্পর্কে আমি আমার উত্তরটিকে এখানে সেরা বলে বিবেচনা করি। আমি পর্যবেক্ষণের অগ্রগতি, সংক্ষেপণ ইত্যাদির উপর তথ্য যোগ করিনি, কারণ আমি এটিকে সহজ রাখতে চেয়েছিলাম এবং একটি সংক্ষিপ্ত উত্তর প্রদানের দিকে মনোনিবেশ করলাম যা বেসিকগুলি সঠিকভাবে পায়।
স্যাম ওয়াটকিন্স

3

আপনি আসলে এরকম কিছু চেষ্টা করতে পারেন

ডিডি যদি = / দেব / এসডিএ 2 এর = / দেব / এসডিবি 2 বিএস = 4096 কৌন = সিঙ্ক, নোরের

সমস্ত ত্রুটিগুলি এড়িয়ে যেতে এবং একটি পার্টিশন বা হার্ড ড্রাইভের সঠিক ক্লোন করতে


এটি কনভ = সিঙ্ক, নোরের হওয়া উচিত সিঙ্ক বিকল্পটি প্রয়োজন বা অন্যথায় ত্রুটিযুক্ত ব্লকগুলি জিরো হিসাবে অনুলিপি না করে মুছে ফেলা হবে।
স্যাম ওয়াটকিন্স

2

ডিডি অগ্রগতির তথ্য সরবরাহ করে - লিনাক্সের বেশিরভাগ সংস্করণ। আমি এমন কিছু দেখেছি যা ইউনিক্সের গন্ধগুলি মনে করে না কিন্তু।

ম্যান পেজটি বলেছে: চলমান 'ডিডি' প্রক্রিয়াতে ইউএসআর 1 সংকেত পাঠানো এটি I / O পরিসংখ্যানগুলিকে স্ট্যান্ডার্ড ত্রুটিতে মুদ্রণ করে এবং পরে অনুলিপি শুরু করে।

আমি নিয়মিত এই বৈশিষ্ট্যটি ব্যবহার করি।


দরকারী হিসাবে, আমি একটি শিক্ষানবিস এর ব্যবহারিকতা সন্দেহ।
রবি ম্যাকেনি

2

কারও কাছে এটি বলতে হয়েছিল: ক্লোনজিলাকে একবার চেষ্টা করে দেখুন (http: // clonezilla.org/)

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

শালীন ডকুমেন্টেশন এখানে পাওয়া যাবে: http: // clonezilla.org/clonezilla-live/doc/


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

2

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

এটি পিডিটি ফাইল বিবরণকারী 3 ইন / টিএমপি / পিডের মাধ্যমে সংরক্ষণ করে কাজ করে যা সিগন্যাল ইউএসআর 1 এর সাথে পরবর্তী কিলগুলির জন্য ব্যবহৃত হয়। একটি রিঙ্কেল ছিল স্টেডারর থেকে অগ্রগতির আউটপুট একটি সাবসেলের মাধ্যমে ফিল্টারিং স্ট্ডারের মাধ্যমে কেবলমাত্র একটি লাইনে ফিল্টার করা।

(dd bs=1M if=$lv-snapshot & echo $! >&3 ) 3>/tmp/pid  2> >(grep 'copied' 1>&2) | gzip --fast | ssh $DEST "gzip -d | dd bs=1M of=$lv" &
# Need this sleep to give the above time to run
sleep 1
PID=$(</tmp/pid)

while kill -0 $PID; do
  kill -USR1 $PID
  sleep 5
done

প্রশ্নের সাথে সত্যই প্রাসঙ্গিক নয়, তবে উপ-শেল ব্যবহার করে এটির একটি ঝরঝরে শেল ট্রিক এবং এর থেকে ডেটা জানাতে উচ্চতর (
স্ট্ডারারের

ডিস্ক ক্লোনিং করার সময় আমি নিজেই এই পৃষ্ঠাটি বিভিন্ন ডিডি বিকল্পগুলির জন্য উল্লেখ করছিলাম, তাই ক্লোনিংয়ের জন্য আমি যা ব্যবহার করেছি তার ফলাফলের ফলাফল দেওয়ার জন্য এটি একটি উপযুক্ত জায়গা বলে মনে হয়েছিল, বিশেষত যেহেতু আমি ভেবেছিলাম এটি নিজের ঝরঝরে ছিল :)
এডওয়ার্ড গ্রোয়েনডাল

2

সর্বাধিক তথ্য পূর্ববর্তী recোকানো রেসিপিগুলিতে বর্ণিত হয়েছিল, তবে সমস্ত বর্ণিত হয়নি।

লিনাক্সের অধীনে আপনি ডিডি কমান্ড দ্বারা হার্ড ড্রাইভ বা পার্টিশন ক্লোন করতে পারেন। মনোযোগ দিন, আপনি যখন ভুল করবেন তখন আপনার সমস্ত ডেটা হারাবে।

প্রথমদিকে, গন্তব্যটি ব্যবহারে থাকা উচিত নয়, দ্বিতীয়ত উত্সটি ব্যবহার করা উচিত নয়, বা কেবল পঠন মোডে পুনরায় সঞ্চার করা উচিত। অন্যথায় অনুলিপি ক্ষতিগ্রস্থ হবে। যদি পুনরায় গণনা অসম্ভব হয় তবে দয়া করে কোনও লিনাক্স লাইভ ডিস্ট্রো বুটযোগ্যযোগ্য ড্রাইভ (এইচডিডি / এসএসডি / পেনড্রাইভ) করুন। আমি নোপপিক্স প্রিভার করি তবে এটি আপনার পছন্দ। যদি এটি সম্ভব হয় তবে আপনি একক ব্যবহারকারী মোডের জন্য সিস্টেমের স্তর 1 টি বুট করতে বা পরিবর্তন করতে পারেন, বা আপনি সরাসরি একক ব্যবহারকারী মোডে সিস্টেমটিকে পুনরায় বুট করতে পারেন, এটি ডিস্ট্রো নির্ভর। যদি আপনি কেবল একটি বিভাজন ক্লোন করে থাকেন তবে এই পার্টিশনটি আনআম্ট করা উচিত বা আরআর-এ পুনঃস্থাপন করা উচিত:

umount /mountpoint_or_device

অথবা

remount -o,ro /mountpoint_or_device

আপনি যদি পুরো হার্ড ড্রাইভটি ক্লোন করতে চান তবে আপনাকে অবশ্যই সমস্ত পার্টিশনটি মাউন্ট বা পুনঃনির্মাণ করতে হবে।

আপনাকে অবশ্যই উত্স এবং গন্তব্য ডিভাইস সনাক্ত করতে হবে। দয়া করে dmesg দেখুন, এখানে ডিভাইস সম্পর্কিত সমস্ত প্রয়োজনীয় তথ্য সঞ্চিত আছে, বিক্রেতার সাথে ইত্যাদি alternative এর পরে, গন্তব্য উত্সের চেয়ে সমান বা বড় হওয়া উচিত। আপনার অবশ্যই উত্স গণনা করতে হবে, উদাহরণস্বরূপ: fdisk -l / dev / sda পার্টিশন জ্যামিতি (GPT থাকতে পারে) ব্যতীত, আপনি আনবেন: ১. মোট ডিস্কের আকার উইগ জিবি এবং বাইটস historicalতিহাসিক জ্যামিতি এবং মোট খাত নম্বর, খুব গুরুত্বপূর্ণ তথ্য 3. বাইটগুলিতে ব্লকের আকার, সাধারণত এটি 512 হয়।

উদাহরণ স্বরূপ:

# fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f1d1e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    40136703    20067328   83  Linux
/dev/sda2        40138750    41940991      901121    5  Extended
/dev/sda5        40138752    41940991      901120   82  Linux swap /     Solaris

এর পরের 512 বিভাজকের চেয়ে বড় চেষ্টা করুন, আমাদের কাছে 41943040 শারীরিক ক্ষেত্র রয়েছে:

41943040/256 = 163840, খুব ভাল, আমরা 256 সেক্টরের বাল্ক কপি করতে পারি। আমরা আরও করতে পারি? আসুন চেষ্টা করুন: 41943040/1024 = 40960, আমি মনে করি এটি যথেষ্ট, আমরা এটি নির্বাচন করব। আসুন সেক্টর গ্রুপের আকার গণনা করুন: 512 (সেক্টরের আকার) * 1024 = 524288 বাইট একা 512 কে। তারপরে আমরা বিএস = 512 কে বা তার চেয়ে কম প্যারামিটার ব্যবহার করতে পারি তবে এটি 2 ^ x দ্বারা ভাগ করতে পারি। বড় বড় অভ্যন্তরীণ ক্যাশে সহ আধুনিক হার্ড ড্রাইভের জন্য, এটি যথেষ্ট ব্যবহারিক। অনেক ছোট ক্যাশে সহ পুরানো ড্রাইভের জন্য, 32K বা তার চেয়ে কম মান যথেষ্ট।

তারপরে প্রস্তুতির পরে আমরা একটি অনুলিপি করতে পারি: dd if = / dev / উত্স_দেবতা = / dev / গন্তব্য_দেহ বিএস = 32 কে এবং অনুলিপি করা হবে। মনোযোগ দিন, যে কোনও ভুল আপনার আমদানি ও ডেটা ওভাররাইট করবে। গন্তব্যে সমস্ত ওভাররাইট করা হবে।

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

dd if=/dev/source of=/dev/destination bs=512 conv=notrunc  

, এবং ড্রাইভ এবং সিস্টেমটি হাল ছেড়ে দেবে এবং সেক্টর দ্বারা সেক্টরটি শেষ অবধি চলবে long

পার্টিশনটিকে নতুন জায়গায় স্থানান্তরিত করার জন্য ডিডি হ'ল ব্যবহারযোগ্য সরঞ্জাম। কেবলমাত্র পার্টিশন তৈরি করুন, ডিডিটিকে নতুন পার্টিশনে পরিণত করুন (এটি আরও বড়, অনেক বড় হতে পারে), এবং যদি এটি সম্ভব হয় তবে সমস্ত নতুন পার্টিশন পূরণের জন্য অনুলিপি করা ফাইল সিস্টেমটি প্রসারিত করুন, ext3 / ext4 / xfs / zfs / btrfs এ সুবিধা রয়েছে। অবশেষে আপনাকে অবশ্যই / etc / fstab পরিবর্তন করতে হবে, তারপরে সম্ভব হলে মাউন্ট / মাউন্ট, অথবা সিস্টেমটি পুনরায় বুট করতে হবে।

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

কোন কৌশল আছে। আপনি যখন প্যারামিটার সেট করেন নি, তখন ডিডি তার স্টাডআউটে আউটপুট দেবে। তারপরে আপনি ডিস্ক বা পার্টিশনের সঙ্কুচিত কাঁচা অনুলিপি তৈরি করতে পারেন, উদাহরণস্বরূপ:

dd if=/dev/sda bs=512 | gzip >/any/place/computerOne_sda.gz

অবশ্যই এটি অফলাইনে করা উচিত। আপনি এটি দ্বারা পুনরুদ্ধার করতে পারেন:

zcat /any/place/computerOne_sda.gz| dd of=/dev/sda bs=512   

, তারপরে সমস্ত এসডিএ হার্ড ড্রাইভ এই ব্যাকআপটির মাধ্যমে ওভাররাইট করা হবে এবং সমস্ত বর্তমান ডেটা হারিয়ে যাবে। আপনি এটি এনটিএফএস উইন্ডো পার্টিশন এবং এটির দ্বারা ব্যবহৃত হার্ড ড্রাইভের সাহায্যেও করতে পারেন। অবশ্যই আপনি অন্য সংক্ষেপণ কমান্ড ব্যবহার করতে পারেন, আপনার পছন্দ দ্বারা নির্ভর করে।


1

আপনি ফ্লাইতে bzip2বা gzipতার পরিবর্তে পার্টিশনের (বা ডিস্ক) সংকুচিত চিত্র ফাইল তৈরি করতে পারেন dd। অপসারণযোগ্য মিডিয়াতে চিত্রগুলি সঞ্চিত করার জন্য এটি দুর্দান্ত:

bzip2 -c /dev/sdaX >imagefile.bz2
or
gzip -c /dev/sdaX >imagefile.gz

যদি ডিস্কটি আগে ভারী ব্যবহৃত হয়, তবে আপনি ইমেজিংয়ের আগে জিরো দিয়ে সমস্ত অব্যবহৃত স্থান পূরণ করে সংক্ষেপণটি বাড়িয়ে তুলতে পারেন:

mkdir /mnt/mymountpoint
mount /dev/sdaX /mnt/mymountpoint
cat /dev/zero >/mnt/mymountpoint/dummyfile.bin
(Wait for it to end with a "disk full" error)
rm /mnt/mymountpoint/dummyfile.bin
umount /mnt/mymountpoint

চিত্রটি অন্য ডিস্কে পুনরুদ্ধার করতে আপনাকে যা করতে হবে তা হ'ল:

bzcat imagefile.bz2 >/dev/sdbY
or
zcat imagefile.gz >/dev/sdbY

শূন্যস্থান সহ অবশিষ্ট স্থান পূরণের কৌশলটির জন্য উত্সাহিত। স্মার্ট!
কনফিউশন

এই, আমার এটি দরকার! এসডি কার্ডটি আগে ভিডিও ক্যাপচারের জন্য ব্যবহৃত হয়েছিল এবং ক্রেপ পূর্ণ ছিল, সংক্ষেপণ মোটেও সহায়তা করেনি।
কোডি স্মিথ

0

কিছু কারণে অডিও ট্র্যাকের সাহায্যে সিডি ইমেজ করার সময় ডিডি ব্যর্থ হয়। একটি চিত্র + টোসি ফাইল পেতে আপনার সিডিআরআও বা অনুরূপ কিছু ব্যবহার করতে হবে।


0

গতিতে একটি নোট: ডিফল্ট বিএস = 512 এর পরিবর্তে আপনি বিএস = 1024 নির্দিষ্ট করে দিলে আমার অভিজ্ঞতায় ডিডি দ্বিগুণ দ্রুত। এর চেয়েও বড় ব্লকের আকার ব্যবহার করে বিএস = 1024 এর চেয়ে বেশি কোনও লক্ষণীয় স্পিডআপ পাওয়া যায় না।


4
ডিস্ক ক্লাস্টারগুলি সাধারণত এখন 4k এর কাছাকাছি হয়, সুতরাং 4096 ব্যবহার করা সম্ভবত একটি ভাল বিকল্প এবং আপনি যদি একবারে 2 টি ক্লাস্টার পড়তে চান তবে 8192। যদিও আপনি খণ্ডিত মেমরির সমস্যায়
পড়ছেন তত

0

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


0

আমি এখন অনেক বছর ধরে অ্যাডমিনের ভূমিকা থেকে বাইরে এসেছি, কিন্তু আমি জানি যে 'ডিডি' কাজ শেষ করে দিয়েছে। আমি এই কৌশলটি সান স্পার্ক এবং 386i কম্পিউটারগুলিতে 80 এর দশকের শেষদিকে নিয়মিত ব্যবহার করি। আমার কাছে সিএডি সফ্টওয়্যার চলমান 30 386i সিস্টেমে এক ক্লায়েন্ট অর্ডার ছিল যা একাধিক কিউআইসি টেপগুলিতে বিতরণ করা হয়েছিল।

আমরা প্রথম কম্পিউটারে ইনস্টল করেছি, অ্যাপটি কনফিগার করেছি, সানোস-এর সিএস-আনকনফিগ চালিয়েছি, ড্রাইভকে জুতোর বাক্সে আলাদা এসসিএসআই ঠিকানা দিয়ে রেখেছি এবং তারপরে অন্যান্য 30 ড্রাইভে 'ডিডি' দিয়ে চলেছি।


0

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



0

নতুনদের জন্য কেবল একটি সতর্কতা যা বলা দরকার: কমপক্ষে কয়েকটি সংস্করণ সহ, বিএস = এক্স এর অর্থ হল X এর আকারের মেমরিটি আক্ষরিক অর্থে বরাদ্দ করা হবে। 1 গিগাবাইট র‌্যাম সহ একটি সিস্টেমে বিএস = 2 জিবি এবং অপর্যাপ্ত অদলবদলের কারণে খারাপ জিনিস ঘটতে পারে।

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