একটি খারাপ ক্ষেত্র একটি ব্যর্থ ডিস্ক নির্দেশ করে?


16

আমার উবুন্টু 13.10 সিস্টেমটি গত কয়েক দিন ধরে খুব খারাপভাবে পারফর্ম করছে। কার্নেলের লগগুলি দেখে, মনে হয় যে <1 বছর বয়সী 3 টিবি স্যাটা ডিস্কটিতে একটি নির্দিষ্ট সেক্টরের সমস্যা রয়েছে:

Nov  4 20:54:04 mediaserver kernel: [10893.039180] ata4.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Nov  4 20:54:04 mediaserver kernel: [10893.039187] ata4.01: BMDMA stat 0x65
Nov  4 20:54:04 mediaserver kernel: [10893.039193] ata4.01: failed command: READ DMA EXT
Nov  4 20:54:04 mediaserver kernel: [10893.039202] ata4.01: cmd 25/00:08:f8:3f:83/00:00:af:00:00/f0 tag 0 dma 4096 in
Nov  4 20:54:04 mediaserver kernel: [10893.039202]          res 51/40:00:f8:3f:83/40:00:af:00:00/10 Emask 0x9 (media error)
Nov  4 20:54:04 mediaserver kernel: [10893.039207] ata4.01: status: { DRDY ERR }
Nov  4 20:54:04 mediaserver kernel: [10893.039211] ata4.01: error: { UNC }
Nov  4 20:54:04 mediaserver kernel: [10893.148527] ata4.00: configured for UDMA/133
Nov  4 20:54:04 mediaserver kernel: [10893.180322] ata4.01: configured for UDMA/133
Nov  4 20:54:04 mediaserver kernel: [10893.180345] sd 3:0:1:0: [sdc] Unhandled sense code
Nov  4 20:54:04 mediaserver kernel: [10893.180349] sd 3:0:1:0: [sdc]
Nov  4 20:54:04 mediaserver kernel: [10893.180353] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Nov  4 20:54:04 mediaserver kernel: [10893.180356] sd 3:0:1:0: [sdc]
Nov  4 20:54:04 mediaserver kernel: [10893.180359] Sense Key : Medium Error [current] [descriptor]
Nov  4 20:54:04 mediaserver kernel: [10893.180371] Descriptor sense data with sense descriptors (in hex):
Nov  4 20:54:04 mediaserver kernel: [10893.180373]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Nov  4 20:54:04 mediaserver kernel: [10893.180384]         af 83 3f f8
Nov  4 20:54:04 mediaserver kernel: [10893.180389] sd 3:0:1:0: [sdc]
Nov  4 20:54:04 mediaserver kernel: [10893.180393] Add. Sense: Unrecovered read error - auto reallocate failed
Nov  4 20:54:04 mediaserver kernel: [10893.180396] sd 3:0:1:0: [sdc] CDB:
Nov  4 20:54:04 mediaserver kernel: [10893.180398] Read(16): 88 00 00 00 00 00 af 83 3f f8 00 00 00 08 00 00
Nov  4 20:54:04 mediaserver kernel: [10893.180412] end_request: I/O error, dev sdc, sector 2944614392
Nov  4 20:54:04 mediaserver kernel: [10893.180431] ata4: EH complete

kern.logফাইল বেশিরভাগই পুনরাবৃত্তি উপরে ত্রুটির পূর্ণ 33MB প্রায় নেই এবং সেক্টর পুনরাবৃত্তি বার্তা যে কোন আলাদা হতে প্রদর্শিত হবে না।

আমি বর্তমানে আনমাউন্টড ডিস্কটিতে নিম্নলিখিত কমান্ডটি চালাচ্ছি এবং পরীক্ষা করতে ডিস্কের যে কোনও সমস্যা রয়েছে তা বাছাই করার চেষ্টা করছি। আমি প্রায় 12 ঘন্টা প্রায় আছি এবং ডিস্কটি এত বড় হওয়ায় আরও 24/48 ঘন্টা লাগবে বলে আশা করি:

e2fsck -c -c -p -v /dev/sdc1

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

দ্রুত আপডেট!

e2fsck অবশেষে 2 দিন পরে শেষ হয়েছে প্রচুর 'বহুগুণ-দাবিযুক্ত ব্লক (গুলি) ইনোডে' দিয়ে। ফাইল সিস্টেমটি মাউন্ট করার চেষ্টা করার ফলে একটি ত্রুটি ঘটেছে, এটিকে কেবল পঠনযোগ্য অবস্থায় ফেলে দিতে বাধ্য করেছে:

