সিডি / ডিভিডি অনুলিপি করার জন্য কি বিড়াল, ডিডি, পিভি বা অন্য কোনও পদ্ধতি ব্যবহার করা ভাল?


22

পটভূমি

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

আমি পদ্ধতিগুলির জন্য নেটে খুঁজছি এবং আমি অনেক কিছু পেয়েছি:

  • catএকটি মাধ্যম অনুলিপি করতে ব্যবহার : http://www.yolinux.com/TUTORIALS/LinuxTutorialCD বার্ন এইচটিএমএল

    cat /dev/sr0 > image.iso
    
  • এটি করার ব্যবহার dd(স্পষ্টতই সর্বাধিক ব্যবহৃত): http : //www.linuxj Journal.com/content/archiving-cds-iso-commandline

    dd if=/dev/cdrom bs=blocksize count=count of=/path/to/isoimage.iso
    
  • কেবল pvএটি সম্পাদন করার জন্য ব্যবহার : man pvআরও তথ্যের জন্য দেখুন, যদিও এর একটি অংশ এখানে দেওয়া হয়েছে:

    Taking an image of a disk, skipping errors:
          pv -EE /dev/sda > disk-image.img
    
    Writing an image back to a disk:
          pv disk-image.img > /dev/sda
    
    Zeroing a disk:
          pv < /dev/zero > /dev/sda
    

যদি তাদের সব সমতুল্য হওয়া উচিত আমি যদিও আমি তাদের মধ্যে কিছু পরীক্ষিত (ব্যবহার জানি না, md5sumটুল) এবং কমপক্ষে, ddএবং pvহয় না সমতুল্য। md5sumপ্রতিটি পদ্ধতি ব্যবহার করে ড্রাইভ এবং উত্পন্ন ফাইল উভয়ের এখানে রয়েছে :

ডিডি পদ্ধতির এমডি 5: 71b676875b0194495060b38f35237c3c

পিভি পদ্ধতির এমডি 5: f3524d81fdeeef962b01e1d86e6acc04

সম্পাদনা: আউটপুট প্রদত্ত আউটপুটের তুলনায় অন্য সিডি থেকে ছিল। আসলে, আমি বুঝতে পারি যে উত্তর হিসাবে আমি সরবরাহ করি এমন কিছু আকর্ষণীয় তথ্য আছে।

আসলে, প্রতিটি ফাইলের আকার একে অপরের সাথে তুলনা করে ভিন্ন

সুতরাং, কোনও সিডি / ডিভিডি অনুলিপি করার জন্য কি সেরা পদ্ধতি আছে বা আমি কেবল কমান্ডগুলি ভুলভাবে ব্যবহার করছি?


পরিস্থিতি সম্পর্কে আরও তথ্য

আমি এখন পর্যন্ত যে পদ্ধতিগুলি পেয়েছি তা পরীক্ষা করতে আমি পরীক্ষার কেস সম্পর্কে আরও তথ্য দিচ্ছি:

isoinfo -d i /dev/sr0 আউটপুট: https://gist.github.com/JBFWP286/7f50f069dc5d1593ba62#file-isoinfo-output-19-aug-2015

ddআউটপুট চেকসাম এবং ফাইলের তথ্য সহ মিডিয়া অনুলিপি করতে আউটপুট: https://gist.github.com/JBFWP286/75decda0a67605590d32#file-dd-output-with-md5-and-sha256-19-aug-2015

pvআউটপুট চেকসাম এবং ফাইলের তথ্য সহ মিডিয়া অনুলিপি করতে: আউটপুট: https://gist.github.com/JBFWP286/700a13fe0a2f06ce5e7a#file-pv-output-with-md5-and-sha256-19-aug-2015

যে কোন ধরণের সাহায্য গ্রহন করা হবে!

linux  dd  cat  disk-image  pv 

ফাইলের আকারগুলি কি অভিন্ন? ফলাফল cmp file1 file2? আপনি কি ভুলটি ব্যবহার ddকরেছেন count=(বা পুরো জিনিসটি যদি চান তবে সত্যই কোনও গণনা যা প্রয়োজনীয় নয়?)। Dmesg এ ত্রুটিগুলি পড়ুন?
frostschutz

