
Posible duplicado:
La regla udev no funciona
He configurado CFQ como el programador de E/S predeterminado. A menudo obtengo un mal rendimiento cuando escribo datos en un dispositivo Flash. Esto se resuelve si uso la fecha límite como programador de E/S para dispositivos Flash USB. No siempre puedo cambiar el programador manualmente, ¿verdad? Creo que escribir reglas para udev es una buena idea.
¿Alguien puede escribir reglas para mí? Deseo:
- Cuando conecto un dispositivo USB, detecto el tipo de dispositivo.
- Si es un disco duro USB portátil, no haga nada (creo que si un dispositivo tiene más de una partición, siempre es un disco duro portátil).
- Si se trata de un dispositivo flash USB, establezca la fecha límite como programador.
Respuesta1
Primero, coloque el script de shell scheduler4usb
en $PATH
(por ejemplo /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
¡No olvides chmod +x scheduler4usb
leer tu guión!
Luego, escribe la regla en /etc/udev/rules.d/91-change-schduler.rules
:
SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="sd?", RUN+="/usr/local/bin/scheduler4usb %k deadline"