Udev problems with leap 15.4/15.5 which works on 15.2

Hello

I have a kingston cfreader and have the following udev rules in file /etc/udev/rules.d/97-kingston-cf-reader.rules

KERNEL=="sd*", ATTRS{serial}=="000004355", SYMLINK+="cfreader%n"

In leap 15.2 it creates the device reader with the first free device like

/dev/cfreader -> sdb
/dev/cfreader1 -> sdb1
/dev/cfreader2 -> sdb2

but since leap 15.4 default device without partition is different as partitions…

/dev/cfreader -> sdc
/dev/cfreader1 -> sdb1
/dev/cfreader2 -> sdb2

The right device are the partition in this example sdb.
and I cannot access the device with /dev/cfreader for example to install lilo
The serial is the correct one .

What could be the problem? Any ideas?

If you are sure that the drive is sdb, the you could cahnge the udev line to KERNEL==“sdb*” and see if that works.

Still if the udev rule now works for sdc it means that sdc somehow has the serial indicated…

Typically udev rules are based on the idVendor and idProduct tags what makes sense, you want it to work for all “kingston-cf-reader”-s not only the one with the give serial number. So another option is to update the udev rule to use idVendor and idProduct tags instead the kernel and serial. You can find those idVendor and idProduct using “lsusb -v”

Show full output of

udevadm info -a -n sdc
udevadm info -a -n sdb1

lsusb -v -d 11b0:6108 # Output for cfreader

Bus 002 Device 052: ID 11b0:6108 ATECH FLASH TECHNOLOGY FCR-HS215/1
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x11b0 ATECH FLASH TECHNOLOGY
  idProduct          0x6108 
  bcdDevice           93.28
  iManufacturer           3 Kingston
  iProduct                4 FCR-HS215/1
  iSerial                 5 000004355
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

It’s the same with the following rules:

KERNEL=="sd*", ATTRS{idVendor}=="11b0", ATTRS{idProduct}=="6108", SYMLINK+="cfreader%n"

Of course the device will not be always /dev/sdb that’s the problem.

Difference of output from udevadm info -a -n /dev/sdb and udevadm info -a -n /dev/sdc
I still do not understand why it will mount /dev/cdreader i.e. whole “disk” to /dev/sdc
and partitions to /dev/sdbX

8,9c8,9
<   looking at device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb':
<     KERNEL=="sdb"
---
>   looking at device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:1/block/sdc':
>     KERNEL=="sdc"
39c39
<     ATTR{queue/add_random}=="1"
---
>     ATTR{queue/add_random}=="0"
91,92c91,92
<     ATTR{size}=="7847280"
<     ATTR{stat}=="     418       62    17492      913        4        1       10        4        0      944      918        0        0        0        0        0        0"
---
>     ATTR{size}=="0"
>     ATTR{stat}=="       0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0"
99,100c99,100
<   looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:0':
<     KERNELS=="6:0:0:0"
---
>   looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:1':
>     KERNELS=="6:0:0:1"
116,118c116,118
<     ATTRS{iodone_cnt}=="0x203"
<     ATTRS{ioerr_cnt}=="0x2"
<     ATTRS{iorequest_cnt}=="0x203"
---
>     ATTRS{iodone_cnt}=="0x1c"
>     ATTRS{ioerr_cnt}=="0x1b"
>     ATTRS{iorequest_cnt}=="0x1c"
125c125
<     ATTRS{power/runtime_active_time}=="13583"
---
>     ATTRS{power/runtime_active_time}=="17294"
146c146
<     ATTRS{power/runtime_active_time}=="13583"
---
>     ATTRS{power/runtime_active_time}=="17295"
159c159
<     ATTRS{power/runtime_active_time}=="13834"
---
>     ATTRS{power/runtime_active_time}=="17546"
208c208
<     ATTRS{power/active_duration}=="15132"
---
>     ATTRS{power/active_duration}=="18844"
212c212
<     ATTRS{power/connected_duration}=="15132"
---
>     ATTRS{power/connected_duration}=="18844"
217c217
<     ATTRS{power/runtime_active_time}=="14855"
---
>     ATTRS{power/runtime_active_time}=="18567"
229c229
<     ATTRS{urbnum}=="1891"
---
>     ATTRS{urbnum}=="1921"
259c259
<     ATTRS{power/active_duration}=="32343252"
---
>     ATTRS{power/active_duration}=="32346964"
263c263
<     ATTRS{power/connected_duration}=="921325708"
---
>     ATTRS{power/connected_duration}=="921329420"
267c267
<     ATTRS{power/runtime_active_time}=="32399565"
---
>     ATTRS{power/runtime_active_time}=="32403276"
324c324
<     ATTRS{power/runtime_active_time}=="921325058"
---
>     ATTRS{power/runtime_active_time}=="921328770"
370c370
<     ATTRS{power/runtime_active_time}=="921325065"
---
>     ATTRS{power/runtime_active_time}=="921328775"

