
sdcard 리더가 있고 블록 장치 이름을 /dev/sdcard2로 설정하고 해당 파티션의 이름은 /dev/sdcard2p1 /dev/sdcard2p2 /dev/sdcard2p3 ...(리더에 삽입된 특정 카드의 파티션 수에 따라)가 됩니다.
이 규칙은 이 특정 sdcard 리더(일련 번호로 구분)에 삽입된 모든 sdcard(다양한 파티션 수 포함)에 적용되어야 하며 삽입된 sdcard를 가리키는 블록 장치에는 해당 이름이 있어야 합니다.
Sdcard 리더의 일련 번호는 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에서는 작동하지 않습니다. 그런데 왜 그럴까요?