mirror of
https://github.com/systemd/systemd.git
synced 2024-11-27 12:13:33 +08:00
8d0edd1172
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
37 lines
2.1 KiB
Plaintext
37 lines
2.1 KiB
Plaintext
# do not edit this file, it will be overwritten on update
|
|
|
|
# persistent storage links: /dev/tape/{by-id,by-path}
|
|
|
|
ACTION=="remove", GOTO="persistent_storage_tape_end"
|
|
ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_tape_end"
|
|
|
|
# type 8 devices are "Medium Changers"
|
|
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"
|
|
|
|
SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end"
|
|
|
|
KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
|
|
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=="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"
|
|
KERNEL=="st*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}"
|
|
KERNEL=="nst*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}-nst"
|
|
|
|
LABEL="persistent_storage_tape_end"
|