output of udevadm info -a -n sdbc

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:1/block/sdc':
    KERNEL=="sdc"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{alignment_offset}=="0"
    ATTR{capability}=="51"
    ATTR{discard_alignment}=="0"
    ATTR{events}=="media_change"
    ATTR{events_async}==""
    ATTR{events_poll_msecs}=="-1"
    ATTR{ext_range}=="256"
    ATTR{hidden}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{integrity/device_is_integrity_capable}=="0"
    ATTR{integrity/format}=="none"
    ATTR{integrity/protection_interval_bytes}=="0"
    ATTR{integrity/read_verify}=="0"
    ATTR{integrity/tag_size}=="0"
    ATTR{integrity/write_generate}=="0"
    ATTR{make-it-fail}=="0"
    ATTR{mq/0/cpu_list}=="0, 1, 2, 3, 4, 5, 6, 7"
    ATTR{mq/0/nr_reserved_tags}=="0"
    ATTR{mq/0/nr_tags}=="1"
    ATTR{power/async}=="disabled"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_kids}=="0"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_enabled}=="disabled"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{power/runtime_usage}=="0"
    ATTR{queue/add_random}=="0"
    ATTR{queue/chunk_sectors}=="0"
    ATTR{queue/dax}=="0"
    ATTR{queue/discard_granularity}=="0"
    ATTR{queue/discard_max_bytes}=="0"
    ATTR{queue/discard_max_hw_bytes}=="0"
    ATTR{queue/discard_zeroes_data}=="0"
    ATTR{queue/fua}=="0"
    ATTR{queue/hw_sector_size}=="512"
    ATTR{queue/io_poll}=="0"
    ATTR{queue/io_poll_delay}=="-1"
    ATTR{queue/io_timeout}=="30000"
    ATTR{queue/iosched/back_seek_max}=="16384"
    ATTR{queue/iosched/back_seek_penalty}=="2"
    ATTR{queue/iosched/fifo_expire_async}=="250"
    ATTR{queue/iosched/fifo_expire_sync}=="125"
    ATTR{queue/iosched/low_latency}=="1"
    ATTR{queue/iosched/max_budget}=="0"
    ATTR{queue/iosched/slice_idle}=="8"
    ATTR{queue/iosched/slice_idle_us}=="8000"
    ATTR{queue/iosched/strict_guarantees}=="0"
    ATTR{queue/iosched/timeout_sync}=="124"
    ATTR{queue/iostats}=="1"
    ATTR{queue/logical_block_size}=="512"
    ATTR{queue/max_discard_segments}=="1"
    ATTR{queue/max_hw_sectors_kb}=="120"
    ATTR{queue/max_integrity_segments}=="0"
    ATTR{queue/max_sectors_kb}=="120"
    ATTR{queue/max_segment_size}=="65536"
    ATTR{queue/max_segments}=="2048"
    ATTR{queue/minimum_io_size}=="512"
    ATTR{queue/nomerges}=="0"
    ATTR{queue/nr_requests}=="2"
    ATTR{queue/nr_zones}=="0"
    ATTR{queue/optimal_io_size}=="0"
    ATTR{queue/physical_block_size}=="512"
    ATTR{queue/read_ahead_kb}=="512"
    ATTR{queue/rotational}=="1"
    ATTR{queue/rq_affinity}=="1"
    ATTR{queue/scheduler}=="mq-deadline kyber [bfq] none"
    ATTR{queue/stable_writes}=="0"
    ATTR{queue/virt_boundary_mask}=="0"
    ATTR{queue/wbt_lat_usec}=="75000"
    ATTR{queue/write_cache}=="write through"
    ATTR{queue/write_same_max_bytes}=="0"
    ATTR{queue/write_zeroes_max_bytes}=="0"
    ATTR{queue/zone_append_max_bytes}=="0"
    ATTR{queue/zone_write_granularity}=="0"
    ATTR{queue/zoned}=="none"
    ATTR{range}=="16"
    ATTR{removable}=="1"
    ATTR{ro}=="0"
    ATTR{size}=="0"
    ATTR{stat}=="       0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0        0"
    ATTR{trace/act_mask}=="disabled"
    ATTR{trace/enable}=="0"
    ATTR{trace/end_lba}=="disabled"
    ATTR{trace/pid}=="disabled"
    ATTR{trace/start_lba}=="disabled"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:1':
    KERNELS=="6:0:0:1"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{blacklist}=="FORCELUN"
    ATTRS{device_blocked}=="0"
    ATTRS{device_busy}=="0"
    ATTRS{dh_state}=="detached"
    ATTRS{eh_timeout}=="10"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_media_change}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{inquiry}==""
    ATTRS{iocounterbits}=="32"
    ATTRS{iodone_cnt}=="0x1c"
    ATTRS{ioerr_cnt}=="0x1b"
    ATTRS{iorequest_cnt}=="0x1c"
    ATTRS{max_sectors}=="240"
    ATTRS{model}=="STORAGE DEVICE  "
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend_delay_ms}=="-1"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="17294"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="2"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"
    ATTRS{rev}=="9328"
    ATTRS{scsi_level}=="0"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{type}=="0"
    ATTRS{vendor}=="Generic "

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0':
    KERNELS=="target6:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="4"
    ATTRS{power/runtime_active_time}=="17295"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6':
    KERNELS=="host6"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="17546"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="1012"
    ATTRS{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0':
    KERNELS=="2-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{power/async}=="enabled"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2':
    KERNELS=="2-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="9328"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="2"
    ATTRS{configuration}==""
    ATTRS{devnum}=="55"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="6108"
    ATTRS{idVendor}=="11b0"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Kingston"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="18844"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="18844"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="18567"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{product}=="FCR-HS215/1"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="000004355"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="1921"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0514"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="2"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 5.14.21-150400.24.63-default xhci-hcd"
    ATTRS{maxchild}=="2"
    ATTRS{power/active_duration}=="32346964"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="921329420"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="32403276"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="888922664"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:19:00.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="375187"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0':
    KERNELS=="0000:19:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{current_link_speed}=="5.0 GT/s PCIe"
    ATTRS{current_link_width}=="1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x0194"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="19"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{max_link_speed}=="5.0 GT/s PCIe"
    ATTRS{max_link_width}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/27}=="msix"
    ATTRS{msi_irqs/28}=="msix"
    ATTRS{msi_irqs/29}=="msix"
    ATTRS{msi_irqs/30}=="msix"
    ATTRS{msi_irqs/31}=="msix"
    ATTRS{msi_irqs/32}=="msix"
    ATTRS{msi_irqs/33}=="msix"
    ATTRS{msi_irqs/34}=="msix"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="921328770"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="1"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{power_state}=="D0"
    ATTRS{reset_method}=="bus"
    ATTRS{revision}=="0x04"
    ATTRS{subsystem_device}=="0x1658"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x1033"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3':
    KERNELS=="0000:00:1c.3"
    SUBSYSTEMS=="pci"
    DRIVERS=="pcieport"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x060400"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{current_link_speed}=="5.0 GT/s PCIe"
    ATTRS{current_link_width}=="1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1c16"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="2"
    ATTRS{irq}=="19"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{max_link_speed}=="5.0 GT/s PCIe"
    ATTRS{max_link_width}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="921328775"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="2"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{power_state}=="D0"
    ATTRS{reset_method}=="pm"
    ATTRS{revision}=="0xb5"
    ATTRS{secondary_bus_number}=="25"
    ATTRS{subordinate_bus_number}=="25"
    ATTRS{subsystem_device}=="0x3389"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="14"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{waiting_for_supplier}=="0"

