Udev 규칙이 적용되지 않았습니다.

Udev 규칙이 적용되지 않았습니다.

우분투 19.10에 간단한 udev 규칙이 있습니다

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/sbin/hdparm -B 127 -S 120 /dev/%k"

이 기능을 적용할 수 있는 드라이브가 2개 있습니다.

# lsblk -d -o name,rota
NAME    ROTA
loop0      0
loop1      0
loop2      0
loop3      0
sda        1
sdb        1
sdc        0
sdd        1
nvme0n1    0

부팅 후 디스크를 확인합니다

# hdparm -B /dev/sda

/dev/sda:
 APM_level      = 127
# hdparm -B /dev/sdd

/dev/sdd:
 APM_level      = 254
#

왜 이것이 사용되어서는 안되는지 잘 모르겠습니다 /dev/sdd. 쉘에서 명령을 실행할 수 있고 /dev/sdd잘 작동합니다.

규칙은 다음을 통해 트리거될 수도 있습니다.

udevadm trigger /dev/sdd

명령을 올바르게 실행하십시오.

이 문제를 디버깅하는 방법에 대한 아이디어가 있습니까?

추신. /dev/sdbAPM 속성이 지원되지 않습니다. hdparm이 실패하여 udev 실행이 중지되었습니까? 이 경우 어떻게 건너뛸 수 있나요 /dev/sdb?

고쳐 쓰다:

꽤 오랫동안 시도하고 출력을 기록하는 쉘 스크립트를 만든 후에 출력은 드라이브가 업데이트되었다고 말하는 hdparm것처럼 보입니다 . hdparm그런데 드라이브 설정을 확인해보니 적용이 안되네요!

이제 설정을 완료했습니다./etc/hdparm.conf

/dev/sda {
        apm = 127
        spindown_time = 120
}

/dev/sdb {
        spindown_time = 120
}

/dev/sdd {
        apm = 127
        spindown_time = 120
}

이제 모든 설정이 적용되었습니다.

규칙을 사용하는 것만큼 우아하지는 않지만 udev작동합니다!

관련 정보