ডিডি কি কোনও ধরণের যাচাইকরণ করে?


16

আমি ddএকটি পুরানো হার্ড ড্রাইভ থেকে নতুন একটিতে অনুলিপি ব্যবহার করছি । আমি নিশ্চিত হতে চাই যে ডেটার সততা সুরক্ষিত।

এই উত্তর সম্পর্কে , গিলস বলেছেন

যদি [dd] সাফল্যের সাথে শেষ করা হয় তবে হার্ডওয়ারের ত্রুটি ব্যতীত ব্যাকআপটি সঠিক correct

এর আসল অর্থ কি? ddযাচাইকরণে কি কোনও ধরণের বিল্ট রয়েছে?

আমি যদি এর পরিবর্তে আরএসসিএনসি ব্যবহার করি তবে --checksumযাচাই করতে আমিও দ্বিতীয় পাসটি চালাই । এই ধরণের পারানোয়া কি ন্যায়সঙ্গত?


"সততা সুরক্ষিত" সংজ্ঞা দিন।
থরবজর্ন রাভন অ্যান্ডারসন

@ থরবজর্নআরভানএন্ডারসেন আমি বোঝাতে চাইছি অনুলিপিটি আসলটির মতো।
স্পারহাক

আপনার যদি কেবল সমতল ফাইল থাকে তবে ফাইলগুলি অনুলিপি করার জন্য traditionalতিহ্যগত উপায়টি হল টার বা সিপিও ব্যবহার করা। জিএনইউ টারের একটি যাচাই পতাকা রয়েছে: gnu.org/software/tar/manual/html_section/tar_81.html । এই দিনগুলি rsyncসম্ভবত সবচেয়ে সহজ হবে।
থরবজর্ন রাভন অ্যান্ডারসন

1
"একটি হার্ডওয়্যার ত্রুটি ব্যতীত" ইঙ্গিত দেয় যে এটি কোনও যাচাইকরণ করে না । যদি এটি হয়, এটি হার্ডওয়্যার ব্যর্থতা সনাক্ত করতে পারে।
বর্মার

উত্তর:


20

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

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

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

সতর্কতা অবলম্বন এটি ddএকটি ব্যতিক্রম: কমান্ড লাইনের পরামিতিগুলির উপর নির্ভর করে ddকিছু ত্রুটি উপেক্ষা করতে পারে । এটি অত্যন্ত অস্বাভাবিক: ddএই সম্পত্তি সহ একমাত্র সাধারণ আদেশ। catপরিবর্তে ব্যবহার করুনdd , এইভাবে আপনি দুর্নীতির ঝুঁকি নেবেন না এবং এটি আরও দ্রুত হতে পারে

তথ্য অনুলিপি করার একটি শৃঙ্খলে, দুই ধরণের ত্রুটি দেখা দিতে পারে।

  • দুর্নীতি: স্থানান্তরকালে কিছুটা উল্টে যায়। অ্যাপ্লিকেশন পর্যায়ে এটি যাচাই করার কোনও উপায় নেই, কারণ যদি এটি ঘটে থাকে তবে এটি কোনও প্রোগ্রামিং বাগ বা হার্ডওয়্যার ত্রুটির কারণে ঘটেছিল যা পিছনে পড়ার সময় একই দুর্নীতির কারণ হতে পারে। এ জাতীয় কোনও দুর্নীতি ঘটেনি তা যাচাই করার একমাত্র কার্যকর উপায় হ'ল মিডিয়াটি শারীরিকভাবে সংযোগ বিচ্ছিন্ন করে আবার চেষ্টা করুন, সমস্যাটি যদি র‌্যামের সাথে থাকে তবে বিশেষত অন্য কম্পিউটারে on
  • ছাঁটাই: অনুলিপি করা সমস্ত তথ্য সঠিকভাবে অনুলিপি করা হয়েছিল, তবে কিছু ডেটা একেবারেই অনুলিপি করা হয়নি। এই এক হয় কখনও কখনও চেক ওয়ার্থ, কমান্ডের জটিলতা উপর নির্ভর করে। এটি করার জন্য আপনাকে ডেটা পড়ার দরকার নেই: কেবল আকারটি পরীক্ষা করুন।

আমি বিশ্বাস করি যে বেশিরভাগ স্টোরেজ মাধ্যমগুলি একটি একক বিট ফ্লিপ সনাক্ত করতে + সঠিক করতে পর্যাপ্ত FEC ব্যবহার করে।
উদ্যানক্ষেত্র

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

1
উত্তরের জন্য ধন্যবাদ (+1)। আমার সম্ভবত উল্লেখ করা উচিত যে আমি মোটামুটি বেসিকটি ব্যবহার করছি dd if=/dev/sdc of=/dev/sdb bs=4M, তাই আমার বোঝাটি হ'ল ত্রুটিগুলি এবং গতি উপেক্ষা করার বিষয়গুলি (তুলনায় কমবেশি cat) মোট oot আপনি কি তখন মাউন্ট করে আকারটি যাচাই করতে বলছেন df?
স্পারহক