2
এটি বলার অপেক্ষা রাখে না যে বিভিন্ন আকারের ফাইলগুলি (99.9999999999 +% সম্ভাব্যতার সাথে) বিভিন্ন চেকসাম নিতে চলেছে। যতক্ষণ আপনি পরীক্ষাগুলি করেছেন ততক্ষণ আপনি সমস্ত ফলাফল পোস্ট করলে ভাল লাগবে (1) ddআপনি যে সঠিক কমান্ডটি ব্যবহার করেছেন (কী ব্লকসাইজ? কী গণনা?), (2) এর আকার এবং চেকসাম সমস্ত আউটপুট এবং (3) সোর্স অপটিকাল ডিস্কে ডেটার পরিমাণ সম্পর্কে আপনার কাছে থাকা কোনও স্বাধীন তথ্য। ……………… পিএস আপনি কেন ব্যবহার count=করছেন dd? আপনি পুরো ডিস্ক চিত্রটি অনুলিপি করতে চান, তাই না?  count="এগুলি অনেকগুলি অনুলিপি করুন এবং তারপরে থামুন" বলে।
স্কট

@ স্কট এই পৃষ্ঠায় লিনাক্সজার্নাল.কমেন্ট / অর্গাইভিং- সিডিএস- আইসো - কম্যান্ডলাইন লেখক বলেছেন যে কাউকে isoinfo -d -i /dev/cdromগণনা নম্বর জানতে ও এটি ব্যবহার করার জন্য ব্যবহার করা উচিত - বাস্তবে, তিনি বলেছিলেন যে একজনকে কেবল সঠিক ব্যবহার করা উচিত নয় dd। "যে কোনও ক্ষেত্রে, আপনি যদি সেই সিডির যথাযথ আইএসও চিত্র চান তবে আপনার ইমেজ তৈরির আগে আপনার ব্লকসাইজ এবং ব্লককাউন্টটি সঠিক হওয়া দরকার" "

@ ফ্রস্টসচুটজ প্রথম ক্ষেত্রে আকারগুলি অভিন্ন ছিল না, তবে আশ্চর্যের বিষয় হল, আমি আবার চেষ্টা করেছি এবং বিভিন্ন ফলাফল পেয়েছি। আরও বিশদ জন্য আমি সরবরাহ করা উত্তর দেখুন।

উত্তর:


27

নীচের সমস্ত কমান্ড সমান। তারা সিডির বাইটগুলি পড়েন /dev/sr0এবং কল করা কোনও ফাইলে তাদের লিখুন image.iso

cat /dev/sr0 >image.iso
cat </dev/sr0 >image.iso
tee </dev/sr0 >image.iso
dd </dev/sr0 >image.iso
dd if=/dev/cdrom of=image.iso
pv </dev/sr0 >image.iso
cp /dev/sr0 image.iso
tail -c +1 /dev/sr0 >image.iso

