মেমস্টেস্ট 86 + ত্রুটির ইঙ্গিত অনুসারে একটি সঠিক খারাপ র‌্যাম সেক্টর কীভাবে কালো তালিকাভুক্ত করবেন?


28

মেমটেস্ট 86 + (উবুন্টু 13.04 এর সাথে অন্তর্ভুক্ত সংস্করণ) বলে

Failing address: 002f796c48 -    759.5 MB

memmapএই অঞ্চলটিকে বাইপাস করার জন্য আমি কার্নেল প্যারামিটারে কী নির্দিষ্ট করব ?

আমি দৌড়ানোর চেষ্টা করেছি memtester 770MBএবং এটি বলেছে যে সবকিছু ঠিক আছে তাই মনে হচ্ছে না যে মেমবেস্টের সূচকগুলি শুরু থেকেই 759.5 ম মেগাবাইটে একটি ত্রুটি।

কনফিগার করার জন্য এই মেমটেষ্ট ইঙ্গিতটি কীভাবে ব্যাখ্যা করবেন memmap?

আমার কাছে এখন নতুন র‌্যাম কেনার জন্য কোনও অর্থ নেই এবং ত্রুটিটি একক বলে মনে হচ্ছে আমি আশা করি আমি এটি কেবল ওভাররাইড করতে পারি।


FWIW, কার্নেল নির্দিষ্ট পৃষ্ঠাগুলিকে "সংরক্ষিত" হিসাবে চিহ্নিত করবে যদি এটি কোনও খারাপ বিভাগ সনাক্ত করে তবে পুনরুদ্ধার করতে সক্ষম হয়। "ফ্রি-এম" এর ফলাফল কী মোটের জন্য দু'জনের শক্তি দেখায়? আমি এটি ব্যাখ্যা করার একটি উপায় হিসাবে উল্লেখ করেছি যে স্মৃতিচিহ্নগুলি কেন খারাপ র‌্যাম দেখতে পারে না তবে স্মৃতিযুক্ত 86 + পারে।
ব্র্যাচলে

একাটিভালি দুটির মতো শক্তির মতো দেখায় না: i.stack.imgur.com/l86L1.png
ইভান

কোনও ত্রুটি শনাক্ত হওয়ার সময় (যদি আপনার এমনকি ইসি র‌্যামও থাকে) তবে এটি সাধারণত অনেক দেরিতে। বায়ো এবং কার্নেল উভয়ই কিছু র‌্যাম সংরক্ষণ করে ফ্রি-এম কখনও কখনও দু'জনের সমান শক্তিরও খবর দেয় না।
psusi

1
আমি একটি ইসিসি ল্যাপটপ কেনার স্বপ্ন দেখি তবে কোনও অফার কখনই পাওয়া যায়নি, দেখে মনে হচ্ছে তাদের অস্তিত্ব নেই।
ইভান

দেখে মনে হচ্ছে কার্নেলটি কোনও খারাপ পৃষ্ঠা (264-265 লাইন) খুঁজে পেলে প্রিন্টও করেছে।
ব্র্যাচলে

উত্তর:


26

memmap