Nov 11 08:29:05 mediaserver kernel: [211822.287758] EXT4-fs (sdc1): warning: mounting fs with errors, running e2fsck is recommended
Nov 11 08:29:05 mediaserver kernel: [211822.301699] EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: errors=remount-ro

খাতটি ম্যানুয়ালি পড়ার চেষ্টা করা হচ্ছে:

sudo dd count=1 if=/dev/sdc of=/dev/null skip=2944614392
dd: reading ‘/dev/sdc’: Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 5.73077 s, 0.0 kB/s

এটি লেখার চেষ্টা করছেন:

sudo dd count=1 if=/dev/zero of=/dev/sdc seek=2944614392
dd: writing to ‘/dev/sdc’: Input/output error
1+0 records in
0+0 records out
0 bytes (0 B) copied, 2.87869 s, 0.0 kB/s

উভয়ই গণনায়, Reallocated_Sector_Ct0 রইল।

ড্রাইভটি প্রায়শই ঘুমের রাজ্যে যায়। আমি এখন ভাবছি এটি কোনও ফাইল সিস্টেমের সমস্যা হতে পারে? আমি 100% নই


4
এটি প্রায় / অবশ্যই / আপনার ব্যাকআপগুলি ক্রমে রয়েছে তা নিশ্চিত করার জন্য একটি চিহ্ন এবং তারপরে আপনার হার্ডওয়্যারটি পরীক্ষা করুন।
শাদুর

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

ডিস্ক ব্যর্থ দেখুন এই Q & A- এর যেখানে আমি কীভাবে এগোতে হবে আবৃত করেছি: unix.stackexchange.com/search?q=user%3A7453+hdat
SLM

2
... যদি এই ড্রাইভটি একটি ত্রুটিযুক্তটিকে প্রতিস্থাপন করে, তবে ড্রাইভের চেয়ে এটি নিয়ামক হওয়ার সম্ভাবনা রয়েছে।
শাদুর

উত্তর:


17

খারাপ খাতগুলি সর্বদা একটি ব্যর্থ এইচডিডি এর ইঙ্গিত হয়, বাস্তবে আপনি যখন এই জাতীয় আই / ও ত্রুটি দেখতে পান, আপনি সম্ভবত ইতিমধ্যে কিছু ডেটা হারিয়ে / ক্ষতিগ্রস্থ করেছেন। আপনার যদি ইতিমধ্যে না থাকে তবে একটি ব্যাকআপ করুন, একটি স্ব-পরীক্ষা চালান smartctl -t long /dev/diskএবং স্মার্ট ডেটা পরীক্ষা করুন smartctl -a /dev/disk। পারলে প্রতিস্থাপন পান।

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


ধন্যবাদ। এটি সবসময় আমার জন্য ধূসর অঞ্চল হিসাবে এটি জেনে সত্যিই সহায়ক। আমি ড্রাইভ শূন্য করতে যাচ্ছি এবং এটিকে ফেরত পাঠাচ্ছি, কারণ এটি ওয়্যারেন্টির মধ্যে রয়েছে।
মিঃনরম

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

2
কোনও ফাইল সিস্টেমের জন্য পড়ার ত্রুটিগুলিও দেখা যেতে পারে যা কোন কারণে আসল ডিস্কের চেয়ে বড়।
থরবজর্ন রাভন অ্যান্ডারসন

@ ফ্রস্টসচুটজ এর অর্থ Get a replacement if you can.কী? আপনি কি ডিস্ক প্রতিস্থাপন মানে?
বিমান

10

খাতগুলি পুনরায় চিহ্নিত করতে ড্রাইভ তৈরি করতে, সাধারণত আপনাকে সেগুলিতে কিছু লিখতে হবে। যাইহোক, dd( ডি isk ডি estroyer) সবসময় কাজ করে, এবং খুব অনিরাপদ: আপনি গুলান skipএবং seekবিকল্প, আপনি সহজেই নিজের পায়ে দ্বারা অঙ্কুর পারেন skipপিংN প্রথম ব্লক /dev/zeroথেকে যে, "পূর্ণ" একটি ব্লক লেখার উপর আপনার হার্ড ডিস্কের সেক্টর 0

