summaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorJoerg Steffens <joerg.steffens@bareos.com>2017-11-21 12:52:57 +0100
committerJoerg Steffens <joerg.steffens@bareos.com>2017-12-27 11:37:18 +0100
commit8d0edd1172e6b61881528fd2428ced520f6862a6 (patch)
treea6b0c8810c90626c4e8073fe82ecf8cdb77bb236 /rules
parent7f8ddf96a25162f06bd94a684cf700c128d18142 (diff)
downloadsystemd-8d0edd1172e6b61881528fd2428ced520f6862a6.tar.gz
udev-rules: make tape devices also accessable by ENV{ID_SCSI_SERIAL}
Tape and tape changer devices from Amazon Webservice Storage Gateway VTLs and maybe other iSCSI VTLs all have the same ENV{ID_SERIAL}. The results is, that only the last device is available in /dev/tape/by-id/, as the former devices have been overwritten. However, the devices can be distinguished by ENV{ID_SCSI_SERIAL}. ENV{ID_SCSI_SERIAL} is not set on directly connected SCSI devices. This rule additional creates links based on the ENV{ID_SCSI_SERIAL}, if it is set. In my case, it creates (ID_SCSI_SERIAL) /dev/tape/by-id/scsi-AMZN_SGW-6BF81D02_MC_00001 /dev/tape/by-id/scsi-AMZN_SGW-6BF81D02_TD_00001 /dev/tape/by-id/scsi-AMZN_SGW-6BF81D02_TD_00002 ... instead of only (ID_SERIAL) scsi-2414d5a4e5f5347572d364246
Diffstat (limited to 'rules')
-rw-r--r--rules/60-persistent-storage-tape.rules11
1 files changed, 9 insertions, 2 deletions
diff --git a/rules/60-persistent-storage-tape.rules b/rules/60-persistent-storage-tape.rules
index 0575f308df..0136140a46 100644
--- a/rules/60-persistent-storage-tape.rules
+++ b/rules/60-persistent-storage-tape.rules
@@ -9,6 +9,11 @@ ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_t
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --sg-version=3 --export --whitelisted -d $devnode", \
SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}"
+# iSCSI devices from the same host have all the same ID_SERIAL,
+# but additionally a property named ID_SCSI_SERIAL.
+SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", ENV{ID_SCSI_SERIAL}=="?*", \
+ SYMLINK+="tape/by-id/scsi-$env{ID_SCSI_SERIAL}"
+
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{builtin}="path_id", \
SYMLINK+="tape/by-path/$env{ID_PATH}-changer"
@@ -18,8 +23,10 @@ KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ie
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", KERNELS=="[0-9]*:*[0-9]", ENV{.BSG_DEV}="$root/bsg/$id"
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --whitelisted --export --device=$env{.BSG_DEV}", ENV{ID_BUS}="scsi"
-KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
-KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
+KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
+KERNEL=="st*[0-9]", ENV{ID_SCSI_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SCSI_SERIAL}"
+KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
+KERNEL=="nst*[0-9]", ENV{ID_SCSI_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SCSI_SERIAL}-nst"
# by-path (parent device path)
KERNEL=="st*[0-9]|nst*[0-9]", IMPORT{builtin}="path_id"