এই টিউটোরিয়ালটির শিরোনাম রয়েছে: ব্যাড মেমোরি হাওটো যা কার্নেলের মাধ্যমে memmapআর্গুমেন্ট ব্যবহার করে কার্নেলের মাধ্যমে মেমরি অক্ষম করার বিষয়ে আলোচনা করে । আপনার কাছে কীভাবে 2 বিকল্প রয়েছে তা অনুসারে memmap:

  • খারাপ স্মৃতির পরে সবকিছু বন্ধ করুন - (mem=###M option)
  • খারাপ স্মৃতির চারদিকে কেবল স্মৃতিটি বন্ধ করুন - (memmap=#M$###M option)

প্রথম বিকল্পের সাহায্যে, যদি স্মৃতিশক্তি 600 মিটারে খারাপ মেমরির প্রতিবেদন করে তবে আপনি সেই বিন্দু থেকে র‌্যামের শেষ অবধি এই র‌্যামটি অক্ষম করতে পারবেন:

 mem=595M

যদি ৮০২ এম এবং ৮০7 এম-তে খারাপ র‌্যাম থাকে তবে আপনি 800 এম থেকে শুরু করে র‌্যামের একটি 10 ​​এম বিভাগটি অক্ষম করতে পারেন:

memmap=10M$800M

দ্রষ্টব্য: এটি 800 এম বেস ঠিকানার পরে 10 এম ব্ল্যাকলিস্ট করবে। memtest86+এই যুক্তিটি সঠিক কিনা তা নিশ্চিত করার জন্য আপনার পরে চালানো উচিত ।

BadRAM

উবুন্টুর জন্য ব্যাড্রাম নামে একটি প্যাচ উপলব্ধ। এটি উবুন্টু সম্প্রদায়ের সাইটে BadRAM শিরোনামের এই পোস্টে এটি খুব ভালভাবে আচ্ছাদিত হয়েছে ।

সেই পৃষ্ঠা থেকে বিশদটি ব্যবহার করে কার্নেলে প্যাচ প্রয়োগ করার পরে আপনি আপনার গ্রুব 2 সেটআপে পরিবর্তন আনছেন:

গ্রুব 2 এর জন্য সেই সাইট থেকে উদ্ধৃত অংশ

ন্যাটি-তে GRUB2 কনফিগারেশন ফাইলটিতে কার্নেল খারাপ র‌্যাম ব্যতিক্রমগুলি কনফিগার করার জন্য একটি লাইন রয়েছে। সুতরাং, আমি ধরে নেব এটি মেমরির একটি অংশ ম্যাপিংয়ের পছন্দসই উপায় যা ত্রুটিগুলি দেখায়। আমি যে রেখাটি সেট করেছিলাম তা ছিল

GRUB_BADRAM = "0x7DDF0000,0xffffc000"

আমি যে ওয়েব সাইটে সন্ধান করতে পারি তার প্রস্তাবিত উপায় হ'ল এটি সেট করা ছিল মেমেস্টেস্ট। Run চালানো এবং এটি আপনাকে ব্যাড্রামের সেটিংস প্রদর্শন করতে দেয়। memtest86 আমাকে প্রবেশ করতে হবে এমন জিনিসপত্রের একটি পৃষ্ঠা দিয়েছে। আমি দেখতে পেলাম যে সমস্ত ঠিকানাগুলি একটি 16 কে ব্লকে ছিল, তাই আমি কেবল 16 কে ব্লকটি কর্মের বাইরে ম্যাপ করতে চেয়েছি। এখানে আমি সঠিক এন্ট্রিটি তৈরি করেছি generated

প্রথম প্যারামিটারটি সহজ। এটিই খারাপ স্মৃতির বেস ঠিকানা। আমার ক্ষেত্রে, আমি দেখতে পেতাম যে সমস্ত খারাপ ঠিকানা 0x7DDF0000 এর চেয়ে বেশি এবং 0x7DDF4000 এর চেয়ে কম ছিল। সুতরাং, আমি 16K ব্লকের শুরুটিকে আমার সূচনা ঠিকানা হিসাবে নিয়েছিলাম।

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

/ ইত্যাদি / ডিফল্ট / গ্রুবে এই লাইনটি সেট করার পরে আমি সুডো আপডেট-গ্রাব চালিয়ে আবার রিবুট করেছি এবং আমার খারাপ স্মৃতি আর ব্যবহার করা হচ্ছে না। এই পদ্ধতিটি ব্যবহার করে খারাপ মেমরির মানচিত্র তৈরি করতে কোনও কার্নেল প্যাচগুলির প্রয়োজন নেই।

# 1 অনুসরণ করুন

স্মরণার্থী + এর জন্য উইকিপিডিয়া পৃষ্ঠাটি অনুসন্ধান করা + এটি নীচে জানিয়েছে:

মেমস্টেস্ট 86 w উইকিপিডিয়া পৃষ্ঠা থেকে উদ্ধৃত অংশ

মেমটেস্ট 86.৩.৩ এবং মেমস্টেস্ট 86 + ১.60০ থেকে শুরু করে প্রোগ্রামটি লিনাক্স কার্নেলের জন্য ব্যাড্রাম প্যাচ দ্বারা প্রত্যাশিত বিন্যাসে খারাপ র‌্যাম অঞ্চলগুলির একটি তালিকা আউটপুট করতে পারে; এই তথ্য ব্যবহার করে, একটি লিনাক্স সিস্টেম কিছুটা খারাপ বিট থাকলেও নির্ভরযোগ্যভাবে একটি র‌্যাম মডিউল ব্যবহার করতে পারে। Badubam প্যাচের প্রয়োজনীয়তা উপেক্ষা করে গ্রুব 2 কোনও আনপ্যাচড কার্নেলে এই একই তথ্য সরবরাহ করতে সক্ষম।

এছাড়াও আমি এই জেন্টো পৃষ্ঠা জুড়ে এসেছি যা memmap=...একটি হেক্স ঠিকানা ব্যবহার করে নির্দিষ্ট করেছে , যাতে আপনি এটি এটি নির্দিষ্ট করতে পারেন:

memmap=5M$0x2f796c48

5 এম হ'ল একটি অনুমান, স্পষ্টতই আপনি যে অঞ্চলটি চান আপনি যে পরিমাণ র্যামটি বাদ দিতে চান তার উপর নির্ভর করে আপনি এটি কম বা উচ্চতর স্থির করতে পারেন।

অবশেষে আপনি হেক্সে আকারও নির্দিষ্ট করতে পারবেন:

memmap=0x10000$0x2f796c48

0x2f796c48 ঠিকানায় 64KB এর সূচনা উপেক্ষা করবেন।

তথ্যসূত্র


"800M থেকে 804M" হ'ল "800M থেকে 810M" বলে আমি ধরে নিয়েছি ...
হউক লেগেইজ 20'13

এটি হতে পারে তবে আমি যা লিখেছিলাম তা ঠিক আছে, যদিও এটি 800 এম থেকে 810 এম এর মধ্যে 4 এম এর চেয়ে বেশি মেমরি ফেলে দেয়।
slm

1
১. আমি memmapবিকল্পটি সম্পর্কে জানি তবে প্রশ্নটি কীভাবে মেমমেস্ট 8686 + আউটপুট ব্যাখ্যা করতে হয় সে সম্পর্কে। আমি মেমেস্ট ৮86+ আউটপুটের একটি নির্দিষ্ট উদাহরণ দিয়েছি এবং এই নির্দিষ্ট ক্ষেত্রে memmap সেই অনুসারে কনফিগার করতে সহায়তা চেয়েছি । 2. "এই তর্কটি সঠিক কিনা তা নিশ্চিত করার জন্য আপনার পরে স্মৃতিযুক্ত 86 চালানো উচিত।" - memtest86 + একটি ওএস কার্নেলের আগে চলে তাই আমি memmapলিনাক্স কার্নেল বিকল্পটিকে এটি প্রভাবিত করতে পারে বলে গুরুতর সন্দেহ করি।
ইভান

@ ইভান, ১. আমি ভেবেছিলাম যে আমি যে উদাহরণগুলি অন্তর্ভুক্ত করেছি সেগুলি দেওয়া হলেও এটি স্পষ্ট ছিল তবে আপনার কিছু বলা দরকার: memmap=5M$759Mআপনার নির্দিষ্ট ক্ষেত্রে, স্মৃতিযুক্ত 86৫+ দেওয়া ব্যর্থ হচ্ছে 75৫৯.৫ এমবি। ২. আমি বোঝাতে চেয়েছিলাম যে আপনার memmap=...স্মরণে 86 + বিকল্পটিও পাস করা উচিত । এটি আমার দ্বারা অচিহ্নিত / অসমর্থিত তবে এমন কিছু যা আপনি স্মৃতিযুক্ত 86 + এর সাথে করতে সক্ষম হবেন।
slm

1
ঠিক আছে ধন্যবাদ. আমি নিশ্চিত ছিলাম না যে "002f796c48 - 759.5 মেগাবাইট" কী বোঝায় (সম্ভবত এটি 002f796c48 ঠিকানার পরে 759.5 মেগ হতে পারে বা এরকম কিছু হতে পারে) এবং আমি কখনও সন্দেহ করি নি যে আমি লিনাক্স কার্নেল প্যারামিটারগুলি মেমটেস্ট 86 + এ পাস করতে পারি (আমি ভেবেছিলাম এটি নিজেই কিছুই নয়) লিনাক্স দিয়ে)।
ইভান

14

মেমটেস্ট + + + (আমি 4.20 ব্যবহার করেছি) সরাসরি ব্যাডরাম ফর্ম্যাটটিকে আউটপুট দিতে পারে।

  1. কনফিগারেশন সংলাপে পৌঁছানোর জন্য 'সি' টিপুন স্মরণীয় কনফিগারেশন সংলাপ

  2. তারপরে "ত্রুটি প্রতিবেদন মোড" এর জন্য '4'

    স্মরণীয় ত্রুটির প্রতিবেদন মোড কথোপকথন

  3. তারপরে "BadRAM প্যাটার্নস" এর জন্য '3'

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

সর্বশেষ ফলাফল:

মেমটেস্ট 86 + + ব্যাড্রাম আউটপুট দেখাচ্ছে


4
এখন যদি আমাকে সেই হাতটি অনুলিপি না করে পরিবর্তে ত্রুটিগুলি টাইপ না করে গ্রুবের কাছে হস্তান্তর করা হয় তবে তা দুর্দান্ত।
এহতেশ চৌধুরী

8
আমি যা করেছি তা এর (ক্যামেরা ফোন) ফটো তোলা, জিম্পে লোড করুন, => গ্রেস্কেল => ইনভার্ট => কনট্রাস্ট / গামা তারপরে এটি হস্ত করুন tesseract ${IMG} stdout.. তারপরে / ইত্যাদি / ডিফল্ট inোকানোর আগে লাইনটি যাচাই করা হয়েছে এবং সংশোধন করা হয়েছে / গ্রাব ... সম্ভবত সরাসরি ম্যানুয়ালি এটি entering
োকানো যতক্ষণ লেগেছিল

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