4

না, ddএকটি স্পষ্ট যাচাই করে না। আপনি যদি নিজের ডিস্ক বা এর কোনও অংশের ফরেন্সিক্যালি যাচাই করা অনুলিপি / প্রয়োজন চান তবে ইউএস ডিফেন্স ডিপার্টমেন্ট ডিফেন্স কম্পিউটার ফরেনসিক ল্যাব কর্তৃক dcflddবর্ধিত সংস্করণ যা ব্যবহার করুন dd


4

"নিশ্চিত" হওয়ার একমাত্র উপায় হ'ল অতিরিক্ত পঠন-তুলনা পাস (ক্যাশে ফেলে দেওয়ার পরে) করা।

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

এই ধরণের পারানোয়া কি ন্যায়সঙ্গত?

আপনি যদি আপনার হার্ডওয়্যারকে নির্ভরযোগ্য বলে বিশ্বাস করতে না পারেন তবে বিষয়গুলি জটিল হয়ে উঠবে ...


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

ঠিক আছে, আপনি যদি এতদূর ddচলে যান তবে গুরুতর ডেটা দুর্নীতির সমস্যা রয়েছে তবে বিশেষ ক্ষেত্রগুলি যেমন এই প্রশ্নের অংশ নয়।
frostschutz

এই দুর্নীতির সমস্যাগুলি ব্যবহার করে উত্পাদিত ডেটা যাচাই করে প্রমাণ করতে পারে dd। আসল সমাধান হ'ল যে কোনও কিছু ব্যবহার করা তবে ddযেহেতু নীরব ডেটা দুর্নীতি একটি বিশেষত্ব dd
গিলস 16'7

2
@ গিলস, বা কেবল ddত্রুটি উপেক্ষা করতে বলবেন না । আপনি কোন প্রোগ্রামকে যা বলেছেন ঠিক তাই করার জন্য আপনি ঠিক দোষ দিতে পারবেন না।
চিহ্নিত করুন

@ মার্ক এবং কীভাবে, প্রার্থনা করুন, আপনাকে বলবেন যে ddত্রুটিগুলি উপেক্ষা করবেন না? এবং না, conv=noerrorএকটি সঠিক উত্তর নয়। উদাহরণ হিসাবে frostschutz এর উত্তর দেখুন । আমি কি করতে নকশা দোষারোপ ddউপেক্ষা ত্রুটি ডিফল্ট মোড তৈরীর জন্য, এবং যে খুব অবিকল অভ্যন্তরীণ বলবিজ্ঞান জেনে বন্ধ পরিণত করা যাবে না।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

2

হ্যাঁ, ত্রুটিযুক্ত হার্ডওয়ারটি কিছু হারে ডেটাতে এলোমেলো ত্রুটির বিটগুলি মেগাবাইটের সংখ্যার প্রতি এক বিট হিসাবে sertোকাতে পারে, এটি সম্ভব এবং কখনও কখনও অনুশীলনে ঘটে।

সাধারণত, আমি উত্স এবং গন্তব্য উভয়ই পুনরায় পড়ার মাধ্যমে ডেটা অক্ষত আছে তা যাচাই করতে আমি md5 বা sha1 হ্যাশ ব্যবহার করি, যেমন:

dd if=/dev/sdb of=~/hd_backup
dd if=/dev/sdb | md5sum
dd if=~/hd_backup | md5sum

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


ডিভাইসে ওএসকে ফাইল সিস্টেম ক্যাশে লিখতে বাধ্য করার জন্য ফাইলসমাট আনমাউন্ট / মাউন্ট করার পক্ষে এটি যথেষ্ট।
चमत्कार 173

miracle173, তবে সিঙ্ক করার পরেও ওএস কি লিখেছিল তা ক্যাশে রাখে না? সুতরাং আমি নিশ্চিত নই যে আনমাউন্টিং র্যাম থেকে সমস্ত ক্যাশে মুছে ফেলবে।
ম্যাট

1

থেকে man dd:

শেষ হয়ে গেলে, ডিডি সম্পূর্ণ ত্রুটিযুক্ত আউটপুট এবং আংশিক ইনপুট এবং আউটপুট ব্লক, কাটা কাটা ইনপুট রেকর্ড এবং বিজোড় দৈর্ঘ্য বাইট-সোয়াপিং ব্লকগুলির সংখ্যা প্রদর্শন করে।

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

ddপ্রতিবার এটি কোনও ব্লক অনুলিপি করে ইনপুট / আউটপুট ব্লক মাপের ম্যাচটি যাচাই করে। তারা না হলে, এটি একটি সতর্কবার্তা বা মারাত্মক ত্রুটি (সঙ্গে overidden ত্রুটি পরিচালনা noerror)। এই কারণেই ddকার্যত সারাক্ষণ কাজ করে।

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


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