খারাপ সেক্টর সহ একটি ডিস্ক থেকে দ্রুত পুনরুদ্ধার


13

সম্প্রতি আমি ddএকটি অস্বাস্থ্যকর এইচডিডি থেকে কোনও ফাইলে যাওয়ার চেষ্টা করেছি । আমি ব্যবহৃত dd if=/dev/sdb of=somefile bs=4096 conv=noerror,sync। আমার সমস্যাটি ছিল ddযখন কোনও খারাপ ব্লকের মুখোমুখি হওয়ার সময় অনেক সময় নষ্ট হয়। আমার ব্যবহারের ক্ষেত্রে আমি খুব দ্রুততর ফলাফলের জন্য কিছু ডেটা হ্রাস সহকারে খুশি।

ত্রুটিটি দ্রুত পরিচালনা করার কোনও উপায় আছে কি? হতে পারে কার্নেলের একটি টুইট (এইচডিডি কে বলার জন্য কোনও ব্লক পড়ার জন্য কম প্রচেষ্টা করা)? নাকি অন্য কোন প্রোগ্রাম?

উত্তর:


29

প্রথমত, সফ্টওয়্যারটি ব্যবহার করার জন্য: আপনি এর ddrescueপরিবর্তে ব্যবহারের চেষ্টা করতে পারেন dd

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

ব্যবহারের উদাহরণ:

# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log

থেকে ddrescueতথ্য-পৃষ্ঠা:

   -n, --no-scrape     
          Skip the scraping phase. Avoids spending a lot of time
          trying to rescue the most difficult parts of the file.

   -r, --retry-passes=<n>
          Exit after given number of retry passes. Defaults to 0.
          -1 means infinity. Every bad sector is tried only once 
          in each pass. To retry bad sectors detected on a previous
          run, you must specify a non-zero number of retry passes.

এখানে ব্যবহারের জন্য কিছু অতিরিক্ত উত্স রয়েছে ddrescue:


সম্পাদন করা

যদি এইচডিডি নিজেই খুব বেশি সময় নিচ্ছে, আপনি TLER ( T ime L immitted E rror R ecovery) বা সিসিটিএল ( সি ওমান্ড সি ওপ্লেশন টি আইমে এল ইমিট) নামে একটি বৈশিষ্ট্য সক্ষম করার চেষ্টা করতে পারেন । সমস্ত এইচডিডি এর নেই তবে আপনি নিজেই এইচডিডি নিয়ন্ত্রকের সময় সীমাবদ্ধ করতে এটি ব্যবহার করতে পারেন। অবশ্যই এই পদ্ধতির ব্যবহারের সাথে অবশ্যই মিলিত হতে পারে ddrecue

লিনাক্সের একটি সরঞ্জাম রয়েছে smartctl( smartmontoolsপ্যাকেজে)।

বর্তমান সেটিংটি পরীক্ষা করার জন্য ("অক্ষম" মানে সীমাহীন সময়, যা আপনি চান না):

# smartctl -l scterc /dev/sda

এটি একটি নির্দিষ্ট মানতে সেট করতে (এই উদাহরণে 5.0 সেকেন্ড seconds এটিতে 0 সেট করা টিএলআরটি অক্ষম করে):

# smartctl -l scterc,50,50 /dev/sda

টিএলির ​​জন্য উত্স: http://en.wikedia.org/wiki/TLER


2
দেখার আরেকটি সরঞ্জাম হ'ল ডিসি 3 ডিডি যা ডিডি
এফএমপিআরফি

ওহ সুন্দর, আমি সেই সরঞ্জামটি জানতাম না!
স্লিজারড

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

2

এই সফ্টওয়্যারটি দিয়ে অন্যথায় অপঠনযোগ্য ডিস্ক থেকে আমার ভাল ফলাফল হয়েছিল।

http://www.cgsecurity.org/wiki/TestDisk

এই পরেরটি হ'ল একটি শক্ত পুনরুদ্ধার সরঞ্জাম। আপনার ফাইল টেবিলটি নষ্ট হয়ে গেছে বা সেগুলি মুছে ফেলা হলেও এটি ফাইলগুলি পেতে পারে। এটি একটি ভাল ভাল ফরেনসিক সরঞ্জাম। এটি সত্যিই অসংগঠিত উপায়ে জিনিসগুলি ফেলে দেয় তবে আপনি সমস্ত ডেটা স্থানান্তরিত করতে পারেন।

