web-dev-qa-db-ja.com

udevはiSCSIデバイスのIDをどこで取得していますか?

私は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を取得しているので、どこにあるのか知りたいです)。

4
kdt

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" 
2
Nikhil Mulley

udevは、カーネルによって生成されたueventをリッスンします。 udevと同じ方法でこの情報を取得するには、それらをリッスンする何かを構築する必要があります。これを行うためのサンプルコードとディスカッションを次に示します。

http://lwn.net/Articles/242046/

Udevが情報を取得する方法の詳細:

http://en.wikipedia.org/wiki/Udev#Operation

0
polynomial