3.2. デバイス名

デバイス名は、デバイスそのものというより、それを制御するカーネルドライバ への入口と考えられます。したがって、複数のデバイス名が同一のデバイスを指す時 もあり、その場合は少々異なる特性を提供するものが混ざることになるでしょう。

/dev ディレクトリには、さまざまな SCSI デバイス名が あります。これまで Linux では、SCSI デバイスを識別するのに SCSI のバス・ アドレス(例えば SCSI のターゲット ID や LUN)ではなく、そのメジャー、マイナー 番号を使ってきました。 擬似デバイスファイルシステム(devfs)は、そのメジャー、マイナー番号を 使った方式から、SCSI のバス・アドレスに基づいたデバイス名を使う方式 に移行しました(後ほどSection 3.3で議論します。W5も参照)。 別の方法として、scsidev というユーティリティがあります。この ユーティリティでは、変更点を Linux の SCSI サブシステムの内部で扱いますので、 devfs のようにシステム全体に影響を及ぼしません。 scsidev は後にSection 3.4で議論します。 W6も参照してください。

SCSI ディスクにはブロックメジャー番号が 8 つ割り当てられています。8、65、 66、67、68、69、70、71 がその番号です。メジャー番号はそれぞれ 256 のマイナー 番号を保有でき、SCSI ディスクの場合は下記のように分割されます。

[b,8,0]    /dev/sda
[b,8,1]    /dev/sda1
....
[b,8,15]   /dev/sda15
[b,8,16]   /dev/sdb
[b,8,17]   /dev/sdb1
....
[b,8,255]  /dev/sdp15

数字が後ろに付かないディスクデバイス名(例えば /dev/sda) は、ディスク全体を指しています。 これに対して数字が後ろに付いているディスクは、そのディスク内のパーティション (15 個まで認められている) [1] の内の 1 つを指しています。

残りの 7 つのSCSI ディスクブロックのメジャー番号は、同じようなパターン をとります。

[b,65,0]   /dev/sdq
[b,65,1]   /dev/sdq1
....
[b,65,159] /dev/sdz15
[b,65,160] /dev/sdaa
[b,65,161] /dev/sdaa1
....
[b,65,255] /dev/sdaf15
[b,66,0]   /dev/sdag
[b,66,1]   /dev/sdag1
....
[b,66,255] /dev/sdav15
....
[b,71,255] /dev/sddx15

したがって、最大 128 個のディスクがあり(つまり /dev/sda から /dev/sddx まで)、それぞれ、15 個までのパーティション を持てます。これに対して IDE サブシステムは、20 個のディスク(10 個の コントローラそれぞれにマスター 1 つ、スレーブ 1 つ)を持ち、それぞれが 63 パーティションを持てます。

SCSI の CD-ROM デバイスには、ブロックメジャー番号の 11 が割り当てられて います。 従来は sr がデバイス名でしたが、おそらく scd の方がなじみ深いでしょうし、最近の ディストリビューションのいくつかはこちらを選んでいます。256 個の CD-ROM デバイスが付けられます。

[b,11,0]   /dev/scd0          [or /dev/sr0]
[b,11,255] /dev/scd255        [or /dev/sr255]

SCSI テープは、キャラクタメジャー番号の 9 が割り当てられています。 32 個のテープデバイスをサポートしており、各デバイスには 4 つのモード (0、1、2、3)のどれかでアクセスでき、さらにリワインドの有無を指定できます。 デバイスは次のように割り当てます。

[c,9,0]    /dev/st0     [tape 0, mode 0, rewind]
[c,9,1]    /dev/st1     [tape 1, mode 0, rewind]
....
[c,9,31]   /dev/st31    [tape 31, mode 0, rewind]
[c,9,32]   /dev/st0l    [tape 0, mode 1, rewind]
....
[c,9,63]   /dev/st31l   [tape 31, mode 1, rewind]
[c,9,64]   /dev/st0m    [tape 0, mode 2, rewind]
....
[c,9,96]   /dev/st0a    [tape 0, mode 3, rewind]
....
[c,9,127]  /dev/st31a   [tape 31, mode 3, rewind]
[c,9,128]  /dev/nst0    [tape 0, mode 0, no rewind]
....
[c,9,160]  /dev/nst0l   [tape 0, mode 1, no rewind]
....
[c,9,192]  /dev/nst0m   [tape 0, mode 2, no rewind]
....
[c,9,224]  /dev/nst0a   [tape 0, mode 3, no rewind]
....
[c,9,255]  /dev/nst31a  [tape 31, mode 3, no rewind]

SCSI 汎用デバイス(sg)には、キャラクタメジャー番号の 21 に割り当てられて います。 最大 256 個の SCSI 汎用デバイス(sg)が持てます。

[c,21,0]   /dev/sg0
[c,21,1]   /dev/sg1
....
[c,21,255] /dev/sg255

SCSI 汎用デバイスの名前の最後に文字が付くもの(例えば /dev/sgc )は、旧い形式です。

SCSI ディスクと SCSI CD-ROM、SCSI テープは、何らかの sg デバイスにマップ されています(ただしディスクの各パーティションはマップされていません)。この 3 つのカテゴリいずれでもない SCSI デバイス(例えばスキャナー)も、sg デバイス として見えます。

擬似デバイス(Section 10.1を参照)は、通常 SCSI とは見なさ ないデバイスを SCSI デバイス名として表示します。 例えば ATAPI CD-ROM は ide-scsi 擬似ドライバで動作し、/dev/scd0 にマップされます。

Linux のデバイス名とそれに対応したメジャー、マイナー番号の割り当てに ついては、カーネルソースとともに配布されている linux/Documentation/devices.txt が信頼できる リファレンスになっています。

Notes

[1]

15 個のパーティションで足りなければ、Logical Volume Manager (LVM)を検討 してください。/usr/src/linux/Documentation/LVM-HOWTO を参照してください。LVM は、複数のブロックデバイスにまたがる論理的な パーティションを扱えます。