output of udevadm info -a -n sdb1

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
    
  looking at device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb/sdb1':
    KERNEL=="sdb1"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{make-it-fail}=="0"
    ATTR{partition}=="1"
    ATTR{power/async}=="disabled"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_kids}=="0"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_enabled}=="disabled"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{power/runtime_usage}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="201599"
    ATTR{start}=="1"
    ATTR{stat}=="     174       62     5894      231        9       11       40       13        0      424      244        0        0        0        0        0        0"
    ATTR{trace/act_mask}=="disabled"
    ATTR{trace/enable}=="0"
    ATTR{trace/end_lba}=="disabled"
    ATTR{trace/pid}=="disabled"
    ATTR{trace/start_lba}=="disabled"
    
  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb':
    KERNELS=="sdb"
    SUBSYSTEMS=="block"
    DRIVERS==""
    ATTRS{alignment_offset}=="0"
    ATTRS{capability}=="51"
    ATTRS{discard_alignment}=="0"
    ATTRS{events}=="media_change"
    ATTRS{events_async}==""
    ATTRS{events_poll_msecs}=="-1"
    ATTRS{ext_range}=="256"
    ATTRS{hidden}=="0"
    ATTRS{inflight}=="       0        0"
    ATTRS{integrity/device_is_integrity_capable}=="0"
    ATTRS{integrity/format}=="none"
    ATTRS{integrity/protection_interval_bytes}=="0"
    ATTRS{integrity/read_verify}=="0"
    ATTRS{integrity/tag_size}=="0"
    ATTRS{integrity/write_generate}=="0"
    ATTRS{make-it-fail}=="0"
    ATTRS{mq/0/cpu_list}=="0, 1, 2, 3, 4, 5, 6, 7"
    ATTRS{mq/0/nr_reserved_tags}=="0"
    ATTRS{mq/0/nr_tags}=="1"
    ATTRS{power/async}=="disabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{queue/add_random}=="1"
    ATTRS{queue/chunk_sectors}=="0"
    ATTRS{queue/dax}=="0"
    ATTRS{queue/discard_granularity}=="0"
    ATTRS{queue/discard_max_bytes}=="0"
    ATTRS{queue/discard_max_hw_bytes}=="0"
    ATTRS{queue/discard_zeroes_data}=="0"
    ATTRS{queue/fua}=="0"
    ATTRS{queue/hw_sector_size}=="512"
    ATTRS{queue/io_poll}=="0"
    ATTRS{queue/io_poll_delay}=="-1"
    ATTRS{queue/io_timeout}=="30000"
    ATTRS{queue/iosched/back_seek_max}=="16384"
    ATTRS{queue/iosched/back_seek_penalty}=="2"
    ATTRS{queue/iosched/fifo_expire_async}=="250"
    ATTRS{queue/iosched/fifo_expire_sync}=="125"
    ATTRS{queue/iosched/low_latency}=="1"
    ATTRS{queue/iosched/max_budget}=="0"
    ATTRS{queue/iosched/slice_idle}=="8"
    ATTRS{queue/iosched/slice_idle_us}=="8000"
    ATTRS{queue/iosched/strict_guarantees}=="0"
    ATTRS{queue/iosched/timeout_sync}=="124"
    ATTRS{queue/iostats}=="1"
    ATTRS{queue/logical_block_size}=="512"
    ATTRS{queue/max_discard_segments}=="1"
    ATTRS{queue/max_hw_sectors_kb}=="120"
    ATTRS{queue/max_integrity_segments}=="0"
    ATTRS{queue/max_sectors_kb}=="120"
    ATTRS{queue/max_segment_size}=="65536"
    ATTRS{queue/max_segments}=="2048"
    ATTRS{queue/minimum_io_size}=="512"
    ATTRS{queue/nomerges}=="0"
    ATTRS{queue/nr_requests}=="2"
    ATTRS{queue/nr_zones}=="0"
    ATTRS{queue/optimal_io_size}=="0"
    ATTRS{queue/physical_block_size}=="512"
    ATTRS{queue/read_ahead_kb}=="512"
    ATTRS{queue/rotational}=="1"
    ATTRS{queue/rq_affinity}=="1"
    ATTRS{queue/scheduler}=="mq-deadline kyber [bfq] none"
    ATTRS{queue/stable_writes}=="0"
    ATTRS{queue/virt_boundary_mask}=="0"
    ATTRS{queue/wbt_lat_usec}=="75000"
    ATTRS{queue/write_cache}=="write through"
    ATTRS{queue/write_same_max_bytes}=="0"
    ATTRS{queue/write_zeroes_max_bytes}=="0"
    ATTRS{queue/zone_append_max_bytes}=="0"
    ATTRS{queue/zone_write_granularity}=="0"
    ATTRS{queue/zoned}=="none"
    ATTRS{range}=="16"
    ATTRS{removable}=="1"
    ATTRS{ro}=="0"
    ATTRS{size}=="7847280"
    ATTRS{stat}=="     418       62    17492      913        9       11       40       13        0      956      927        0        0        0        0        0        0"
    ATTRS{trace/act_mask}=="disabled"
    ATTRS{trace/enable}=="0"
    ATTRS{trace/end_lba}=="disabled"
    ATTRS{trace/pid}=="disabled"
    ATTRS{trace/start_lba}=="disabled"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0/6:0:0:0':
    KERNELS=="6:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{blacklist}=="FORCELUN"
    ATTRS{device_blocked}=="0"
    ATTRS{device_busy}=="0"
    ATTRS{dh_state}=="detached"
    ATTRS{eh_timeout}=="10"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_media_change}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{inquiry}==""
    ATTRS{iocounterbits}=="32"
    ATTRS{iodone_cnt}=="0x301"
    ATTRS{ioerr_cnt}=="0x2"
    ATTRS{iorequest_cnt}=="0x301"
    ATTRS{max_sectors}=="240"
    ATTRS{model}=="STORAGE DEVICE  "
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend_delay_ms}=="-1"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="515595"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="2"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"
    ATTRS{rev}=="9328"
    ATTRS{scsi_level}=="0"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{type}=="0"
    ATTRS{vendor}=="Generic "

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6/target6:0:0':
    KERNELS=="target6:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="4"
    ATTRS{power/runtime_active_time}=="515595"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0/host6':
    KERNELS=="host6"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="515847"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="1012"
    ATTRS{power/runtime_usage}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2/2-2:1.0':
    KERNELS=="2-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{power/async}=="enabled"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2/2-2':
    KERNELS=="2-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="9328"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="2"
    ATTRS{configuration}==""
    ATTRS{devnum}=="55"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="6108"
    ATTRS{idVendor}=="11b0"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Kingston"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="517144"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="517144"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="516868"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{product}=="FCR-HS215/1"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="000004355"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="6144"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0514"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="2"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 5.14.21-150400.24.63-default xhci-hcd"
    ATTRS{maxchild}=="2"
    ATTRS{power/active_duration}=="32845264"
    ATTRS{power/async}=="enabled"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="921827720"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="32901578"
    ATTRS{power/runtime_enabled}=="enabled"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="888922664"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:19:00.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="375187"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3/0000:19:00.0':
    KERNELS=="0000:19:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{current_link_speed}=="5.0 GT/s PCIe"
    ATTRS{current_link_width}=="1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x0194"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="19"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{max_link_speed}=="5.0 GT/s PCIe"
    ATTRS{max_link_width}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/27}=="msix"
    ATTRS{msi_irqs/28}=="msix"
    ATTRS{msi_irqs/29}=="msix"
    ATTRS{msi_irqs/30}=="msix"
    ATTRS{msi_irqs/31}=="msix"
    ATTRS{msi_irqs/32}=="msix"
    ATTRS{msi_irqs/33}=="msix"
    ATTRS{msi_irqs/34}=="msix"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="921827071"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="1"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{power_state}=="D0"
    ATTRS{reset_method}=="bus"
    ATTRS{revision}=="0x04"
    ATTRS{subsystem_device}=="0x1658"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x1033"

  looking at parent device '/devices/pci0000:00/0000:00:1c.3':
    KERNELS=="0000:00:1c.3"
    SUBSYSTEMS=="pci"
    DRIVERS=="pcieport"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x060400"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{current_link_speed}=="5.0 GT/s PCIe"
    ATTRS{current_link_width}=="1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1c16"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="2"
    ATTRS{irq}=="19"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{max_link_speed}=="5.0 GT/s PCIe"
    ATTRS{max_link_width}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_kids}=="1"
    ATTRS{power/runtime_active_time}=="921827076"
    ATTRS{power/runtime_enabled}=="forbidden"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="2"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{power_state}=="D0"
    ATTRS{reset_method}=="pm"
    ATTRS{revision}=="0xb5"
    ATTRS{secondary_bus_number}=="25"
    ATTRS{subordinate_bus_number}=="25"
    ATTRS{subsystem_device}=="0x3389"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="14"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{waiting_for_supplier}=="0"

