Cómo configurar el nombre del dispositivo de bloqueo usando reglas udev basadas en el número de serie del lector de tarjetas SD

Cómo configurar el nombre del dispositivo de bloqueo usando reglas udev basadas en el número de serie del lector de tarjetas SD

Tengo un lector de tarjetas SD y quiero configurar los nombres de los dispositivos de bloqueo en /dev/sdcard2 y sus particiones se llamarán /dev/sdcard2p1 /dev/sdcard2p2 /dev/sdcard2p3... (basado en el recuento de particiones de una tarjeta específica insertada en el lector)

Esta regla debe aplicarse a cualquier tarjeta SD (con varios recuentos de particiones) insertada en este lector de tarjetas SD específico (distinguido por número de serie) y los dispositivos de bloque que apuntan a la tarjeta SD insertada deben tener esos nombres.

El lector de tarjetas SD tiene este número de serie ID_SERIAL_SHORT=20210500010790

Entonces quiero escribir una regla udev que establecerá el nombre del dispositivo de bloqueo como lo describí anteriormente.

Probé esta regla:

KERNEL=="sd*", ACTION=="add", ENV{ID_SERIAL_SHORT}=="20210500010790", SYMLINK+="sdcard2%n"

Pero no funciona, ¿qué estoy haciendo mal?

Este es el resultado de udevadm monitor --environment --udev:pastilla

Actualización: encontré alguna solución:

ACTION=="add", SUBSYSTEM=="block", ATTRS{serial}=="20210500010790", ENV{DEVTYPE}=="disk", SYMLINK+="sdcard2"
ACTION=="add", SUBSYSTEM=="block", ATTRS{serial}=="20210500010790", ENV{DEVTYPE}=="partition", SYMLINK+="sdcard2p%n"

Funciona con ATTRS, pero no funciona con ENV, pero ¿por qué?

información relacionada