3.4. scsidev におけるデバイス名

scsidevと呼ばれているユーティリティプログラムは、 デバイス名を /dev/scsi ディレクトリに追加します。 そのデバイス名は、各デバイスの SCSI アドレスを反映しています。最初の 2 文字は 上位レベルの SCSI ドライバの名前(例えば sd や sr、st、sg)です。 「h」の後の数字はホスト番号で、その後の「-」はホスト識別用の番号です。 PCI のアダプタではこの数字は常に 0 のようですが、ISA アダプタではその IO アドレスになります。(おそらくこのフィールドには、さらに情報が入るかも しれませんし、無くなるかもしれません)。「c」や「i」、「l」の後にある数字は、 それぞれチャネル(バス)とターゲット ID、LUN の値になります。raw ディスクは 「p」とパーティション番号が付きません。その内部に含まれる各パーティションには、 「p」とパーティション番号が付きます。

【訳註:図にすると下記のようになります


sd  h0  -  0  c0  i0  l0  p1
==  ==  =  =  ==  ==  ==  ===
|   |   |  |   |   |   |   |
|   |   |  |   |   |   |  パーティション番号は 1
|   |   |  |   |   |   |
|   |   |  |   |   |  LUN は 0
|   |   |  |   |   |
|   |   |  |   |  ターゲット ID は 0
|   |   |  |   |
|   |   |  |  バス(チャネル)番号は 0
|   |   |  |
|   |   |  PCI なら 0, ISA なら I/O アドレス
|   |   |
|   |  固定
|   |
|  ホスト番号は 0
|
上位レベルの SCSI ドライバの名前

scsidev は、ブートシーケンスの一部として動くのが 普通です。SCSI の設定が変更になった後に動かすのも良いでしょう(例えば 低レベルのドライバモジュールを追加・削除したり、add/remove-single-device コマンドを使ったりする時)。scsidev を私のシステムで実行 した時に /dev/scsi ディレクトリへ追加された名前を挙げます。 私のシステムには、ディスク 2 つ、CD-R ドライブ 1 台、スキャナー 1 台が付いて います。

$ ls -l /dev/scsi/   # abridged
total 0
brw-------  8,   0 Sep  2 11:56 sdh0-0c0i0l0
brw-------  8,   1 Sep  2 11:56 sdh0-0c0i0l0p1
...
brw-------  8,   8 Sep  2 11:56 sdh0-0c0i0l0p8
brw-------  8,  16 Sep  2 11:56 sdh0-0c0i1l0
brw-------  8,  17 Sep  2 11:56 sdh0-0c0i1l0p1
...
brw-------  8,  24 Sep  2 11:56 sdh0-0c0i1l0p8
crw------- 21,   0 Sep  2 11:56 sgh0-0c0i0l0
crw------- 21,   1 Sep  2 11:56 sgh0-0c0i1l0
crw------- 21,   2 Sep  2 11:56 sgh1-0c0i2l0
crw------- 21,   3 Sep  2 11:56 sgh1-0c0i5l0
crw------- 21,   4 Sep  2 11:56 sgh1-0c0i6l0
br-------- 11,   0 Sep  2 11:56 srh1-0c0i2l0
br-------- 11,   1 Sep  2 11:56 srh1-0c0i6l0
SCSI 汎用デバイス名(sg)と、そのデバイスが他の高レベルドライバ(例えば sd、sr、 st)で制御された場合の名前との対応は、2 番目の文字を無視してマッチする名前 を探せばわかります。 消去法でいくと、「sgh1-0c0i5l0」というファイル名はスキャナーとわかります。 このデバイスには sg インタフェース経由でしかアクセスできないからです。

scsidev パッケージは /etc/scsi.alias という設定ファイル を扱い、/dev/scsi/scannerというような名前を付ける機能も あります。パッケージには、rescan-scsi-bus.sh という便利な ユーティリティもあります。 scsidev についてのさらに詳しい情報は W6を見てください。私のシステムでは、devfs と scsidev は何の問題も無く 共存しています。