  BadRAM-HOWTO
  Nico Schmoigl
  v1.0 17 August, 2000
  日本語訳: 後藤雅晴と JF Project (jf@linux.or.jp)
  v1.0-j 12 Dec, 2000

  Linux ボックス（現時点では特別なパッチをカーネルのために必要とします）
  において、不良個所のあるメモリーモジュールを使う方法

  ______________________________________________________________________

  目次

  1. このドキュメントについて
     1.1 このドキュメントの新しいバージョンの入手について
     1.2 誰がこの文書をメンテナンスするか？
     1.3 このドキュメントで取り扱う内容
     1.4 "このドキュメントに間違いを見つけたぞ!"
     1.5 著作権

  2. BadRAM の履歴
  3. 基本概念
     3.1 説明を始める前に
     3.2 このドキュメントを理解するための必要事項
     3.3 不良のある RAM モジュールかどうかを知る方法
        3.3.1 ロックアップ
        3.3.2 実行時にエラーが発生する
     3.4 理論を少しばかり
     3.5 表記規則について
     3.6 必要なファイル

  4. 動くようにする
     4.1 もっとも大切なことは「確認」すること！
     4.2 BadRAM パッチを動かす

  5. モジュールが一つしかない場合 − 何が違うか？
  6. さらなるヒント
     6.1 問題解決 − ２つ以上のメモリがある場合
     6.2 毎回様子の異なる不良メモリ
     6.3 Memtest86 をフロッピーディスクに組み込む場合の利点と欠点

  7. 今後
  8. 日本語訳について

  ______________________________________________________________________

  1.  このドキュメントについて

  1.1.  このドキュメントの新しいバージョンの入手について

  この HOWTO は HTML と SGML の両方の形式で、http://webrum.uni-
  mannheim.de/math/schmoigl/linux/ <http://webrum.uni-
  mannheim.de/math/schmoigl/linux/> から入手できます。

  1.2.  誰がこの文書をメンテナンスするか？

  それは私 ;-) Nico Schmoigl nico@writemail.com
  <mailto:nico@writemail.com> です。

  1.3.  このドキュメントで取り扱う内容

  この HOWTO は、多少に関わらず不良ビットを有したメモリーモジュールを使
  う方法について述べています。実用的なヒントを与えることを目標とします
  が、それらの理解のために不可欠な理論についても言及することにしていま
  す。

  1.4.  "このドキュメントに間違いを見つけたぞ!"

  Errata humanum est!(ラテン語で、"間違いをするのが人間だよ"という意味)
  *g*

  私宛にメールをいただければ修正します。

  ご協力に感謝します。

  1.5.  著作権

  （訳注：著作権に関する宣言は原文を尊重し、訳は参考にとどめます）

  I hereby declare this Document as 'Public Domain'. You may copy and
  redistribute as often and via any type of media without any need of
  notification. Please note that this Document (and its containing
  information) is provided as it is; this means that I cannot made
  liable of any damage which could (eventually) result off its usage.

  参考訳：私は、このドキュメントを『パブリックドメイン』であると宣言しま
  す。あなたは私に通知することなく、どのような手段によってでもこのドキュ
  メントを複製したり再配布することができます。このドキュメント（そして、
  含まれる情報）がそのまま提供される点に注意してください；私にはこのド
  キュメントを利用した結果に関するいかなる損害についても責任を負うもので
  はありません。

  The right of change remains at the author. If you like to add
  something, please drop me a line and we will discuss it. Surely we can
  agree on the issue somehow! Translation is hereby accepted, but please
  send me a short note in which you tell me into which language you
  translated this document. Thank you!

  参考訳：変更の権利は、著者にあります。何か追加したいと思われたなら、私
  にご一報いただければ検討したいと思います。改変の必要性があるだろうこと
  には同意しています。翻訳についても歓迎しますが、どのような言語に翻訳さ
  れたかを簡単に教えてください。よろしくおねがいします。

  The LDP Project (especially its management members) has the right to
  alter, redistribute, translate and/or reformat this Document as long
  as the Copyright notice is not changed significantly and the sense of
  the Document is not changed in basics.

  参考訳：版権表示が大幅に変わったり、あるいはこのドキュメントの基本が変
  更されないかぎり、LDP プロジェクト（特にその管理メンバ）はこのドキュメ
  ントを改変したり、再配布したり、翻訳したり、あるいは再フォーマットする
  権利を持っています。

  The BadRAM patch (about which is this Document about, though) version
  1, 2 and 3 are Copyright by Rick van Rein. The BadRAM patch version 4
  is Copyright by Nico Schmoigl.

  参考訳：BadRAM patch ( このドキュメントで説明されているものです）はバ
  ージョン 1,2 と 3 については、Rick van Rein に版権があります。BadRAM
  patch バージョン 4 は、Nico Schmoiglに版権があります。
  2.  BadRAM の履歴

  BadRAM 自身まだ生まれて間がないため、この章も非常に簡潔です −

  2.2.x カーネル・シリーズのために追加のパッチとして開発された BadRAM は
  西暦2000年の初めに Rick van Rein によってプログラムされました。彼が
  使った、ブート時に不良 RAM 領域を選り分けるという概念はまだ現在も同じ
  です。

  現在のバージョンは V3 です。これは、Rick によって配布されている安定版
  リリースです。この文書を作成している現在、私（Nico）は BadRAM patch バ
  ージョン V4.5 の α 版を配布しています。カーネルハッキングに堪能な方だ
  け、私のバージョンをご使用ください。

  3.  基本概念

  3.1.  説明を始める前に

  前出の通り、まだ BadRAM は生まれて間がありません。そのため、今後大幅な
  変更の可能性があります。したがって、常に最新の状況をチェックし、常にこ
  のドキュメントの最新のバージョンを使うようにしてください。

  3.2.  このドキュメントを理解するための必要事項

  このドライバはまだ実験段階にあります。正直な話、私自身はまだ BadRAM が
  動作する linux ボックスをほんの3つしか知りません（しかしながら、BadRAM
  が全く動かないと言う話はまだ聞いたことはありません）。よって、全ての詳
  細な手順についてのべた膨大な標準ドキュメントを作成することは意味があり
  ません。これらの理由から、私はこのドキュメントの読者が以下の事ができる
  と仮定します。

  （訳注：実際には、複数メモリモジュールを増設単位とするハイエンド用途マ
  ザーボードや30ピン SIMM を使ったマザーボードでは動かないケースがあると
  のことです。検証はこのドキュメントが書かれた時点では主に SDRAM につい
  て述べられていますが、EDORAM を使ったものは動作するとのことです。くれ
  ぐれもご注意ください）

  o  Linux カーネルをダウンロードし、構成してコンパイルすること

  o  LILO によって、カーネルを有効にすること

  o  カーネルツリーの先頭でパッチを施すことができること

  あなたが、これらについて知らなければこの HOWTO はあまり手助けにはなら
  ないでしょう。私ができるアドバイスは Kernel-HOWTO と TIPS-HOWTO を読む
  ことを勧めるだけです。私の HOWTO は初心者向けではなく、初級者から専門
  家に向けたものです。このドキュメントを読み進むにあたってはその点に注意
  してください。

  （訳注：

  o  Kernel-HOWTO の邦訳は  <http://www.linux.or.jp/JF/JFdocs/Kernel-
     HOWTO.html> から参照できます。

  o  TIPS-HOWTO の邦訳は  <http://www.linux.or.jp/JF/JFdocs/Tips-
     HOWTO.html> から参照できます。

     あわせてご覧ください）

  3.3.  不良のある RAM モジュールかどうかを知る方法

  主に 2種類の症状があります −

  3.3.1.  ロックアップ

  このような明確な状況に出くわしたとしたら、非常に幸運です。もしカーネル
  が Oops によってロックアップしたら（そして何か悪いことをした覚えがない
  なら ;-)）、明らかにハードウエアの障害が発生しているというわけです。し
  ばしば、不具合は RAM モジュールに原因があります。非常に明確な以下の 症
  状を示します―

  o  カーネルが Oops で停止し、NULL pointer assignment (ナルポインタ割り
     当て)への参照を示すエラーを表示する

  o  システムを起動することはできるが、プロセスが無秩序に死んでしまう
     か、突然新しくプログラムを起動できなくなる

  3.3.2.  実行時にエラーが発生する

  非常に原因を突き止めがたい、驚くほど多くの問題はメモリの問題です。当初
  問題のないメモリモジュールでさえ、それらが時間の経過により暖まってくる
  と問題を発生することがあります。それらのモジュールのチップは突如過熱し
  てしまい、あるビットの内容が壊れてしまったりします。まだ割り当てていな
  いメモリ領域は、それだけでは全く問題ないのですが、そのページ（=メモリ
  上の特定の位置のこと）がたとえばカーネルによって使われていたとした
  ら．．．何が起こるかは言うに及びませんね。ありがちな症状としては、次の
  ものがあります。

  o  コンパイラが動作時に突然止まる

  o  プログラムが予期しない TERM や 15番シグナルによって一度に終了してし
     まう

  o  あらゆる形のメモリの「不規則な」内容変化、たとえば C 言語で書いたプ
     ログラムを動作させてみると、入る値が完全に分かりきっている変数に予
     想した値が入っていない、など。

  おっと、「無秩序」の使い方について説明が必要でしたね。私にとってこうい
  う言葉はコンピュータ科学について論じている場合には親しんでいるものでは
  ありません。何かが本当にでたらめに起こる事はあり得ません。十分注意深く
  調べれば、何かが起こったり、起こらなかったりする事へのちゃんとした( 主
  に悪い )理由や解釈を得る事ができるものです。ですからどうか、私の「無秩
  序」という表現は「全くのでたらめ」という意味ではなく「まるででたらめに
  起こるように見える」、という風に理解してください。

  3.4.  理論を少しばかり

  最初に少し理論について。どのように解決しているのか？

  いったんは、全てのデータが通常どおりに RAM に格納されたとしても、一つ
  以上の RAM モジュールが壊れていたとしたら、システム自体に害が及びま
  す。次のような状況を想像してください。メモリ内には非常に優秀なプログラ
  ムが格納されていますが、あなたの気付かないうちに、メモリ上のバイトが勝
  手に入れ替わっていきます。 CPU はデータを読み込んでゆき、まさにその地
  点に来たとき、データを全く異なって解釈します。その場合、起こりうること
  として、プログラムが期待した動作をしないか、もしくはクラッシュしてしま
  うでしょう。

  それではどうやって解決するのか。それには二つの解決方法があります。

  o  常に 100% 動作保証されたメモリを使う

  o  おおむね使える（訳注：完全に問題が無いわけではない）メモリを使う
     が、必要に応じて問題のある部分を使わないよう注意する

  通常は、最初の方法を採ることでしょう。が、近所の取り扱い店では結構高額
  を支払うことになるでしょう。これらの100% 保証のメモリを確実に作る方法
  がなく、製造者は 60% 程度のロスを伴うために非常に高価なのです。いわ
  ば、彼らはたくさんの不良モジュールを捨てているのですから。

  BadRAM システムの着眼点は先に述べた2番目の解決策です。Linux カーネルの
  ブート過程で、システムは指定された RAM 領域を使わないものとしてロック
  してしまいます。そうすることにより、カーネルはこのメモリを決して使わな
  くなり、この手の不良なメモリによってシステムが問題を生じないようにする
  ことができます。メモリを割り当てる際には、この問題のある場所はただ単に
  とばされるだけです。

  3.5.  表記規則について

  理解を助けるために、次のような表現を取りたいと思います −

  o  BadRAM とは一つまたはそれ以上の不良箇所をふくんだメモリのことです。

  o  GoodRAM とは、普通にそこらの店で買える BadRAM の反対のものです。

  もし、これらの用語に関して興味がおありなら、BadRAM-4096 仕様書を前出の
  私のページからダウンロードして見てください。

  3.6.  必要なファイル

  注意 - BadRAMパッチは現在 i386 プロセッサでのみ動作します！ Alpha/Macs
  などで動くものはまだサポートされていません。もし、これらのマシン上での
  テストができるなら、 Rick までご連絡ください。

  さあ、やってみよう

  次のファイルをインターネットから取ってくる必要があります。

  o  BadRAM パッチ - 以下の二つの BadRAM パッチのサイトから取ってくるこ
     とができます。

     http://webrum.uni-mannheim.de/math/schmoigl/linux
     <http://webrum.uni-mannheim.de/math/schmoigl/linux> また
     はhttp://home.zonnet.nl/vanrein/badram
     <http://home.zonnet.nl/vanrein/badram>

     あなたが使っているカーネルに正しく合ったものを使うようにしてくださ
     い。

  o  Linux カーネル − これはwww.kernel.org <http://www.kernel.org>また
     はミラーサイトから手に入れる事ができます。パッチにあったカーネルを
     入手するようにしてください。

  o  memtest86 − これはメモリテストのためのプログラムです。このプログラ
     ムはhttp://reality.sgi.com/cbrady_denver/memtest86
     <http://reality.sgi.com/cbrady_denver/memtest86> から入手することが
     できます。
  たくさんエラーがでそうだと思われているときは、memtest で表示される膨大
  なエラーにうんざりすることでしょう。そういうときのために、私はこの作業
  を大幅にスピードアップするパッチを作成しました。http://webrum.uni-
  mannheim.de/math/schmoigl/linux <http://webrum.uni-
  mannheim.de/math/schmoigl/linux> から、memtest86-patch を入手してみて
  ください。

  4.  動くようにする

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

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

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

  o  全てを確認し

  o  手を抜かないこと

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

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

  o  間違ったモジュールを PC から取り外してしまった（ありがちですね）。
     ボードごとにメモリの配置順番は結構違うので。あるいは、

  o  ２枚とも不良メモリだった（あまりありえないとは思いますが）。あるい
     は、

  o  不良メモリとは違う原因の障害が発生しています！ドライバの不良やら、
     設定の間違いなどがあり得ます。

  もし、何の問題もなかったならば、あなたは 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モジュールを追加することになります。再起動して、新しいカ
  ーネルが問題なく動作することを確認し、その後シャットダウンしてメモリを
  入れ、起動。というのが正しいです）

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

  5.  モジュールが一つしかない場合 − 何が違うか？

  深刻な問題に出くわしてしまいましたね。モジュールの低位部分に不良領域が
  合った場合、 Linux は起動時に深刻な問題を起こすことでしょう。memtest
  自身も 26KB だけとはいえ、メモリを使いますので問題を生じることでしょ
  う。まれなケースとして、 BIOS すらまともに動作しないかもしれません。最
  も深刻な問題は、そういうメモリを Bank 0 として使わねばならないといこと
  です。

  （訳注：BIOS 自身を RAM に 複製して動作させているような場合は露見する
  でしょう。BIOS が格納されている ROM は読み出しは低速ですので、より高速
  な RAM に一旦複製して動作させるよう設定することができるのです。しか
  し、これは古い時代のことです。最近は PC 自体の起動時以外は、 BIOS のコ
  ードを利用することはないので、この設定はデフォルトでは無効になっている
  と思われますし、おそらく意識して使うことはまずないでしょう）

  カーネルはこの問題のあるページに読み込まれてしまうことでしょう。すでに
  使われているメモリをロックすることは不可能なので、カーネルがすでに存在
  しているならば、たとえ現在使われていなくてもカーネルがそこを予約してい
  るならば再配置することはできないのです。カーネルは唯一連続したエラーの
  ないメモリを必要とする存在です。

  唯一アドバイスできることは、不良領域がメモリの低位部分にあるかどうかを
  調べる事だけです。もしこういう現象（訳注：致命的なカーネルの障害）がす
  ぐ起こったなら、即座にそのことがわかるでしょう。そして、もしBadRAM ド
  ライバを組み込んでいるなら、カーネルはページをロックしようとしたことを
  知らせるメッセージを表示して停止しますので、どこに問題があるかを知るこ
  とができるでしょう。

  どのような場合でも、少なくとも問題のない GoodRAM を最初のバンクに使う
  ことをお勧めします。このモジュールは大きなサイズである必要はありません
  が、カーネルが入るだけの容量であればいいのです。4MB から 8MB 程度が最
  小でしょう。

  6.  さらなるヒント

  この章は BadRAM のプログラミングの間に得た知識からの抜粋になります。も
  しここに書き記すべき新しい情報などがありましたら、私
  <mailto:nico@writemail.com>あてにメールください。

  6.1.  問題解決 − ２つ以上のメモリがある場合

  テストの間、2つの不良メモリと2つの良いメモリを使ったことがあります。こ
  れらを無作為にメモリバンクに取り付けて（私のマザーボードは4つまでの
  SDRAM-DIMM を取り付けることができました）、memtest を動かしました。そ
  れから、メモリを別な組み合わせで再度取り付けたところ memtest は全く異
  なる不良領域を RAM に見つけてしまったのです。badram コマンドラインは当
  然ちがうのですが、ロックされるべき領域自体が違っていました。不正として
  扱われたページから突然問題なくなったり、あるいはその逆もありました。こ
  れは私がなにか取り付けで間違いをしたからではなく、使い方の問題だったの
  です。私はBIOS の自動構成機能を禁止していたにも関わらず、違ったメモリ
  のタイミングモードでテストをしていたのです。

  こんなこともありますので、メモリモジュールを取り付けるバンクを変えると
  きには気をつけましょう。もし変える場合は、この組み合わせは自分が確証を
  もてるものだけにしておきましょう（訳注：どこに何をさしたか、モジュール
  に印を付けるとか、メモを取るなどして、ということでしょう）。

  これはまだ未解決な事項です。悲しいことに、メモリモジュールが実際にどう
  使われているかに関する知識はまだ十分ではありません。

  6.2.  毎回様子の異なる不良メモリ

  私は非常に不思議なメモリを一つ持っています。それは 64MB の SDRAM-DIMM
  RAM で、PC-100 規格でアクセスタイムは 8ns です。それだけでは何の不思議
  もないのですが、これを近所の販売店から買ったときにはおよそ 25% もの不
  良ページがありました。memtest を実行して、何回か異なるテストを実行する
  と、突然全ての不良ページが無くなってしまったではありませんか！今日まで
  不良であることをしめすパラメータはありませんし、BadRAM ドライバを無効
  にしても問題なく動いているのです。それから、Wind*ws ではクラッシュする
  ことなく使えています。これは非常に奇妙なことですが、どうしてなのか未だ
  にわかりません。

  6.3.  Memtest86 をフロッピーディスクに組み込む場合の利点と欠点

  Memtest86 をフロッピーディスクに組み込んだ場合の主な利点は次の通り。

  o  どこへでも持ち運んで好きな PC で実行することができる

  o  バイナリファイルは小さいので、コピーするのに要する時間も少ない

  o  もしこのプログラムが気に召さない（まぁ、そんなことはないと思います
     が）なら、本当に捨てても大丈夫です ;-)

  主な欠点は次の通り。

  o  きちんと初期化していなければ、このディスクのデータは消える。

  o  たぶん、ディスケットの取り扱いはあんまり好きじゃないでしょ。

  7.  今後

  今後についてはまだ Rick にとっても、私にとっても明らかにはなっていない
  し、サポートするかどうかの責任についても低いのですが、私たちの目標は次
  の通りです −

  o  もしあるなら、バグを見つける

  o  標準的なカーネルコード系列への統合

  o  より多数の不良メモリを手に入れ、テストしてくれる人たちを確保して私
     たちの作業環境を改善する

  o  以下のような機能を取り入れる

     o  カーネルの新しいスタブコードを使い、ロックするページを小さくする

     o  構成方法の改良

     o  構成ファイルに全般的ロック定義を取り入れる

     o  このドキュメントおよび関連ドキュメントを役立つように改良していく

  o  その他、配布および利用者に対する利便を図る事項全て

  8.  日本語訳について

  日本語訳 初版： 2000年 12月 12日 JF Project

  翻訳者 後藤雅晴 <magotou@fubyshare.gr.jp>

  校閲者のみなさん（敬称略、姓にて50音順）

  o  Tsutomu Kawashima さん <kawawa@mail.interq.or.jp>

  o  Yuji Senda さん <ysenda@pop01.odn.ne.jp>

  o  Setoguchi Takashi さん <setzer@mx3.tiki.ne.jp>

  o  Hirokazu Nomoto さん <hng@ps.ksky.ne.jp>

     訳注の追加については、原著者の Nico Schmoigl さんからもアドバイスを
     いただきました。これらは新しいバージョンの BadRAM-HOWTO への盛り込
     みが検討されています。

