লিনাক্সে হার্ড ডিস্ক থেকে খারাপ ব্লকগুলি খুব ধীরে ধীরে পড়ছে


5

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

ddrescue -f -n /dev/sda /dev/sdb log

এটি 16 জি (অপঠিত) ত্রুটিযুক্ত কয়েক ঘণ্টার মধ্যে সম্পন্ন হয়েছিল যার মধ্যে এখনও গুরুত্বপূর্ণ ডেটা থাকতে পারে, তাই আমি পরবর্তী পাসটি চালাচ্ছিলাম:

ddrescue -f -d /dev/sda /dev/sdb log

কিন্তু এটি খুব ধীর গতিতে (300b / s গড়) কারণ লিনাক্স প্রতিটি খারাপ খাতে আটকা পড়ে।
এটি আসলে লিনাক্স কার্নেল (সম্ভবত libata), একটি হার্ড ডিস্ক নয়, কারণ আমি পুনরুদ্ধার করার চেষ্টা করেছি DMDE টুলটি পরিষ্কার ডোএসে চলছে এবং কোন সমস্যা নেই: এটিএ টাইমআউট সেখানে টিউন করা যেতে পারে এবং সামগ্রিক পুনরুদ্ধারের প্রক্রিয়া অনেক দ্রুত সঞ্চালিত হতে পারে।
কিন্তু লিনাক্সে নয়।
আমি এই কার্নেল পরামিতি চেষ্টা করেছি: libata.ignore_hpa=1 libata.noacpi libata.force=noncq,norst এবং আরো libata.dma=0 bootlader এ cmdline এ গিয়েছিলাম, কিন্তু এর কোনো প্রভাব ছিল না (সিস্টেম রেসকিউ সিডি ব্যবহার করে im যেখানে LIBATA কার্নেলে সংকলিত)।
এছাড়াও ডিভাইস সময়সীমা পরিবর্তন করার চেষ্টা করেছেন:

echo 1 > /sys/block/sda/device/timeout

(ডিফল্ট 30)
কিন্তু এটি শুধুমাত্র syslog আরও বন্যার উত্পন্ন এবং সাহায্য করে না।
খারাপ ব্লকগুলিকে এখনও প্রতিটি সেক্টরের জন্য 1-3 মিনিট সময় লাগে যা অবিশ্বাস্যভাবে ধীর। 16 গিগাবাইট "খারাপ" অংশ বিশ্লেষণ করার জন্য কত সময় লাগবে? একটা সপ্তাহ? মাস?
আমি এখনও পছন্দ করি ddrescue পুনরুদ্ধারের জন্য (এর কার্যকরী অ্যালগরিদম এবং লগফিল কার্যকারিতা কারণে) এবং এটিতে জানতে চান কিভাবে দ্রুত গতিতে ata / disk ত্রুটি হ্যান্ডলিংয়ের জন্য কার্নেল ড্রাইভারটি সুরক্ষিত করতে হয়। গুগল এবং SU এ এখানে সম্পর্কিত প্রশ্ন সাহায্য করেনি। কোন ধারনা?

পুনশ্চ আমার ইংরেজীর জন্য দুঃখিত

@ ta.speot.is

কেন আপনি আপনার নিয়মিত ব্যাকআপ থেকে পুনরুদ্ধার করবেন না?

আমার বন্ধু এই হার্ড ডিস্ক, আমার নয়। তাই দু: খিত, তিনি কোন ব্যাকআপ আছে। এখন, ডিস্ক ক্র্যাশের পরে, সে ব্যাকআপগুলি তৈরি করার কথা ভাবছে, হ্যাঁ :)


UPD : 2.5 বছর পরও আমি এখনও উত্তরটি জানি না, কিন্তু শুধু বুঝতে পেরেছি ddrescue SATA নিয়ামক সামঞ্জস্যযোগ্যতা (আইডিই) মোডে থাকলে দ্রুত কাজ করে, অন্য টিপ সবসময় ব্যবহার করা হয় -d বিকল্প (সরাসরি এক্সেস) সামান্য জিনিস গতি আপ। এছাড়াও একটি চেহারা নিতে hdparm এইচডিডি টিউন অপশন ( -m, -D, -P ), এটি (পুরানো হার্ডওয়্যার) সাহায্য করতে পারে।


UPD2 : শুধু Slizzered এর লক্ষ্য উত্তর সম্পর্কিত প্রশ্ন। এটা দুর্দান্ত! আমি চেষ্টা করেছিলাম:

smartctl -l scterc,20,20 /dev/sda

এবং পুনরুদ্ধার আগে চেয়ে অনেক দ্রুত গিয়েছিলাম (শুধুমাত্র আইডিই মোড যদিও)।


কেন আপনি আপনার নিয়মিত ব্যাকআপ থেকে পুনরুদ্ধার করবেন না?
ta.speot.is

আপনার লিনাক্স কি উবুন্টু, কুবুন্টু ...?
poqdavid

