8.1. ブート時のパラメタ

カーネルに組み込まれた SCSI ドライバは、あらかじめ決められた順番で、制御する HBA があるかどうか調べられます。 ユーザはこの順番を制御することは一切できません。 この順番はどうでも構わない場合がほとんどですが、古い ISA アダプタでは誤認識を 防ぐために調べるのを止めなければならないものもあります。 [1] .


scsi_logging=<n>
    <n> が 0 だとログは取らない。
    <n> が 0 でなければログを取る。

max_scsi_luns=<n>
    <n> は 1 から 8 の値(< lk 2.4.7)で、カーネル 2.4.7 以上は上限
    をさらに増やせる。

scsihosts=host0:hosts1::host3 

最近公開された devfs では、「scsihosts」というブート時パラメタを定義しており、 ユーザがこの順序を制御できるようになっています。devfs のドキュメント (W5を参照)の説明を見てください。 ブート時オプションの「scsihosts」に渡すリストに指定するホスト名は、 低レベルのドライバ名です(例えば「scsihosts=advansys:imm::ide-scsi」)。 [2] [3] 「scsihosts」の利用に devfs は必要ありません。 「scsihosts」パラメタは、指定されればブート時のメッセージに出力されます。 例えば

scsi: host order: advansys:imm::ide-scsi
また、複数の HBA がシステムにあると、決まった順序でスキャンされます(補注 を参照)。「scsihosts」パラメタは、これらの HBA がどのように順序付けされるか (つまりカーネルがどの SCSI アダプタ番号とどの HBA を関係付けているか) だけに影響します。 上記の例では、「imm」ドライバがブート時に見つからなければ、SCSI アダプタ番号 「1」は割り当てられません。「imm」ドライバが後にモジュールとして ロードされる と、それに SCSI アダプタ番号「1」が割り当てられます。 「scsihosts」に載っていないドライバが見つかると、次に利用可能な SCSI アダプタ番号が使用されます(例えば上記の例なら、組み込みの aic7xxx ドライバ は、SCSI アダプタ番号の「2」になる)。

カーネルパラメタの全リストとその説明は、 /usr/src/linux/Documentation/kernel-parameters.txt ファイルにあります。

Notes

[1]

PCI アダプタは古い ISA アダプタに比べて、初期化コードが「より安全」です。 したがって、PCI アダプタの初期化過程で固まるようなことはほとんどありません。 この場合、組み込みドライバの初期化の順序(つまり、SCSI アダプタ番号)は、 SCSI サブシステムの Makefile (/usr/src/linux/drivers/scsi/Makefile)にある項目の順序 を変更すれば修正できるかもしれません。(注意)複数のドライバが認識するドライバ もあります(例えば NCR のチップベースのアダプタ)。

[2]

「scsihosts」の区切り文字は、カンマもしくはコロンです。 つまり「scsihosts=advansys,imm,,ide-scsi」も有効です。

[3]

「scsihosts」を使うと、コンピュータの BIOS はブートトラック(および lilo や grub で設定されたブート時設定)をどれかのディスクに見つけ、一方カーネルは ルートパーティションを別のディスクで見つける、というような状況になることが あります。 無計画に行ってしまうと、これはかなり混乱します。よって lilo や grub で 「scsihosts」の設定を変更(追加)した後は、マシンをブートし、どのディスクが アクセスされるかを見るのが賢明です。