udev 규칙을 사용하여 규칙에서 단일 장치를 제외하는 것이 가능합니까?
예를 들어 5개의 하드 디스크가 연결되어 있고 하나를 제외한 모든 하드 디스크에 대해 사용자 정의 이름을 만들고 싶다면? 가능합니까?
또한 sdz 이후의 커널 이름 디스크는 2자로 명명됩니다. sdaa,sdab, sdqr 등. sda1, sdb2 등에 파티션을 포함하고 싶지 않기 때문에 문제가 있습니다. 모든 문자를 와일드카드로 사용할 수 있지만 모든 숫자는 사용할 수 없습니까?
예:
KERNEL=="sd??", NAME="test/Disk%n", ATTRS{ID_SERIAL_SHORT}!="xxxx"
답변1
예를 들어 5개의 하드 디스크가 연결되어 있고 하나를 제외한 모든 하드 디스크에 대해 사용자 정의 이름을 만들고 싶다면? 가능합니까?
규칙을 건너뛰는 데 사용할 수 있습니다
GOTO
.ENV{ID_SERIAL_SHORT}=="xxxx|yyyy|zzzz", GOTO="custom_names_end" ENV{ID_MODEL}=="blahblah", GOTO="custom_names_end" KERNEL=="sd*", ENV{DEVTYPE}=="disk", SYMLINK+="test/Disk%n" LABEL="custom_names_end"
이는
ID_SERIAL_SHORT
속성이 아닙니다. 이는 udev "환경" 변수이므로 이를 사용하거나ENV{}
일치ENVS{}
시켜야 합니다. 속성은 sysfs에서 직접 읽습니다.또한 최근 udev 버전에서는 장치 이름 변경이 금지되어 있습니다. 사용자 정의 심볼릭 링크만 추가할 수 있습니다.
또한 sdz 이후의 커널 이름 디스크는 2자로 명명됩니다. sdaa,sdab, sdqr 등. sda1, sdb2 등에 파티션을 포함하고 싶지 않기 때문에 문제가 있습니다. 모든 문자를 와일드카드로 사용할 수 있지만 모든 숫자는 사용할 수 없습니까?
잘못된 접근 방식을 사용하고 있습니다. 디스크는 일치하지만 파티션은 일치하지 않으려면 다음을 수행하십시오.정확히 그렇게 해:
커널=="sd*",ENV{DEVTYPE}=="디스크", …
값 은 및
DEVTYPE
에서 볼 수 있습니다 .udevadm info /dev/sda
udevadm info /dev/sda1