লিনাক্স ডিস্কে আমি কীভাবে সহজেই একটি অপঠনযোগ্য ব্লক মেরামত করব?


22

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

ওয়েবে অনুসন্ধান করা খারাপ ব্লক হাওটোকে নিয়ে যায় , যা একটি আনমাউন্টড ডিস্কে একটি ম্যানুয়াল প্রক্রিয়া বর্ণনা করে। এটি জটিল এবং ত্রুটি-প্রবণ বলে মনে হচ্ছে। লিনাক্সে এই প্রক্রিয়াটি স্বয়ংক্রিয় করার জন্য কি কোনও সরঞ্জাম আছে? আমার কেবল অন্য বিকল্পটি হ'ল নির্মাতার ডায়াগনস্টিক টুল , তবে আমি অনুমান করি যে কী ক্ষতিগ্রস্থ হয়েছে তার কোনও রিপোর্ট না করেই খারাপ ব্লকটি ক্লোবার করব। সবচেয়ে খারাপ ক্ষেত্রে এটি ফাইল সিস্টেমের মেটাডেটা হতে পারে।

প্রশ্নযুক্ত ডিস্কটি প্রাথমিক সিস্টেম পার্টিশন। Ext3fs এবং LVM ব্যবহার করে। এখানে সিসলগ থেকে ত্রুটি লগ এবং স্মার্টকিটল থেকে প্রাসঙ্গিক বিট।

smartd[5226]: Device: /dev/hda, 1 Currently unreadable (pending) sectors

Error 1 occurred at disk power-on lifetime: 17449 hours (727 days + 1 hours)
... Error: UNC at LBA = 0x00d39eee = 13868782

পেস্টবিনে একটি সম্পূর্ণ স্মার্টটেল ডাম্প রয়েছে


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

2
আমার বোঝাটি হ'ল ডিস্ক ফার্মওয়্যার কেবল লেখার উপরেই ব্লকটি পুনর্নির্মাণ করবে না, পড়বে না। সুতরাং সত্যিই আমাকে প্রশ্নে ব্লকটিতে একটি জোর করে লিখতে হবে।
নেলসন

1
অবশেষে আমি এই ডিস্কটি অবসর নিয়েছি। এটি বেশ কয়েক মাস ধরে চলেছিল, তবে 5 তম পড়ার ত্রুটির পরে আমি এটি ছেড়ে দিয়েছি।
নেলসন

উত্তর:


12

আপনি চেষ্টা করতে পারেন hdparm --write-sector <LBA> /dev/ice

আমি এটি করার অন্য কোনও উপায় জানি না - আপনাকে এলবিএকে ম্যানুয়ালি ফাইল সিস্টেম ব্লকে রূপান্তর করতে হবে (যেমন আপনি ইতিমধ্যে খুঁজে পেয়েছেন)


ওহ, এটি একটি নতুন পতাকা! এটি অবশ্যই খারাপ ব্লকটি পুনঃনির্ধারণের যত্ন নেবে। এখন আমার যা দরকার তা হ'ল এটি কীভাবে নিবিড় হবে find
নেলসন

3
ডিস্কটি ঠিক করার জন্য এই পদ্ধতিটি ব্যবহার করে, আমি বলতে পারি এটি সঠিক পদ্ধতি। প্রশ্নে সেক্টরে একটি লেখার জন্য বাধ্যতামূলকভাবে ড্রাইভটি সেক্টরটির মুখোমুখি হতে বাধ্য করবে এবং (ক) একটি সফল লেখার সন্ধান করবে, বা (খ) পুনর্নির্মাণের সাথে স্থায়ী খারাপ দ্বিতীয়টি অর্জন করবে।
অ্যাভেরি পায়েেন

গ্রেট! চেয়ে এত সহজ smartmontools.sourceforge.net/badblockhowto.html
Janning

আশ্চর্যের বিষয় যে এই পুনরাবৃত্তি প্রক্রিয়া (স্মার্টের মাধ্যমে পরবর্তী খারাপ সেক্টর সন্ধান এবং পুনরায় বরাদ্দকরণে বাধ্য করা) কোনও সাধারণ ইউটিলিটি দিয়ে স্বয়ংক্রিয়ভাবে নির্মিত হয়নি! ..
ইম্জ - ইভান জাখারিয়াচেভ

32

আমি ডাব্লুডির জন্য ডিস্ক ফার্মওয়্যার লিখতাম, এবং আমি একবার ফার্মওয়্যারটি লিখেছিলাম যা খারাপ ব্লকগুলি পুনরায় স্বাক্ষর করে।

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