আপনি কেন একে অপরকে ব্যবহার করবেন?

  • সরলতা। উদাহরণস্বরূপ, আপনি যদি ইতিমধ্যে জানেন catবা cp, আপনার আর একটি কমান্ড শেখার দরকার নেই।

  • বলিষ্ঠতার। এটি একটি সরলতার বৈকল্পিক একটি বিট। কমান্ড পরিবর্তন করার ফলে এটি কী করবে তা কতটা ঝুঁকিপূর্ণ? আসুন কয়েকটি উদাহরণ দেখুন:

    • পুনঃনির্দেশ সহ যেকোন কিছুই: আপনি ভুল করে ভুলভাবে একটি পুনঃনির্দেশটি রেখে দিতে পারেন, বা এটি ভুলে যেতে পারেন। যেহেতু গন্তব্যটি একটি অ-বিদ্যমান ফাইল হিসাবে অনুমিত হয়, তাই set -o noclobberনিশ্চিত হওয়া উচিত যে আপনি কোনও কিছুই ওভাররাইট না করেছেন; তবে আপনি দুর্ঘটনাক্রমে লিখলে কোনও ডিভাইস ওভাররাইট করতে পারেন >/dev/sda(একটি সিডির জন্য, যা কেবলমাত্র পঠনযোগ্য, কোনও ঝুঁকি নেই, অবশ্যই)। এটি cat /dev/sr0 >image.isoবিকল্পগুলির tee </dev/sr0 >image.iso( যেমন আপনি পুনর্নির্দেশগুলি উল্টিয়ে দেন বা ইনপুটটিকে ভুলে যান তবে এতে teeলিখবেন /dev/sr0) বিকল্পগুলির ( ক্ষতিকারক উপায়ে ভুল হওয়া পক্ষে ) পক্ষে যায়।
    • cat: আপনি দুর্ঘটনাক্রমে দুটি ফাইল একত্রিত করতে পারেন। এটি সহজেই সংরক্ষণযোগ্য ডেটা ছেড়ে দেয়।
    • dd: iএবং oকীবোর্ডের কাছাকাছি এবং কিছুটা অস্বাভাবিক। এর কোনও সমতুল্য নেই noclobber, of=আনন্দের সাথে কোনও কিছু ওভাররাইট করবে। পুনঃনির্দেশ সিনট্যাক্স ত্রুটি-প্রবণতা কম।
    • cp: আপনি যদি ঘটনাক্রমে উত্স এবং লক্ষ্যটি অদলবদল করেন তবে ডিভাইসটি ওভাররাইট করা হবে (আবার, কেবলমাত্র পঠনযোগ্য নয় এমন ডিভাইস ধরে)। যদি cpকিছু বিকল্প যেমন যেমন -Rবা -aকিছু লোক একটি উপনামের মাধ্যমে যুক্ত হয় তবে এটি ডিভাইস সামগ্রীটির পরিবর্তে ডিভাইস নোডটি অনুলিপি করবে।
  • অতিরিক্ত কার্যকারিতা। এখানে একটি সরঞ্জাম যা কার্যকর অতিরিক্ত কার্যকারিতা রয়েছে pvতার শক্তিশালী প্রতিবেদনের বিকল্পগুলির সাথে।
    তবে এখানে আপনি যেভাবে আউটপুট ফাইলের আকার দেখে কতটা অনুলিপি করেছেন তা পরীক্ষা করতে পারেন।

  • কর্মক্ষমতা. এটি একটি আই / ও-বাউন্ড প্রক্রিয়া; পারফরম্যান্সের প্রধান প্রভাবটি হল বাফার আকার: সরঞ্জামটি উত্স থেকে একটি অংশ পড়ে, গন্তব্যটিতে খণ্ডটি লিখে, পুনরাবৃত্তি করে। যদি অংশটি খুব ছোট হয় তবে কম্পিউটার কার্যের মধ্যে স্যুইচ করতে তার সময় ব্যয় করে। যদি অংশটি খুব বড় হয় তবে পঠন এবং লিখনের ক্রিয়াকলাপগুলিকে সমান্তরাল করা যায় না। পিসিতে সর্বোত্তম অংশটি সাধারণত কয়েক মেগাবাইটের কাছাকাছি হয় তবে এটি ওএসের উপর নির্ভর করে, হার্ডওয়্যার এবং কম্পিউটার কী করছে তার উপর। কিছুক্ষণ আগে লিনাক্সে হার্ড ডিস্কের হার্ড ডিস্কের অনুলিপিগুলির জন্য আমি বেঞ্চমার্ক তৈরি করেছি , যা দেখিয়েছে যে একই ডিস্কের অনুলিপিগুলির জন্য, dd বড় বাফার আকারের সুবিধা রয়েছে, তবে ক্রস-ডিস্কের অনুলিপিগুলির জন্য, catকোনও ddবাফার আকারে জিতেছে ।