http://www.cgsecurity.org/wiki/PhotoRec


2

ডিস্কটি উদ্ধার করার জন্য দ্রুত এবং দ্রুত বিকল্পের জন্য আপনি একটি শ স্ক্রিপ্ট ফাইল ব্যবহার করতে পারেন এবং sh দিয়ে ফাইলটি চালাতে পারেন। এটিতে এই লাইনটি রয়েছে, কেবল পুনরাবৃত্তি করুন sudo ddrescueএবং sleep 3আরও কয়েকবার। ঘুমটি ড্রাইভকে কয়েক সেকেন্ড বিশ্রামে রাখতে ব্যবহৃত হয়:

#! /bin/sh -e 
sudo ddrescue -d -r0 -e +0 -T 1s -n /dev/drivepartition file.img log.logfile 
sleep 3

উপরে ব্যবহৃত বিকল্পগুলি:

  • -r0 : কোন চেষ্টা ছাড়া
  • -e +0: প্রথম ত্রুটিতে প্রস্থান করুন
  • -T 1s: 1 সেকেন্ড ব্যর্থ পড়া সহ প্রস্থান করুন
  • -d : সরাসরি আই / ও
  • -n : কোনও স্ক্র্যাপ নেই

আপনি একবার -Rবিকল্পের -Aসাথে সমাপ্তির পরে ব্যবহার করতে পারেন , এটি সমস্ত ত্রুটি বিপরীত হবে এবং মুছে ফেলবে এবং আবার পিছনের দিকে শুরু করবে। এর অর্থ এটি ত্রুটিগুলি অন্যভাবে পড়বে।


0

আপনার হার্ড ড্রাইভের আকার এবং এর মধ্যে কতগুলি খারাপ ব্লক রয়েছে তার উপর নির্ভর করে। সাধারণত 1 ডিআর স্বাস্থ্যকর এইচডি ডিডি ব্যবহার করে আমার 20 মিনিট সময় লাগে। খারাপ ব্লকগুলি নিয়ে আমি আজ সকালে সবে ফিরে এসেছি, আমাকে দুবার সময় নিয়েছে। আমার প্রায় 30 টি খারাপ ব্লক নকল করতে (একটি ডিস্ক ব্যাকআপ নিতে) সমস্যা হয়েছিল। আমি প্রথম কাজটি হ'ল নিয়মিত ফাইলজিলা ব্যবহার করে সমস্ত ভাল ডেটা ব্যাকআপ করা files আমি লক্ষ্য করেছি যে একটি বড় ফাইল সঠিকভাবে অনুলিপি করছে না (মাঝখানে থামছে এবং স্থানান্তরটি পুনরায় শুরু করবে)। ভাগ্যক্রমে আমার কাছে একই ফাইলের একটি পূর্ববর্তী ব্যাকআপ রয়েছে। ডিস্কটিকে নকল করতে, তারপরে আমাকে এই পদ্ধতিটি ব্যবহার করে ডিস্কের খারাপ ব্লকগুলি সন্ধান করতে হবে:

1 ম fdisk -l ব্যবহার করে এইচডি তথ্য সনাক্তকারী সমস্যা ডিস্কটি সন্ধান করুন

2 য় যদি আপনার ডিস্কটি / dev / sdb বলতে দেয় তবে আপনার কমান্ড ব্যাডব্লকস -v / dev / sdb চালানো দরকার এটি ড্রাইভে থাকা আপনার সমস্ত খারাপ ব্লকের তালিকা তৈরি করবে। ভাগ্যক্রমে কয়েক হবে। যদি কোনও খারাপ ব্লক পাওয়া যায় না, তবে আপনার ড্রাইভ ব্লকগুলি ঠিক আছে এবং অন্য কিছু বের করার দরকার রয়েছে। আমার ব্লকের আকার 512 তাই আমি ডিডি চালাতে সেই ডিফল্ট নম্বরটি ব্যবহার করি

