我有 sdcard 读卡器,我想将块设备名称设置为 /dev/sdcard2 ,它们的分区将被命名为 /dev/sdcard2p1 /dev/sdcard2p2 /dev/sdcard2p3 ...(基于读卡器中插入的特定卡的分区计数)
此规则必须适用于插入此特定 SD 卡读卡器(通过序列号区分)的任何 SD 卡(具有不同的分区数量),并且指向插入的 SD 卡的块设备必须具有这些名称。
SD卡读卡器具有此序列号 ID_SERIAL_SHORT=20210500010790
所以我想编写 udev 规则,它将设置块设备名称,如上所述。
我尝试过这个规则:
KERNEL=="sd*", ACTION=="add", ENV{ID_SERIAL_SHORT}=="20210500010790", SYMLINK+="sdcard2%n"
但它不起作用,我做错了什么?
这是输出udevadm monitor --environment --udev
:帕斯特宾
更新:我找到了一些解决方案:
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"
它适用于 ATTRS,但不适用于 ENV,但为什么呢?