আপনি ddপ্রায়শই উল্লেখ করা কেন কয়েকটি কারণ রয়েছে । পারফরম্যান্স বাদে, তারা বিশেষত ভাল কারণ নয়।

  • খুব পুরানো ইউনিক্স সিস্টেমে কিছু পাঠ্য প্রক্রিয়াজাতকরণের সরঞ্জাম বাইনারি ডেটাগুলি মোকাবেলা করতে পারেনি (তারা অভ্যন্তরীণভাবে নাল-টার্মিনেটেড স্ট্রিং ব্যবহার করত , তাই তাদের নাল বাইটে সমস্যা দেখা দেয়; কিছু সরঞ্জাম এছাড়াও ধরে নিয়েছিল যে অক্ষরগুলি কেবলমাত্র 7 বিট ব্যবহার করে এবং না প্রক্রিয়া 8-বিট অক্ষর সঠিকভাবে সেট করে)। আমি নই নিশ্চিত যদি কখনও এই সাথে একটি ত্রুটি ঘটেছে cat(এটা যেমন আরো লাইন ভিত্তিক সরঞ্জামগুলির সাথে ছিল head, sedইত্যাদি), কিন্তু মানুষ টেক্সট প্রক্রিয়াকরণ সঙ্গে তার সমিতির কারণ বাইনারি ডেটা এটা এড়ানোর সেদিকেই ঝুঁকেছে। এটি আধুনিক সিস্টেমে যেমন লিনাক্স, ওএসএক্স, * বিএসডি, বা পসিক্স-সম্মতিযুক্ত এমন কোনও সমস্যা নয়।
  • মিথের এক ধরণের আছে ddযা অন্যান্য সরঞ্জামের চেয়ে কিছুটা "নিম্ন স্তরের" catএবং ডিভাইসগুলিতে সরাসরি অ্যাক্সেস করে। এটি সম্পূর্ণরূপে মিথ্যা: ddএবং catএবং teeএবং অন্যদের সব পঠিত তাদের ইনপুট থেকে বাইট এবং তাদের আউটপুট বাইট লিখুন। আসল যাদু আছে /dev/sr0
  • ddএকটি অস্বাভাবিক কমান্ড লাইন সিনট্যাক্স রয়েছে, সুতরাং এটি কীভাবে কাজ করে তা ব্যাখ্যা করে কেবল কিছু লেখার মাধ্যমে আরও আলোকিত করার সুযোগ দেয় cat /dev/sr0
  • ব্যবহার dd বৃহৎ বাফারের আকার সঙ্গে ভাল পারফরম্যান্স থাকতে পারে, কিন্তু এটা সবসময় ক্ষেত্রে (দেখুন নয় লিনাক্স কিছু benchmarks )।

এর সাথে একটি বড় ঝুঁকি ddহ'ল এটি নিঃশব্দে কিছু ডেটা এড়িয়ে যেতে পারে । আমি মনে করি ddযতক্ষণ না উত্তীর্ণ হয় skipবা countপাস করা হয় না তবে আমি নিশ্চিত নই যে সমস্ত প্ল্যাটফর্মে এটিই কি না। তবে পারফরম্যান্স বাদে এর কোনও লাভ নেই।

সুতরাং pvআপনি যদি এর অভিনব অগ্রগতি রিপোর্ট চান, বা না চান তবে কেবল ব্যবহার করুন cat


আপনার এই প্রতিক্রিয়াটি লেখার জন্য অনেক ধন্যবাদ! =) এখন আমি তাদের মধ্যে পার্থক্য বুঝতে পারছি। শুধু একটি প্রশ্ন: pv < /dev/sr0 > image.isoএকই pv /dev/sr0 > image.iso(পিভি এর ম্যানুয়াল পৃষ্ঠাগুলি পরে পাওয়া যায়)?

1
@ জেবিএফডাব্লুপি 286 তারা একই জিনিসটি অনুলিপি করে pv /dev/sr0 …তবে ফাইলের নামটি অগ্রগতি প্রতিবেদনে অন্তর্ভুক্ত করতে পারে যেখানে pv </dev/sr0পারে না।
গিলস 'অশুভ হওয়া বন্ধ করুন'

