
Possível duplicata:
A regra Udev não está funcionando
Eu configurei CFQ como o agendador de E/S padrão. Muitas vezes obtenho um desempenho ruim quando gravo dados em um dispositivo Flash. Isso será resolvido se eu usar o prazo como agendador de E/S para dispositivos USB Flash. Nem sempre consigo alterar o agendador manualmente, certo? Acho que escrever regras do udev é uma boa ideia.
Alguém pode escrever regras para mim? Eu quero:
- Quando conecto um dispositivo USB, detecto o tipo do dispositivo.
- Se for um disco rígido USB portátil, não faça nada (acho que se um dispositivo tiver mais de uma partição, é sempre um disco rígido portátil.
- Se for um dispositivo USB Flash, defina o prazo conforme o agendador.
Responder1
Primeiro, coloque o script de shell scheduler4usb
em $PATH
(por exemplo /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
Não se esqueça de chmod +x scheduler4usb
seguir seu roteiro!
Em seguida, escreva a regra em /etc/udev/rules.d/91-change-schduler.rules
:
SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="sd?", RUN+="/usr/local/bin/scheduler4usb %k deadline"