ডিডি: একাধিক ডিস্কে লিখবেন?


16

আমার কাছে ঠিক একই আকারের, একই আকার এবং একই ব্র্যান্ডের এসডি-কার্ড রয়েছে। আমি চাই ddছবিতে /dev/disk2করুন এবং /dev/disk3একই সময়ে।
সুডোকোড

sudo dd bs=1m if=/Users/masi/2016-05-10-raspbian-jessie.img of={/dev/disk2,/dev/disk3}

আপনি কীভাবে ddএক ইনপুট থেকে অনেক আউটপুট এসডি করতে পারেন?


এখানে লক্ষ্য কি? কর্মক্ষমতা? হ্যাঁ যদি আপনার পড়া ডেটা মনে থাকে তবে ক্যাশে হবে। সুতরাং ২ য় ডিডি পড়ার পরিবর্তে আপনার বিকাশ থেকে ডেটা হবে (অবশ্যই আপনার কিছু ফ্রি র‌্যাম দরকার)।
কেউউবুফুটোউইচ

2
জিএনইউ কোর্টিলস ডিডির সাথে আমার সরল পরীক্ষাটি ... of=one of=twoদুটি আউটপুট তৈরি করে নি। দুটি ddকমান্ডের প্রয়োজন হতে পারে। আমি একাধিক'র জন্য মঞ্জুরি দেওয়ার জন্য পডিক্সে শব্দটি দেখতে পাচ্ছি না of
জেফ শ্যাচলার

@KWubbufetowicz আমার কাছে 8 জিবি র‌্যাম রয়েছে। 32 গিগাবাইট পাওয়ার সম্ভাবনা। গতি আমার লক্ষ্য কারণ আমার 5 টি এসডি রয়েছে।
লিও লোপোল্ড হার্টজ

উত্তর:


20
  1. থেকে ধার don_crissti এর উত্তর ব্যবহার tee, কিন্তু ছাড়া ddবা ব্যাশ isms:

    sudo tee /dev/disk2 /dev/disk3 > /dev/disk4 < masi.img
    
  2. peeডেবিয়ান এর মুরতুলি প্যাকেজ থেকে ব্যবহার করা :

    sudo dd if=masi.img | \
      pee "dd of=/dev/disk2"  "dd of=/dev/disk3"  "dd of=/dev/disk4"
    

    এর সাথে bash, kshবা zsh, যা সংক্ষেপে বলা যেতে পারে:

    sudo dd if=masi.img | pee "dd of=/dev/disk"{2..4}
    

    বা এমনকি, (যদি ddএর দরকারী কার্যকারণের প্রয়োজন না হয়):

    sudo pee "dd of=/dev/disk"{2..4} < masi.img
    

    peeদরকারী; যদি প্রয়োজন হয় তবে ddপ্রতিটি আউটপুট ডিভাইসে স্বতন্ত্রভাবে তৈরি করা (অতিরিক্ত প্রতিটি স্বতন্ত্র আর্গুমেন্টের মধ্যে), অতিরিক্ত স্বতন্ত্র বিকল্পগুলি এবং অন্যান্য পাইপ এবং ফিল্টার অন্তর্ভুক্ত থাকতে পারে ।

যে কোনও পদ্ধতিতে আউটপুট ডিস্কের সংখ্যা অনির্দিষ্টকালের জন্য বাড়ানো যেতে পারে।


1
এর জন্য ডিডি ব্যবহার করা জরুরি নয়। অনেক লোক বিশ্বাস করেন যে এটি প্রয়োজনীয় কারণ কারণ এর ব্যবহার, ডিস্ক চিত্রগুলিতে অনুলিপি করা বা থেকে অনুলিপি করা, 90 এর দশকে পিছনে লেখা টিউটোরিয়ালে "জীবাশ্মী" এবং যারা জানেন না তাদের দ্বারা অনুলিপি করা হয়েছিল। সিপি-তে এক বিঘ্ন ঘটার জন্য এটি তখন ব্যবহার করা হত।
র্যান্ডম 832

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

