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

7. ハードディスク

この節では標準の MFM/RLL, ST-506, XT, IDE ディスクドライブデバイス に関わる起動時引数を説明します。IDE と 汎用 ST-506 HD ドライバ はどちらも "hd=" オプションを受け付けます。

7.1 IDE ディスク/IDE CD-ROM ドライバの引数

IDE ドライバはたくさんの引数を受け付けます。引数はディスクのジオメトリ 指定のためのものから、先進的な制御チップや不具合のある制御チップに対応 するためのものまであります。以下に利用可能な起動時引数をまとめました。 完全な説明に関しては、 linux/Documentation ディレクトリにある ide.txt を参照するよう強く勧めます。以下の まとめはこのファイルから抽出しました。



 "hdx=" は "x" が "a"から "h" である場合に受け付けられます(例: "hdc")。
 "idex=" は "x" が "0" から "3" である場合に受け付けられます(例: "ide1")。

 "hdx=noprobe"  : ドライブは存在するかもしれないが、検出しない。
 "hdx=none"  : ドライブは<em/存在しない/。CMOS を無視し、検出もしない。
 "hdx=nowerr"  : このドライブの WRERR_STAT ビットを無視する。
 "hdx=cdrom"  : ドライブは存在し、これは CDROM ドライブである。
 "hdx=cyl,head,sect" : ディスクドライブは存在し、指定するジオメトリを持っている。
 "hdx=autotune"  : ドライバはこのドライブでそれが可能であれば、
    一番速い PIO モードを使用するようインターフェース速度を調整する。
    これはすべてのチップセットで対応しているわけではなく、
    古い/変な仕様の IDE ドライブではよく問題を起こす。

 "idex=noprobe"  : このインターフェースにアクセス/使用しないようにする。
 "idex=base"  : インターフェースを指定されたアドレスで検出する。
     ここで、"base" は普通 0x1f0 か 0x170 で、
     "ctl" は "base"+0x206 であると仮定される。
 "idex=base,ctl" : base と ctl の両者を指定する。
 "idex=base,ctl,irq" : base 値, ctl 値、割り込み番号を指定する。
 "idex=autotune" : ドライバはこのドライブでそれが可能であれば、
    一番速い PIO モードを使用するようインターフェース速度を調整する。
    これはすべてのチップセットで対応しているわけではなく、
    古い/変な仕様の IDE ドライブではよく問題を起こす。
 "idex=noautotune" : ドライバはインターフェース速度を調整しない。
    これはほとんどのチップセットのデフォルト動作であるが、cm640 は例外
     である。
 "idex=serialize" : idex と idey(y≠1)で動作が重ならないようにする。

以下は、ide0 にのみ適用されます。また、デフォルトの base、ctl ポートを変更してはいけません。



 "ide0=dtc2278"  : DTC2278 インタフェースを検出・サポートする。
 "ide0=ht6560b"  : HT6560B インタフェースを検出・サポートする。
 "ide0=cmd640_vlb" : CMD640 チップを使用した VLB カードには<em/*必須*/
     (PCI では自動検出されるので不要)
 "ide0=qd6580"  : qb6580 インタフェースを検出・サポートする。
 "ide0=ali14xx"  : ali14xx チップセット(ALI M1439/M1445)を検出・サポートする。
 "ide0=umc8672"  : umc8672 チップセットを検出・サポートする。

これら以外は全て、"BAD OPTION" メッセージを表示して排除します。

7.2 標準 ST-506 ディスクドライブ用の引数 (`hd=')

標準ディスクドライバは IDE ドライバ同様にディスクジオメトリ 引数を受け付けます。しかし、これは 3 つの値(C/H/S)を期待することに注意 してください。3 より多かったり少なかったりすると黙って無視します。また、 引数としては `hd=' のみが受け付けられ、`hda=' や `hdb=' は無視されます。 形式は以下の通りです:


        hd=cyls,heads,sects

ディスクが 2 台ある場合、上の形式で 2台目のジオメトリを繰り返し記述し ます。

7.3 XT ディスクドライバのオプション (`xd=')

125kB/s といった笑ってしまうような速度しか出ない古い 8 ビットカードを 未だ使っている不運な人には、以下の話は朗報です。 これらのカード用の検出コードは、BIOS がインストールされているかを調べ、 インストールされていなければカードを検出しません。 また、BIOS のシグネチャ文字列を認識できない場合もカードを検出しません。 これらの場合、起動時引数を以下の形式で与える必要があります:


        xd=type,irq,iobase,dma_chan

type の値はカードの製造者を示します。この値は以下のいずれかです: 0=一般; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI。 一つの製造者に複数の異なるタイプがある場合の違いは、検出に使われる BIOS 文字列です。タイプが与えられなければこれは使われません。

xd_setup() 関数は値の検証を行わず、4 つの値が全て与えられたものと 仮定します。決してこの予測を裏切らないでください。WD1002 コントローラ で BIOS を無効化/削除している場合の使用例を挙げます。引数には XT の「デフォルト」値を使っています。


        xd=2,5,0x320,3


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