如何使用基於SD卡讀卡器序號的udev規則設定區塊設備名稱

如何使用基於SD卡讀卡器序號的udev規則設定區塊設備名稱

我有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,但為什麼呢?

相關內容