তৃতীয় প্রতিটি ব্লক 512 আকারের, তাই আমি যা করেছি তা বিএস = 512 সেট করা

আমি প্রতিবারের মতো নিয়মিতভাবে ডিডি চালিয়েছি, ত্রুটি হওয়ার পরে আমার ডেটাটি দূষিত হবে। সুতরাং আমি পৃষ্ঠাটি https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html তে বর্ণিত প্যারামিটারগুলি ব্যবহার করি "ব্যর্থ ডিস্কগুলির জন্য" অংশটি অনুসন্ধান করুন।

dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync iflag=fullblock 

কিছুক্ষণ লাগল। প্রতিটি খারাপ ব্লকের ত্রুটিযুক্ত ড্রাইভে ধাক্কা দেওয়ার মতো শব্দ হয়। এটি ব্লক করে অনুলিপি করে এবং আমার সমস্ত খারাপ ব্লকগুলি একই শব্দ করে। কতবার শব্দ হয়েছে, কারণ এটি অন্য একটি খারাপ ব্লক খুঁজে পেয়েছিল এবং ডিসপ্লে ত্রুটি সম্পর্কে আপনাকে জানায় msg কি 'পরিবর্তন = noerror, সিঙ্ক' আউট খারাপ, NULs সঙ্গে সার্চ করার সময় না, প্যাড হয় 'iflag = fullblock' সংক্ষেপে সরবরাহ সার্চ, কিন্তু শেষ পর্যন্ত আপনার ডেটা সিঙ্ক আপ রাখে। কোনও দুর্নীতি নেই, এটি কেবল ত্রুটিযুক্ত ব্লকগুলি অনুলিপি করে না এবং খালি NULs দিয়ে এটি পূরণ করে।

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

দ্রষ্টব্য: আমার খারাপ ব্লকগুলি যেখানে একে অপরের কাছাকাছি। একসাথে প্রায় 4 টি ব্লক গ্রুপগুলিতে একসাথে যেখানে খারাপ সনাক্ত হয়েছে। যদি আপনার ব্লকগুলি সমস্ত ডিস্কের মধ্যে থাকে তবে বেশ কয়েকটি ফাইল প্রভাবিত হতে পারে। ভাগ্যক্রমে, আমার ক্ষেত্রে, একটি বড় ডাটাবেস 4 জিবি ফাইল কেবল প্রভাবিত হয়েছিল।


1
যদি একই উত্তরটি একাধিক প্রশ্নকে সম্বোধন করে, তবে প্রশ্নগুলি সদৃশ হওয়ার ভাল সুযোগ রয়েছে। যদি তা হয় তবে একটির উত্তর দেওয়া এবং অন্যটিকে সম্ভাব্য নকল হিসাবে পতাকাঙ্কিত করা ভাল। এটি পুনরাবৃত্ত উত্তরগুলি স্ফীত করা এড়ায় এবং প্রশ্নগুলির লিঙ্ক করা পাঠকদের পক্ষে সমস্ত উত্তর খুঁজে পাওয়া সহজ করে।
ফিক্সার 1234

আসলেই নয়, তবে আপনি যদি তাই ভাবেন তবে আমাকে জানায় আমি আমার উত্তরটি মুছব। আমি সঠিক সমাধানের জন্য সর্বত্র সন্ধান করেছি, তবে আমি আমার সার্ভারে কোনও সমস্যা সমাধানের একটি উপায় খুঁজে পেয়েছি। অনুরূপ আরও বেশ কয়েকটি প্রশ্ন রয়েছে, যা আমার সমস্যার উত্তর দেয়নি। এখন পর্যন্ত আমি প্রায় এক ডজন অনুরূপ ও সম্পর্কিত প্রশ্নগুলি পেয়েছি। আমার অভিজ্ঞতা লিখতে এবং আমি কীভাবে এটি সমাধান করতে সক্ষম হয়েছি সে সম্পর্কে আমি কেবল একটি দম্পতির উত্তর দিয়েছি। আপনি যদি আমার উত্তরটি মুছতে চান এবং আমাকে তা করতে পেরে খুশি হবেন তবে আমাকে জানান। শুভেচ্ছা।
লুইস এইচ ক্যাব্রেজো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.