@ মসি ডিস্কে ডিস্কের চিত্র লেখার জন্য বা ডিস্কে কোনও ডিস্ক পড়ার সাধারণ উদ্দেশ্যে স্পষ্টভাবে কোনও ফর্ম্যাট ("এমনকি" ফর্ম্যাট "বলতে কী বোঝায়) এবং বরাদ্দ আকার (আপনার ব্লক আকারটি বোঝায়?) নির্বাচন করা খুব কমই প্রয়োজন একটি ডিস্ক ইমেজ। D০ এর দশকের গোড়ার দিকে সিপি-র একটি বাগ (বিশেষত লিনাক্সের জিএনইউ সিপি) এর কারণ হিসাবে ডিডিটি সাধারণত ব্যবহৃত হয়ে ওঠে কারণ এটি সমস্ত শূন্য-বাইটের অনুলিপিগুলিকে অনুলিপি করতে এড়ায়।
এলোমেলো 832

7
cp90 এর দশকে বাগ ? ddতার চেয়ে 20 বছরের বড়। ব্যবহার করার জন্য প্রধান কারণ ddযে অনেক ডিভাইস, বিশেষ করে টেপ ড্রাইভ, পড়তে হবে প্রয়োজন / সংশোধন করা হয়েছে ব্লক মাপ লেখা ছিল যার কারণে, ddহয়েছে bs, ibsএবং obs, পরামিতি এবং এটি শুধুমাত্র প্রোগ্রাম যা সঠিক ব্লকের মাপ নিশ্চিত পারে।
গুন্ট্রাম

1
@ গিলিস, এখানে টি প্রস্রাব করার চেয়ে প্রকৃত পক্ষে ভাল (তবে ডিসিএফএলডিডি সবচেয়ে ভাল)। তবুও, প্রস্রাব দরকারী; একটি, প্রয়োজনে অন্তর্ভুক্ত করতে পারে (প্রতিটি উদ্ধৃত যুক্তির মধ্যে), অতিরিক্ত 'ডিডি' বিকল্পগুলি, এবং এমনকি অন্যান্য পাইপ এবং ফিল্টারগুলি প্রতিটি আউটপুট ডিভাইসে স্বতন্ত্রভাবে তৈরি করা যায়।
এজিসি

21

আপনি এটির বর্ধিত সংস্করণ চেষ্টা করতে পারেন এবং এটি একই সাথে একাধিক ফাইল বা ডিস্কে আউটপুট দিতে পারে:dcfldd
gnu dd

dcfldd if=masi.img of=/dev/disk2 of=/dev/disk3 of=/dev/disk4

আপনি আপনার প্রথম কমান্ড ব্যাখ্যা করতে পারেন? শেষের আগে পাইপ কেন dd? চারটি দিয়ে কীভাবে পাইপের অবস্থান পরিবর্তন হয় dd?
লিও লোপোল্ড হার্টজ

3
dcflddদ্রুততম, সম্ভবত এটি প্রথম পছন্দ হওয়া উচিত।
এ.সি.সি

আমি অন্যান্য পাইপিং পদ্ধতির তুলনায় এটি উল্লেখযোগ্যভাবে দ্রুত পেয়েছি।
ধন্যবাদ

3

এছাড়াও এটি দিয়ে teeএবং এটিও সম্ভব process substitution:

dd if=/dev/sda | tee >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd


আপনি কি প্রক্রিয়া বিকল্প ব্যাখ্যা করতে পারেন? আপনার উত্তরটি এ.সি.সি এর উত্তর থেকে আলাদা কীভাবে?
লিও লোপোল্ড হার্টজ 준영

হ্যাঁ নিশ্চিত: process substitutionআপনি যখন এক কমান্ডের stdout একাধিক কমান্ডে পাইপ করতে পারেন তখন ব্যবহৃত হয়। একটি সাধারণ পাইপ ব্যবহার করা আপনাকে কেবল একটি আদেশকে পাইপ দেয় let আমার উত্তরটি এগ্রিসির মতো একই ফলাফল অর্জন করছে, তবে অন্যভাবে: :) আমার সিস্টেমে কমান্ড রয়েছে peeবলে আমি এর আগে কখনও ব্যবহার করিনি tee
শেভ্যালিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.