If dealing with a limited number of frequently used USB volumes, you may wish to consider including them in /etc/fstab/, along with specific mount options and locations. To facilitate this, give each volume a unique LABEL using tune2fs, e2label, or one of the FAT or other labeling tools after formatting, or as a command option when formatting, and configure mounting by their humanly memorable LABELs rather than immemorable UUIDs or inconsistent device names. The Leap I’m using to write here has 155 lines in /etc/fstab.

ATTRS{serial} will search for the serial attribute on any parent of this device. In this case it is your USB multi-format reader (FCR-HS215/1). Each block device is child of this USB device and attempts to create the same links. The last block device for which this rule runs wins. It worked previously just by pure luck. You obviously cannot assign the same name cfreader1 to both sdb1 and sdc1

You need to use unique (base) name for each block device. %n is not enough because they overlap.

Did you look at existing /dev/disk/by-* links? udev already goes out of its way to give you persistent stable links.

That is not how you post command output. Please, always copy and paste the full command line, its complete output and subsequent shell prompt, all as one chunk of text. Only then can we be sure that you actually run the command you described and its output is complete. And yes, it happens quite often that commands get entered wrong, like confusing capital and small letters, missing spaces etc.

I don’t want to have /dev/sdb and /dev/sdc the udev mounter is doing that.
Of course it should be the same device so I don’t know which the partitions are right i.e. set to /dev/sdbX
and whole device is /dev/sdc instead of /dev/sdb!
I cannot to mounts with fstab etc. fixed because the amount ofpartition depends of the target system I use OpenSuse to install embedded systems and need to install lilo to the cfreader is all automated…