খারাপ ব্লক পুনর্নির্ধারণ সম্পর্কে (এটি পুনঃস্থাপনও বলা হয়)। হ্যাঁ, সাধারণত ত্রুটিটি যথেষ্ট খারাপ হলে ড্রাইভটি একটি সেক্টরকে পুনরায় নিয়োগের চেষ্টা করবে (যেমন, ইসিসি ব্যর্থতা যথেষ্ট খারাপ) তবে ইসিসি সংশোধনের পরেও ড্রাইভটি ডেটা পুনরুদ্ধার করতে পারে। সাধারণত এটি স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। একমাত্র ব্যতিক্রম হ'ল হোস্ট পূর্বে ড্রাইভকে স্বয়ংক্রিয় পুনঃস্থাপন না করার কথা বলতে পারত, তবে এটি খুব কমই সম্পন্ন হয়।

তাহলে কী ঘটে যদি ড্রাইভটি একটি পঠন করে এবং ডেটা পুনরুদ্ধার করতে না পারে? কিছুই নেই। ত্রুটিটি হোস্টকে জানানো হয়েছে, তবে কোনও পুনরায় নিয়োগ দেওয়া হয়নি। সমস্যাটি হ'ল ড্রাইভটি সেক্টরটিকে পুনরায় নিয়োগ করতে পারে, তবে নতুন পুনর্নির্দিষ্ট সেক্টরে কী ডেটা লিখতে হবে তার সামান্যতম ধারণা নেই। যদি এটি কেবল একটি গুচ্ছ জিরো লিখেছিল, বলুন এবং তারপরে আবার সেক্টরটি পড়তে পারা যায়, এটি ডেটা বৈধ নয় বলে কোনও ইঙ্গিত ছাড়াই সমস্ত জিরো ফিরিয়ে দেয়। এটি মূলত ডেটা দুর্নীতি হিসাবে একই জিনিস। ড্রাইভটি বিভিন্ন কারণে হোস্টের ত্রুটির উপর নজর রাখতে পারে না (উদাহরণস্বরূপ, যদি ড্রাইভটি একটি নতুন হোস্টে স্থানান্তরিত হয় তবে কী হবে?), তাই ডেটা করতে না পারলে কর্মের সর্বোত্তম উপায় হ'ল ' পুনরুদ্ধার করা হবে না।

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

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


1
এটিও উল্লেখ করার মতো বিষয় যে কমপক্ষে কিছু সিগেট এইচডিডি hdparm -Rরাইটিং -রিড-ভেরিফাই সমর্থন করে, যা ব্যবহার করে চালু করা যেতে পারে (যুক্তিসঙ্গতভাবে সাম্প্রতিক এইচডিপিএম ধরে নিলে)। এটি একটি উল্লেখযোগ্য রাইটিং পারফরম্যান্স পেনাল্টিতে আসে (প্রায় অর্ধেক রাইটিং থ্রুপুট লিখুন এবং আইওপিএস লিখুন, কারণ প্রতিটি লেখায় এখন একটি পরবর্তী পাঠ্য আসে) তবে যদি আপনার হার্ডওয়্যার এটি সমর্থন করে এবং আপনার কাজের চাপ পড়তে ভারী হয় তবে এটি খুব কার্যকরভাবে কার্যকর প্রতিরোধমূলক ব্যবস্থা হতে পারে ।
একটি সিভিএন

2

আমি মনে করি আপনাকে যা করতে হবে তা হ'ল:

e2fsck -c /dev/hda1

ধরে নেওয়া / dev / hda1 হল পার্টিশনটি (আনমাউন্ট করা)। বা:

e2fsck -c -c /dev/hda1

একটি (ধীর) অ-ধ্বংসাত্মক পাঠ্য-লিখন পরীক্ষা করতে। এটি এখনও আনমাউন্ট করতে হবে। আমি মনে করি না যদিও এটি আপনাকে কোনও হারানো ডেটার বিবরণ দেবে।


তবে এটি দুঃখের বিষয় যে এটি স্মার্ট থেকে খারাপ-ব্লক সম্পর্কিত তথ্য ব্যবহার করে না। কেন আমি ভাবছি কোন fsck সরঞ্জাম যা স্মার্ট থেকে খারাপ ব্লক তথ্য ব্যবহার এবং তাদের এড়ানোর চেষ্টা করুন বা বর্ণনা অনুযায়ী মেরামতের আক্রান্ত ফাইল হবে smartmontools.sourceforge.net/badblockhowto.html বা serverfault.com/a/106130/68972 । ..
ইম্জ - ইভান জ্যাকারিয়াশেভ

2

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

আমার একটি ল্যাপটপ ড্রাইভ ছিল যা কয়েক বছর আগে কিছু শব্দ করতে শুরু করে। ব্যাডব্লকগুলি দেখিয়েছে যে ড্রাইভটিতে 118 বা এত খারাপ ব্লক রয়েছে যা শেষ ব্যবহারকারীর কাছে দৃশ্যমান। যেহেতু আমার কাছে ইতিমধ্যে স্পিনরাইটের একটি অনুলিপি ছিল আমি একটি নতুন ড্রাইভ কেনার আগে চেষ্টা করে দেখার সিদ্ধান্ত নিয়েছি। ড্রাইভে স্পিনিরাইট চালানোর পরে ব্যাডব্লকগুলি 0 টি খারাপ ব্লক দেখিয়েছিল এবং শোরগোল বন্ধ হয়ে গেছে। তখন থেকেই দু'বছর ধরে ড্রাইভটি কাজ করে যাচ্ছিল।


