the critical path would be to check the output from:
udevadm info --query=all --name=/dev/sd[cd] | grep -i serial
ID_SERIAL does not get set on Disco where we have sg3-utils package install, which adds the s3g-utils-udev package, and includes the rules file 55-scsi-sg3_id.rules.
This udev rule uses sg_inq --export /path/to/device to query for device properties.
I suspect you can reproduce the failure on the device by running
sg_inq --export on the usb block device.
Note that in 55-scsi-sg3 rules, if no ID_SERIAL is found via the previous import, then the rules construct an ID_SERIAL from various scsi id values;
This is the core issue since normally 60-persistent-storage.rules would use 'ata_id', 'usb_id' and 'scsi_id' to extract the ID_SERIAL value, but since 55 rules run before 60, the sg3-utils-udev package sets ID_SERIAL, and prevents the 60-persistent-storage.rules from setting the value to match.
@Rafael,
the critical path would be to check the output from:
udevadm info --query=all --name=/dev/sd[cd] | grep -i serial
ID_SERIAL does not get set on Disco where we have sg3-utils package install, which adds the s3g-utils-udev package, and includes the rules file 55-scsi- sg3_id. rules.
This udev rule uses sg_inq --export /path/to/device to query for device properties.
I suspect you can reproduce the failure on the device by running
sg_inq --export on the usb block device.
Note that in 55-scsi-sg3 rules, if no ID_SERIAL is found via the previous import, then the rules construct an ID_SERIAL from various scsi id values;
This is the core issue since normally 60-persistent- storage. rules would use 'ata_id', 'usb_id' and 'scsi_id' to extract the ID_SERIAL value, but since 55 rules run before 60, the sg3-utils-udev package sets ID_SERIAL, and prevents the 60-persistent- storage. rules from setting the value to match.