Your hardware cannot read your mind. Your multifunctional card reader provides (at least) two different block devices. Which is rather logical if you can use several slots at the same time - each slot has to be addressed as separate device.

Did you even try to look at /dev/disk/by-* links?

I don’t understand why I have
usb-Kingston_FCR-HS219_1_114601005146-0:0 pointing to /dev/sdb
and it is not reflected to /dev/cfreader
while
usb-Kingston_FCR-HS219_1_114601005146-0:1 pointing to /dev/sdc
is reflected to /dev/cfreader
Why do I have 2 kingston readers :0 and :1?
This is the same problem with 2 differente models of kingston readers…

ls -l /dev/disk/by-* | grep sdb

lrwxrwxrwx 1 root root  9 Jul 17 13:00 usb-Kingston_FCR-HS219_1_114601005146-0:0 -> ../../sdb
lrwxrwxrwx 1 root root 10 Jul 17 13:00 usb-Kingston_FCR-HS219_1_114601005146-0:0-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jul 17 13:00 usb-Kingston_FCR-HS219_1_114601005146-0:0-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 17 13:00 usb-Kingston_FCR-HS219_1_114601005146-0:0-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Jul 17 13:00 usb-Kingston_FCR-HS219_1_114601005146-0:0-part4 -> ../../sdb4
lrwxrwxrwx 1 root root 10 Jul 17 13:00 backup -> ../../sdb4
lrwxrwxrwx 1 root root 10 Jul 17 13:00 boot -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jul 17 13:00 log -> ../../sdb3
lrwxrwxrwx 1 root root 10 Jul 17 13:00 swr1 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 17 13:00 68afa527-01 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jul 17 13:00 68afa527-02 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 17 13:00 68afa527-03 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Jul 17 13:00 68afa527-04 -> ../../sdb4
lrwxrwxrwx 1 root root  9 Jul 17 13:00 pci-0000:19:00.0-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdb
lrwxrwxrwx 1 root root 10 Jul 17 13:00 pci-0000:19:00.0-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jul 17 13:00 pci-0000:19:00.0-usb-0:1:1.0-scsi-0:0:0:0-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 17 13:00 pci-0000:19:00.0-usb-0:1:1.0-scsi-0:0:0:0-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Jul 17 13:00 pci-0000:19:00.0-usb-0:1:1.0-scsi-0:0:0:0-part4 -> ../../sdb4
lrwxrwxrwx 1 root root 10 Jul 17 13:00 187e306a-9479-45b7-8ef7-5898a8aca4f9 -> ../../sdb4
lrwxrwxrwx 1 root root 10 Jul 17 13:00 7e34d5dc-b3a8-4ed6-9552-853311337e15 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Jul 17 13:00 849d2d6c-48f1-46b9-8139-352798299781 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 17 13:00 fffcc0dd-1278-485f-b974-3ea9447bf84b -> ../../sdb1