আপনি যদি সত্যিই জানেন যে আপনি জোরোর সাথে সেক্টরটি ওভাররাইট করতে বাধ্য করতে চান তবে আপনার ব্যবহার করা উচিত hdparm:

% sudo hdparm --read-sector 833192656 /dev/sda
/dev/sda:
reading sector 833192656: FAILED: Input/output error

হ্যাঁ, সেক্টর 833192656 স্মার্ট-পরীক্ষায়ও ব্যর্থ হয়েছিল। এটিতে শূন্য লিখতে, ব্যবহার করুন --write-sector:

% sudo hdparm --write-sector 833192656 /dev/sda
/dev/sda:
Use of --write-sector is VERY DANGEROUS.
You are trying to deliberately overwrite a low-level sector on the media.
This is a BAD idea, and can easily result in total data loss.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted.

সেফগার্ড হিসাবে, hdparmআপনি যদি --yes-i-know-what-i-am-doingসুইচটি পাস না করেন তবে সত্যিই কিছু লিখবেন না hdparm:

% sudo hdparm --yes-i-know-what-i-am-doing --write-sector 833192656 /dev/sda
/dev/sda:
re-writing sector 833192656: succeeded
% sudo hdparm --read-sector 833192656 /dev/sda                              

/dev/sda:
reading sector 833192656: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
[      ... more zeroes here...        ]
0000 0000 0000 0000 0000 0000 0000 0000

%

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

7

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

আপনি badblocks -nপ্রতিটি সেক্টর পড়তে ও পুনরায় লেখার জন্য ড্রাইভ চালাতে পারেন, বা আপনার ক্ষেত্রে যেহেতু আপনি ইতিমধ্যে প্রশ্নে থাকা সেক্টরের সংখ্যা জানেন তাই ddআপনি এটিতে শূন্য লিখতে ব্যবহার করতে পারেন । আপনি স্মার্ট পরিসংখ্যানগুলির সাথে এটি পরীক্ষা করতে পারেন smartctl -a। আপনার মুলতুবি বাতিল হওয়া গণনাটি দেখতে পাওয়া উচিত যে কতগুলি সেক্টর পড়তে ব্যর্থ হয়েছে এবং সেক্টরটি লেখার চেষ্টা করার পরে, এই গণনা হ্রাস পাবে। রিলোকেটেড সেক্টর গণনাটি আরও বাড়তে পারে, এক্ষেত্রে এটি শারীরিকভাবে খারাপ ছিল এবং অতিরিক্ত পুলটিতে এটি পুনরায় তৈরি করা হয়েছিল, এবং এটি ড্রাইভটি বেরিয়ে যাওয়ার ইঙ্গিত হতে পারে। যদি তা না হয় তবে তা কেবল স্ক্যাম্বলড ছিল এবং এখনই ঠিক করা উচিত।

প্রথমে খাতটি পড়ার চেষ্টা করুন:

dd count=1 if=/dev/sda of=/dev/null skip=nnnn

যদি এটি ব্যর্থ হয়, তবে আপনার সংখ্যাটি ঠিক আছে, তবে আপনি এটি দিয়ে শূন্য করতে পারেন:

dd count=1 if=/dev/zero of=/dev/sda seek=nnnn

এন্টার টিপানোর ঠিক আগে আপনি কমান্ডটি টাইপ করেছেন তা পরীক্ষা করে দেখুন।


আপনি এটি বলছেন এটি আকর্ষণীয়, কারণ আপনার আদেশগুলি অনুসরণ করে আমি কিছু আকর্ষণীয় তথ্য পেয়েছি। আমি উপরে আমার প্রশ্ন সংশোধন করেছি।
মিঃনরম

আপনার ড্রাইভটি কোনও কারণে স্মার্টকে সমর্থন করে না বা কেন আপনি এখনও এটি পরীক্ষা করেননি?
frostschutz

1
@ ফ্রস্টসচুটজ "উভয়ই বিবেচনায়, রিলোক্যাটেড_সেক্টর_সিটি ০. রয়ে গেছে।" মনে হচ্ছে ওপি স্মার্ট পরীক্ষা করেছে
একটি সিভিএন

@ মিঃনরম, smartctl -aআপনার প্রশ্নের সম্পূর্ণ আউটপুট যুক্ত করুন please
psusi

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