1 台のサーバーに 512 MB の RAM モジュールが 4 つあります。memtest86+ を使用して RAM をテストすると、4 番目の RAM は 1 ビットのみエラーを示します。4 番目のスロットの RAM を他の RAM と交換しても、4 番目のスロットの RAM のまったく同じ場所でエラーが発生します。そのため、サーバーによって使用される RAM の特定のアドレス (または必要な場合は 4kb ページ) をブロックしたいと考えました。サーバーには fedora 11 がインストールされており、テスト目的でのみ使用されます。ユーザー アプリケーションはホストされていません。RAM の特定の部分の使用をブロックする方法はありますか。または、インストールされている RAM モジュールに関係なく、特定のバイトでエラーが発生する原因は何ですか。
答え1
最近、カーネルパラメータ(たとえば、grub configで起動時に提供するもの)があることを知りました。
memmap=[量]M$[開始場所]M
メモリの一部をロックアウトするために、これを何度も実行できます。
例えば。
メモリマップ=3M$217M
217から219までのメガバイトをロックアウトします
答え2
以前は Linux 用の「BadMEM」パッチがありましたが、それを現在のカーネルにアップグレードするには少し手間がかかります。
答え3
テストで判明したように、マザーボードのスロットが不良である可能性があります。そのスロットを使用しない以外に、この問題を回避する方法は見たことがありません。私の知る限り、簡単な答えはありません。何らかのソフトウェアを作成することはできると思いますが、nik が言ったように、それはむしろ SO の質問になるでしょう。
答え4
ロードされるとこのページを割り当てるだけで、それ以外は何もしないカーネル拡張機能を作成することもできます。
残念ながら、これを行う方法がわかりません。IBM の VM システムで作業していたときには、この機能は組み込まれていましたが、もちろん役に立ちません。