অন্য দ্রষ্টব্য: এর সাথে যুক্ত cpহতে পারে cp -R, যা (কমপক্ষে রুট হিসাবে GNU সিপিতে) ডিভাইস নোডের বিষয়বস্তুগুলির চেয়ে cpঅনুলিপি করে ।
মার্সেলম

2
@ JBFWP286 একটি ডিভাইস নোড এমন একটি ফাইল যার মাধ্যমে আপনি হার্ডওয়্যার বা কার্নেল ড্রাইভারদের দ্বারা সরবরাহিত অন্যান্য বিশেষ বৈশিষ্ট্যগুলি অ্যাক্সেস করেন। এর প্রায় সব ফাইলই /devডিভাইস নোড। উদাহরণস্বরূপ, cp -R /dev/sr0 image.isoএমন image.isoএকটি ফাইল তৈরি করা হবে যার মাধ্যমে সিডি ড্রাইভটি অ্যাক্সেস করা হবে ঠিক যেমন /dev/sr0, আপনার নিয়মিত ফাইলের পরিবর্তে সিডি কন্টেন্টের অনুলিপি থাকা ফাইলটি cp /dev/sr0 image.iso
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
@ হাশিম আমি এই সিদ্ধান্তে পৌঁছাতে পারছি না যে এটির আরও ভাল পারফরম্যান্স রয়েছে। আমি উল্লেখ করেছি যে এটির মাঝে মাঝে আরও ভাল পারফরম্যান্স থাকে । আমি তৈরি একটি মানদণ্ডের সাথে আমি লিঙ্ক করেছি - সেরা ক্ষেত্রে ddবীট catকিন্তু কেবল সামান্য ব্যবধানে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

4

এই ক্ষেত্রে আকর্ষণীয় তথ্য রয়েছে, বিশেষত এগুলি:

  • আমি যে আউটপুটটি পেয়েছি এবং তা সরবরাহ করেছি (আমি এবার অন্য ডিস্কটি ব্যবহার করেছি, হুটো, Xubuntu 15.04 x64 সেটআপ ডিস্ক), এবং উভয় পদ্ধতিতে ( ddএবং pv) চেকসামগুলি অভিন্ন
  • আমার ধারণা ছিল, ddপ্রক্রিয়াটি করার পরে , ড্রাইভটি খুলুন এবং এটি একই ডিস্ক দিয়ে বন্ধ করুন এবং তারপরে pvপ্রক্রিয়াটি দিয়ে পরীক্ষাটি শেষ করুন । কেবল এটিই করে, আমি উভয় পদ্ধতির সাথে অভিন্ন অনুলিপি পেয়েছি।
  • আমার মনে হয় আমি প্রথমবারে বিভিন্ন চেকসাম পেয়েছি, কারণ কোনও কারণে সিডি / ডিভিডি ড্রাইভ থেকে সংগৃহীত ডেটা কিছু সময়ের জন্য (যেমন একটি ক্যাশের মতো) অন্য উদ্দেশ্যে "রেকর্ড" করা হয়েছে বলে মনে হয় - এইভাবে, চেকসামের মতো অন্যান্য ক্রিয়াকলাপগুলি ছিল স্থানান্তর চেয়ে অনেক দ্রুত তৈরি। আপনি যদি এর সঠিক কারণটি জানেন তবে মন্তব্য করুন।
  • আরেকটি সত্য হ'ল ddডাব্লু / ও count=Xপ্যারামিটারটি ডিস্কের শেষে সঠিকভাবে বন্ধ হয়ে যায় এবং একই সাথে ডিস্ক-চিত্র দেয় pv(চেকসামগুলি অভিন্ন) তবে আমার পক্ষে ddডাব্লু / ও প্যারামিটার বা কেবল ব্যবহার করা ভাল pv

সুতরাং, আপাতত, মনে হয় pvএবং ddএকই ফলাফলের সাথে একটি সিডি / ডিভিডি অনুলিপি সম্পাদন করতে পারে।

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