@idavid আমি যেমন একটি প্রশ্নে উল্লেখ করেছি আমি পুনরুদ্ধারের জন্য সিস্টেম রেসকিউ সিডি ডিস্ট্রো ব্যবহার করেছি, যেমন আমি সবসময় করি।
lolimperator

@ ললিম্পপারেটর আপনি একটু ধীরগতির আমি এটি সংশোধন করা হয়েছে
poqdavid

হ্যাঁ, দুঃখিত, আমি SU তে নতুন, এটি আমার প্রথম পোস্ট / প্রশ্ন, কিন্তু আমি অতীতে অনেক সমাধান খুঁজে পেয়েছি (যেহেতু লিনাক্স আমার প্রিয় খেলনা লল হয়ে উঠেছে)। তাই আমি আশা করি যে কেউ একই সমস্যা পূরণ করেছে এবং সমাধান করার জন্য সঠিক পথে আমাকে এগিয়ে নিয়ে যেতে পারে অথবা কেবল একটি অভিজ্ঞতা ভাগ করতে পারে।
lolimperator

উত্তর:


0

ডিডিআরস্কু থেকে মানুষ:

(ব্যবহারকারী যে কোনও সময়ে বিঘ্ন সৃষ্টি করতে পারে, তবে সতর্ক থাকুন যে কার্নেল আপ না হওয়া পর্যন্ত একটি খারাপ ড্রাইভ ডিড্রেস্কিকে দীর্ঘক্ষণ ব্লক করতে পারে)

তাই সংক্ষিপ্ত উত্তর হল: DDRescue এর সাহায্যে আপনি কার্নেল টাইমআউট পরিবর্তন করতে পারবেন না (আপনি সঠিক জায়গায় সঠিক উৎস সম্পাদনা করতে এবং পুনরায় কম্পাইল করতে চান ... সহজ নয়!)।

হায়ারের বুটে থাকা কিছু সফ্টওয়্যার ব্যবহার করে আমার ভাল ফলাফল ছিল:

  • DataResque DD (একটি চিত্র তৈরি করুন)
  • রোডকিলের অপঠনীয় কপিয়ার (ফাইলগুলি এবং লগ ত্রুটিগুলি কপি করে)

MiniXP এ উভয় রান এছাড়াও হিরেন এর বুট অন্তর্ভুক্ত। এটা সিডি / ডিভিডি বা ইউএসবি ড্রাইভ থেকে চালানো।

পরামর্শ: হার্ডডিস্ক খুব গরম চালাতে পারে, এটি খারাপ এবং প্রক্রিয়াটি খারাপ। একটি ফ্যান সঙ্গে শান্ত, এই তাদের জীবন দীর্ঘতর এবং কাজ দ্রুত করতে পারেন।


নমস্কার! উত্তরের জন্য ধন্যবাদ. এটি আসলে আমার প্রাথমিক প্রশ্ন / সমস্যার সমাধান নয়, তবে ভবিষ্যতে আমার (এবং অন্যান্যদের) সহায়ক হতে পারে। ধন্যবাদ. পুনশ্চ upvoted (কোন ধারণা আছে যারা আপনাকে ডাউনভোট করা হয়)
lolimperator

মেরুদণ্ড হতে চান না কিন্তু আপনার প্রশ্ন ছিল: "কোন ধারনা?" ;-) সাহায্য করলেই খুশি ...

0

এটা কনফিগার করতে সহায়ক হতে পারে --skip-size= কিছু বৃহত্তর পরামিতি। এটি 64 কেবি মত ক্ষুদ্র কিছু ডিফল্ট, এবং একটি আধুনিক ড্রাইভে ক্ষতি ফালা অনেক বড় হতে পারে।

যদিও আপনি এখনও প্রতিটি সময়সীমার জন্য অপেক্ষা করতে হবে, তবে তাদের অপেক্ষা কম হবে।


0

প্রশ্নটি পোস্ট করার কয়েক বছর পরে এটি অন্য কারো সাহায্য করবে। আমি অন্য কোথাও এই উত্তর প্রধান অংশ দেখেছি এবং আমি নিশ্চিত না হলে -c বিকল্প পুরোনো ddrescue পাওয়া যায়। -c একটি সময়ে অনুলিপি করতে সেক্টর পরিমাণ পরিবর্তন।

এখানে যায়:

ddrescue -d -r0 -e +0 -T 1s -n /dev/sdX recover.img recover.log -c 1 -O

প্রতিস্থাপন করা X ড্রাইভ সঙ্গে আপনি পুনরুদ্ধার করার চেষ্টা করছেন। তথ্য বলা একটি ফাইল সংরক্ষণ করা হবে recover.img তাই আপনি পর্যাপ্ত স্থান প্রয়োজন হবে।

'খুব খারাপ এলাকা' ত্রুটির কারণে ক্র্যাশ করলে স্বয়ংক্রিয়ভাবে কোডটি চালানোর জন্য উপরের কোডের সামনে 'ঘড়ি' প্রোগ্রামটি ব্যবহার করুন।

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