
가능한 중복:
Udev 규칙이 작동하지 않습니다
CFQ를 기본 I/O 스케줄러로 설정했습니다. 플래시 장치에 데이터를 쓸 때 종종 성능이 저하됩니다. USB 플래시 장치의 I/O 스케줄러로 마감일을 사용하면 이 문제가 해결됩니다. 스케줄러를 항상 수동으로 변경할 수는 없잖아요? udev 규칙을 작성하는 것이 좋은 생각이라고 생각합니다.
누군가 나를 위해 규칙을 작성해 줄 수 있나요? 나는 원해요:
- USB 장치를 연결하면 장치 유형을 감지합니다.
- 휴대용 USB 하드 디스크라면 아무것도 하지 마세요(장치에 파티션이 두 개 이상 있으면 항상 휴대용 하드 디스크인 것 같습니다.
- USB 플래시 장치인 경우 스케줄러로 마감일을 설정하세요.
답변1
먼저, 쉘 스크립트를 (예: ) scheduler4usb
에 넣으세요 :$PATH
/usr/bin
#!/bin/bash
# Usage: ./script device scheduler
# If your are using util-linux 2.22, you must change this line to:
# fdisk /dev/$1 -l 2>&1 >/dev/null | grep -q "doesn't contain a valid partition table"
#
fdisk /dev/$1 -l 2>&1 >/dev/null | grep -q "This doesn't look like a partition table"
# If this device has a partition table.
if (($?==0)); then
echo $2 > /sys/block/$1/queue/scheduler
fi
exit
chmod +x scheduler4usb
스크립트를 작성하는 것을 잊지 마세요 !
그런 다음 규칙을 다음 위치에 작성합니다 /etc/udev/rules.d/91-change-schduler.rules
.
SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="sd?", RUN+="/usr/local/bin/scheduler4usb %k deadline"