次のページ 前のページ 目次へ

4. 動くようにする

ねじ回しを使わずに(訳注:つまりコンピュータのケースのふたをはずして中をいじることをせずに、という意味)、BadRAMを正しく動作させる方法があるにはありますが、あなたのシステムを不安定な状態のままにしてしまうことになりかねないため、私からはお勧めできません。 私はみなさんに対して、不良メモリと慣れ親しんでいただくことを望んでいるわけではないので、ここではもっと安全な方法をお教えしておきます −

4.1 もっとも大切なことは「確認」すること!

不良な RAM を扱う上において、常に気にとめておくべき2つの基本事項があります −

さて、ここからはあなたが2つのメモリを持っていることを期待して書き進みます − 一つは問題のない(良い RAM モジュール、と呼びます)もの、もう一つは疑わしいものです。 もし、あなたが一つしかモジュールを持っていないなら、後に述べる「一つしかモジュールがない場合」を参照してください。いずれにせよどうやってメモリをチェックするかを学ぶためにはこの章も読んでおかなければならないでしょう。

最初にすべきことは、怪しいと思われるモジュールを取り外すことです。それから、通常通りシステムを起動します。 ちょっとした作業をし(約10分ほどの作業です)、不良メモリに関係したトラップやエラーやバグが無いかを調べます。もし何かが起こるとしたら、次のようなことでしょう。

もし、何の問題もなかったならば、あなたは PC に入っているそのメモリを「とりあえず良いモジュール」としてしばらくマークしておきます。

(訳注: 複数のメモリモジュールを増設単位とするマザーボードもあります。たとえば古い(初期の)EDO-RAM を使うPentium 対応チップセットの中には、2枚単位でのモジュール装着を必要とするものもあります。 また、信頼性を要求するような用途に用いられるマザーボードにもそういうものがあります。そういう場合2枚以上のモジュールについて同時に作業しないといけません。詳しくはお手持ちの PC のマザーボードの説明書などをご覧ください)

さて、まだダウンロードしていないならここで memtest86 をダウンロードして、圧縮を解いてコンパイルしましょう。それから添付文書にちょっと目を通します。 私自身時々守らないこともあるのですが、 memtest86 はディスク(訳注:フロッピーディスクです)にインストールすることをお勧めします。こうすることの利点と欠点については後に「さらなるヒント」の章で説明します。

それでは、memtest86 でPCを起動させ、少なくともその最初の3つのテストについては「とりあえず良いモジュール」について実施してください(これはあまり時間の掛からないやりかたですので「手早いメモリテスト」と呼ぶことにします)。 もし不良の領域が見つかったなら(右上の方に表示されるエラーの数が増えて行くことでわかります)、あなたのメモリには問題があります。その場合は、このモジュールを「悪いモジュール」として扱わなければなりません! つづいて、先ほど一時的に取り外したメモリモジュールをPC に戻して、memtest を再度実行します。もしどちらのモジュールも不良だった場合、どちらかを脇に置いておいて、一つのモジュールだけを使って「一つしかモジュールがない場合」へ読み進んでください!

「手早いメモリテスト」を問題なくパスしたら、これを「良いメモリ」と呼んでいいでしょう。今すべきことは、このモジュールをマザーボードの最初の RAM バンクに残しておくことです(お手持ちのマザーボードの説明書をごらんになり、どれがそれかを確認してください。だいたい、最初のバンクは "Bank 0"と呼ばれているはずです)。 Linux カーネルやmemtestは通常の動作のために、これら良い領域を必要とするので、以降取り外したりしないでください!

(訳注:先に述べた、複数単位で装着しなければならないようなボードでは "Bank 0" と "Bank 1" ....と残します)

つづいて、不良なモジュールを PC の高位バンク(訳注:先ほどの良いメモリを"Bank 0"に入れたなら、"Bank 1" に。一部のマザーボードなら "Bank 2" 以上からになるでしょう)に追加します。 当たり前の事ながら、RAM のサイズは増加するでしょうが、しかし、おそらく問題のある RAM が 良い RAM の高位に位置している事に注意してください。 memtest をそのまま実行しても、BadRAM パッチのために使う出力を得ることはできません。 memtest の画面で"C"キーを押すことで、設定を変更することができます。この設定画面はあなたを手助けしてくれるでしょう。

