LinuxでSCSIデバイス(sdデバイスとsgデバイス)の対応を調べる
LinuxでSCSIデバイスを示す、sdデバイス(/dev/sdX)とsgデバイス(/dev/sgX)の対応を調べる必要があったので手順をメモします。
お前は何を言っているんだ
に、
Linux での SCSI デバイスには多くの場合、ユーザーがそのデバイスを認識しやすいような名前が付けられます。例えば最初の SCSI CD-ROMは /dev/scd0 です。SCSI ディスクには /dev/sda、/dev/sdb、/dev/sdc のようなラベルが付けられます。デバイスの初期化が終わると、Linux の SCSI ディスク・ドライバー・インターフェース (sd) が SCSI READ と SCSI WRITE コマンドのみを送信します。
これらの SCSI デバイスは汎用的な名前すなわちインターフェース (/dev/sg0、/dev/sg1、/dev/sga、/dev/sgb など) を持っている場合があります。これらの汎用ドライバー・インターフェースを利用すると、SCSI デバイスに直接 SCSI コマンドを送信することができ、通常 SCSI ディスク上に作成されてディレクトリー配下にマウントされるファイルシステムを使う必要がなくなります。
と記されている、
と仮に呼ぶ事にします。
で、以下のような事情があります。
前提条件
Ubuntu 19.10 CentOS 6
で確認しました。
方法1.sg_mapコマンドで確認する
$ sudo sg_map -i
以下のように表示される。
/dev/sg0 /dev/sda ATA TOSHIBA DT01ACA3 ABB0 /dev/sg1 /dev/sdb ATA TOSHIBA DT01ACA3 ABB0 /dev/sg2 /dev/sdc ATA WDC WD15EARS-00Z 0A80 /dev/sg3 /dev/sdd ATA WDC WD15EARS-00Z 0A80
これによって
sg0がsda sg1がsdb :
と対応していることがわかります。
方法2./proc以下のファイルで確認
$ cat /proc/scsi/sg/device_strs
以下のように表示されます。
ATA TOSHIBA DT01ACA3 ABB0 ATA TOSHIBA DT01ACA3 ABB0 ATA WDC WD15EARS-00Z 0A80 ATA WDC WD15EARS-00Z 0A80
上から順に、1行目がsg0、2行目がsg1・・・となる。
あとはデバイス情報から何となくsdデバイスが何かを推測する。
この手順を使う条件
/proc以下のファイルの読み取り権限のあるユーザで実行する必要があります。
何らかの都合(お客様システムのサーバである、など)でsg3-utilsがインストールできない場合はこちらの方法でがんばって調べましょう。
では。