নেলসন আপনি কি প্রতিটি উত্তর ভোট দিতে চলেছেন যা আপনি শুনতে চান না? একটি স্বাস্থ্যকর ড্রাইভ স্বয়ংক্রিয়ভাবে একটি খারাপ ব্লকের পুনরায় তৈরি করবে। এটিকে জোর করার জন্য যদি আপনাকে কিছু করতে হয় তবে ড্রাইভটি আর স্বাস্থ্যকর নয় এবং প্রতিস্থাপন করা উচিত।
3dinfluence

না, আমি কেবলমাত্র একটি প্রতিক্রিয়া হ্রাস করেছি কারণ এটি আমার প্রশ্নের উত্তর দেয়নি। আপনি স্পিনরাইট পরামর্শ দিয়েছেন, ধন্যবাদ! আমার বোধগম্যতা একটি স্বাস্থ্যকর ড্রাইভ কোনও খারাপ খাতকে না লেখা পর্যন্ত পুনরায় তৈরি করবে না । আমি কোনও লেখার উপর চাপ দেওয়ার সহজ উপায়টি খুঁজতে চেষ্টা করছি। ম্যাথিউয়ের পরামর্শে গিয়ে দেখুন fsck এটি করার জন্য যথেষ্ট স্মার্ট কিনা।
নেলসন

দুঃখিত 2 টি উত্তর দ্রুত ভোট দিয়েছিল দেখে আমি সিদ্ধান্তে ঝাঁপিয়ে পড়েছি এবং আপনি যে উত্তরটি দিয়েছিলেন তা আমিই ধরে নিয়েছিলাম বলে আপনি উত্তর দিয়েছিলেন।
3dinfluence

2
আপনি সঠিক যে খারাপ সেক্টর পুনর্নির্মাণ ঘটে যখন কোনও লিখন একটি ব্লকে ব্যর্থ হয়। যদি আপনার কেবলমাত্র ফাইল সিস্টেম সম্পর্কিত দূষিত ব্লক থাকে তবে fsck আপনার সমস্যাটিকে বাছাই করতে পারে যদি প্রশ্নে থাকা ব্লকটি মেটাডেটা ব্লক হয়। fsck সত্যিই কেবল স্ক্যান করে এবং মেটাডেটাতে ত্রুটিগুলি সংশোধন করে। সুতরাং এটি নিজেই ডেটাতে কোনও গ্যারান্টি দেয় না। বিটিআরএফএস এবং জেডএফএসের মতো পরবর্তী জেনের ফাইল সিস্টেমগুলি সনাক্ত করতে পারে এবং যদি আপনার অতিরিক্ত তথ্য সঠিক ত্রুটি থাকে। স্পিনরাইট এটি যেমন পড়বে তেমন জোর করবে, তারপরে উল্টানো ডেটা লিখবে, পুনরায় পড়বে, তারপরে স্ক্যানের অংশ হিসাবে প্রতিটি ব্লকের ডেটা ফিরিয়ে আনবে।
3rdfluence

1

যদি আপনার ব্যাকআপ থাকে এবং আপনি জানেন যে এটি একটি লজিকাল ত্রুটি এবং ফিজিক্যাল একটি নয়, তবে এটির সবচেয়ে ভাল উপায় হ'ল ডিস্কটি শূন্য করা।

আমি এমএইচডিডি ব্যবহার করব এটি ব্যবহার করা মোটামুটি সহজ এবং যতক্ষণ না আপনি বায়োজে আপনার এইচডিডি আইডিই অনুকরণে সেট করতে এবং আপনার কাজটি শেষ হয়ে যায় তখন আপনি এএইচসিআই-তে ফিরে যান যখন আপনার চিন্তার কিছু নেই।

একবার আপনি এমএইচডিডি বুট করার পরে আপনার ড্রাইভের প্রকারের কমান্ডটি বেছে নিন এবং আপনার পছন্দটি নিশ্চিত করুন।

নিজেকে কিছুটা সময় নিতে পারে কফিকে পান।

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

যদি কোনও ইউএনসি ত্রুটি না থাকে তবে অভিনন্দন আপনাকে এবং আপনার ড্রাইভটি আগামী বছরগুলিতে বন্ধু হতে পারে।


-1

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


আমি ডিস্কটি খারাপ তা জানার এবং ঝুঁকি এড়াতে ব্যাকআপ নেওয়ার বিষয়ে স্পষ্ট করেছিলাম।
নেলসন

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

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