BADRAMコマンドラインの出力の切り替えは (6) (2) を設定メニューから選ぶことで可能です (訳注:memtest86-2.5beta では"C"を押した後"5" "2"とします)。 さて、ここでコーヒーをもう一杯入れてくるか、一眠りしましょう。 これらのメモリで何が起こっているのかを正確に知るには少なくとも最初の6つのテストを実行することをお勧めします。メモリモジュールを調べている間、memtest は何が問題なのかに関する情報を収集しています。 画面に表示される不良メモリに関する部分では、このモジュールを使おうとした場合に何が問題となるかを示す一連の表示が現れます。 ちょっとしたアドバイス − 16進数の二桁目に現れる"0"が多ければ多いほど、あなたのメモリには問題が多いことがわかります。 ここでテストを一旦中断して、私の作った「たくさんのエラーがでた場合にそれを早く済ませられる」パッチをあてて、劇的に作業を早く片づけることができます(1024個以上のエラーがでる場合しか、このパッチは動きませんが!)。memtest を再度コンパイルしてインストールすることをお忘れなく。

テストが完了したら、最後の不正メモリに関するコマンド行をメモに書き写すかして控えておきましょう。不良領域のロックのために、あとでこのパラメータが必要になります。 もし一行も結果が得られなかった場合、全ての RAM には問題がありません。BadRAM パッチを組み込む必要はありません。以前に遭遇した問題は、おそらくメモリに関係したものではなく原因は別にあるということです。 しかし、最初に試して問題ないと思われたメモリについて長いメモリテストを実行することもいいかもしれません。そこであなたは改めて不良ビットを見つけるかもしれません。

4.2 BadRAM パッチを動かす

最初に、不良なメモリモジュールを PC からはずします。BadRAM パッチはまだ有効になっていないので、データは問題のある領域にも書かれてしまいます。このままだと、あなたのシステムはクラッシュするかなにか障害を発生するでしょう。少なくとも、次の作業項目であるカーネルのコンパイルに関しては非常に問題があります。

まだ手に入れていないなら、ここで目的のカーネルをダウンロードして圧縮を解き、構成します。続いて、BadRAM パッチをカーネルツリーの先頭で適用します(訳注:具体的には /usr/src で。パッチのおかれている場所に応じて以下のコマンドライン列は書き換えが必要です)。

patch -p0 < patch-name.diff

カーネルの構成をここで再度行います。BadRAMを制御するための新しいオプションが General Setup にいくつか追加されていることに注意してください。下記のような設定を推奨します。

 [*] Work around bad spots in RAM (BadRAM-patch)
 [ ]   Enable BadRAM debug messages during kernel boot
 [*]   /proc fs support
 [*]   Extended Module support.

(訳注:カーネルのバージョンや BadRAM パッチのバージョンによって、上記は多少異なります)

最後のオプション最もが大切です。この HOWTO に従うなら、ここはチェックしておく必要があります!

次にするべき事は、BadRAM パッチにメモリモジュールの配置を与えてを有効にすることです。 これは設定ファイル /etc/badram.conf を使うことで行います。memtest によるテストで得られた結果がここで必要です。構成のための文法に関しては /usr/src/linux/Documentation/badram_conf.txt に記述があります。 最初のメモリモジュールを "good" 、問題のあるモジュールを "bad" と呼ぶことにします。この呼び方は /etc/badram.conf での記述と一致させておくと良いでしょう。

BadRAM の設定ファイルを書き込んだのち、あなたはカーネルをいつも通りコンパイルしてください。インストールもお好きな方法で結構です。次のコマンドラインを LILO の設定ファイルに追加して、コマンドに与えます −

 badram=good,bad

このコマンドラインは、まず最初に "good" と名付けた方のモジュールの不良箇所をロックし (まあ、全くロックする箇所はありませんが ) 次に "bad" と名付けた方のモジュールの不良箇所をロックします。lilo コマンドを実行することを忘れずに!

システムを再起動し、壊れた RAM モジュールを PC に入れます。新しい 不良メモリをサポートしたカーネルを起動して、画面に表示されるメッセージを見た後、普通にログインしましょう。 先に /proc fs support を有効にしていたなら、 /proc/badram ファイルを見ることができます。そこで、BadRAMによって無効にされた全てのページ(ページとは4096バイトの RAM 領域です)がリストされています。

(訳注:有効にするなら、再起動ではなくまずシャットダウンしてから、不良とおぼしき RAMモジュールを追加することになります。再起動して、新しいカーネルが問題なく動作することを確認し、その後シャットダウンしてメモリを入れ、起動。というのが正しいです)

メモリ構成を変更しない限り、普通通りにシステムを稼働させることができます。全ての不良な領域は不正としてマークされ、カーネルからもどのようなアプリケーションからも使われることはありません。 システムはこの状態で最大負荷にて稼働することができます。


次のページ 前のページ 目次へ