私はiscsi-initiator-utilsを正常に使用してCentOS5でいくつかのiscsiデバイスを使用していますが、/ dev/diskにudevによって作成されたいくつかのシンボリックリンクがあります。
# ls -l /dev/disk/by-path/ip-* /dev/disk/by-id/scsi-*
lrwxrwxrwx 1 root root 9 Sep 29 15:41 /dev/disk/by-id/scsi-14f504e46494c45006779706e4d772d746d36582d6869556e -> ../../sdb
lrwxrwxrwx 1 root root 9 Sep 29 15:41 /dev/disk/by-path/ip-192.168.20.149:3260-iscsi-iqn.2006-01.com.openfiler:tsn.0a16ba8cb6c9-lun-0 -> ../../sdb
バイパスのものがデバイスのIQNであることはわかっており、バイパスIDのものはSCSIデバイス識別子であると推測します。
これらの値を自分で取得する方法を知りたいです。/dev/sdb。 scsi_id -g /dev/sdb
は何も返しません。
(シンボリックリンクをマップしてファイル名からIDを廃棄できることはわかっていますが、それは冗長です。udevはどこかからそれらのIDを取得しているので、どこにあるのか知りたいです)。
udevinfo
コマンドを試してください
またman 7 udev
例:
[root@centos ~]# udevinfo -q all -n /dev/sda1 | grep 'ID_FS_UUID=' | awk -F'=' '{print $2}'
358c8298-3889-4982-8831-817a18ae4e67
[root@centos ~]# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Dec 1 12:47 358c8298-3889-4982-8831-817a18ae4e67 -> ../../sda1
[root@centos ~]# readlink -e /dev/disk/by-uuid/358c8298-3889-4982-8831-817a18ae4e67
/dev/sda1
もう1つはblkidで、uuidを表示するためにudevと統合されています
[root@centos ~]# blkid
/dev/mapper/VolGroup00-LogVol01: TYPE="swap"
/dev/mapper/VolGroup00-LogVol00: UUID="7951711f-0564-46a5-8e1c-427eff4b4115" TYPE="ext3"
/dev/sda1: LABEL="/boot" UUID="358c8298-3889-4982-8831-817a18ae4e67" TYPE="ext3"
/dev/hdc: LABEL="VBOXADDITIONS_4.1.2_73507" TYPE="iso9660"
/dev/VolGroup00/LogVol00: UUID="7951711f-0564-46a5-8e1c-427eff4b4115" TYPE="ext3"
/dev/VolGroup00/LogVol01: TYPE="swap"
udevは、カーネルによって生成されたueventをリッスンします。 udevと同じ方法でこの情報を取得するには、それらをリッスンする何かを構築する必要があります。これを行うためのサンプルコードとディスカッションを次に示します。
http://lwn.net/Articles/242046/
Udevが情報を取得する方法の詳細: