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

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

iscsi-initiator-utilsを使用してCentOS 5でいくつかの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

私はby-pathがデバイスのIQNであることを知っており、by-idがSCSIデバイス識別子であると仮定します。

/dev/sdbからこれらの値を直接取得する方法を知りたいです。 scsi_id -g /dev/sdb何も返しません。

(シンボリックリンクをマップし、ファイル名からIDを削除できることを知っていますが、これは重複しています。udevがどこかでこれらのIDを取得していて、どこにいるのかを知りたいです)。

ベストアンサー1

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で、udevと統合されてuuidを表示します。

[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" 

おすすめ記事