ls  -l /dev/cfreader

lrwxrwxrwx 1 root root 3 Jul 17 13:00 /dev/cfreader → sdc
lrwxrwxrwx 1 root root 4 Jul 17 13:00 /dev/cfreader1 → sdb1
lrwxrwxrwx 1 root root 4 Jul 17 13:00 /dev/cfreader2 → sdb2
lrwxrwxrwx 1 root root 4 Jul 17 13:00 /dev/cfreader3 → sdb3
lrwxrwxrwx 1 root root 4 Jul 17 13:00 /dev/cfreader4 → sdb4

Because your reader has multiple slots and they can be used at the same time and each slot needs its own device. Hey, did not I already told you that?

I know the reader has multiple slots but there are recognized as for example
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
but the partition of /dev/sdb SHOULD be /dev/sdb1 /dev/sdb2 etc. of course and–

Now after upgrading a lot of packages suddenly it works right…

Then write the correct udev rule that matches sdb1 to sdb, not to some random device of your multifunctional reader. Which is what I’m trying to tell you all the time but you are not listening.

To my experience udev works until users start tinkering. Temporarily rename the rules file and show the output of ls -1 /dev/disk/by-id/:

erlangen:~ # ls -1 /dev/disk/by-id/
ata-CT2000BX500SSD1_1944E225C2B1
ata-CT2000BX500SSD1_1944E225C2B1-part1
ata-PIONEER_DVD-RW_DVR-221_MHQC295793WL
ata-ST8000VN004-2M2101_WSD7VMT2
ata-ST8000VN004-2M2101_WSD7VMT2-part1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0R834197L
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0R834197L-part1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0R834197L-part2
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0R834197L_1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0R834197L_1-part1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0R834197L_1-part2
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0W552342E
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0W552342E-part1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0W552342E-part2
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0W552342E_1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0W552342E_1-part1
nvme-Samsung_SSD_970_EVO_Plus_2TB_S4J4NX0W552342E_1-part2
nvme-eui.0025385531b1db50
nvme-eui.0025385531b1db50-part1
nvme-eui.0025385531b1db50-part2
nvme-eui.0025385811b131fb
nvme-eui.0025385811b131fb-part1
nvme-eui.0025385811b131fb-part2
scsi-0ATA_CT2000BX500SSD1_1944E225C2B1
scsi-0ATA_CT2000BX500SSD1_1944E225C2B1-part1
scsi-0ATA_ST8000VN004-2M21_WSD7VMT2
scsi-0ATA_ST8000VN004-2M21_WSD7VMT2-part1
scsi-1ATA_CT2000BX500SSD1_1944E225C2B1
scsi-1ATA_CT2000BX500SSD1_1944E225C2B1-part1
scsi-1ATA_ST8000VN004-2M2101_WSD7VMT2
scsi-1ATA_ST8000VN004-2M2101_WSD7VMT2-part1
scsi-35000c500e4980e65
scsi-35000c500e4980e65-part1
scsi-3500a0751e225c2b1
scsi-3500a0751e225c2b1-part1
scsi-SATA_CT2000BX500SSD1_1944E225C2B1
scsi-SATA_CT2000BX500SSD1_1944E225C2B1-part1
scsi-SATA_ST8000VN004-2M21_WSD7VMT2
scsi-SATA_ST8000VN004-2M21_WSD7VMT2-part1
usb-Generic_STORAGE_DEVICE_000000000828-0:0
usb-Generic_STORAGE_DEVICE_000000000828-0:0-part1
usb-Intenso_Premium_09101700028006-0:0
usb-Intenso_Premium_09101700028006-0:0-part1
usb-Intenso_Ultra_Line_CCYYMMDDHHmmSSUP-0:0
usb-Intenso_Ultra_Line_CCYYMMDDHHmmSSUP-0:0-part1
usb-Intenso_Ultra_Line_CCYYMMDDHHmmSSUP-0:0-part2
usb-SanDisk_Extreme_AA011208142056380851-0:0
wwn-0x5000c500e4980e65
wwn-0x5000c500e4980e65-part1
wwn-0x500a0751e225c2b1
wwn-0x500a0751e225c2b1-part1
erlangen:~ #