Eu sugiro que você use o udev para definir parâmetros para os discos SSD. Dessa forma, você pode configurar um agendador de filas específico que seja mais apropriado para SSD, etc. Você também pode aplicar parâmetros apenas a alguns dos dispositivos, com base em muitos parâmetros.
Você pode obter os atributos específicos necessários para corresponder aos seus dispositivos (por exemplo, modelo e fabricante do disco) executando:
udevadm info -a -p /sys/block/sda
e verificando todos os pares ATTR para o seu dispositivo de bloco.
Outro benefício é a capacidade de definir os parâmetros para discos conectáveis (por exemplo, em gabinetes ou baias de hotswap) e a configuração será aplicada a todos os novos dispositivos, desde que os parâmetros do dispositivo correspondam.
Aqui está um exemplo para aplicar um agendador específico para SSDs Intel, o valor desejado de leitura (4096 blocos = 2048 kb) e também aplicar um agendador diferente para todos os outros SSDs:
cat /etc/udev/rules.d/99-ssd.rules
# http://unix.stackexchange.com/a/71409/36574
# Setting specific kernel parameters for a subset of block devices (Intel SSDs)
SUBSYSTEM=="block", ATTRS{model}=="Intel SSDSC*", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="2048", ATTR{queue/scheduler}="deadline"
# for all other non-rotational block devices set a scheduler to 'noop' and readahead to 1024KB
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="1024", ATTR{queue/scheduler}="noop"
Após salvar o arquivo, você pode testar se sua regra corresponderá ao dispositivo e o que o udev fará usando o udevadm:
udevadm test --action=add /sys/block/sda
Isso imprime todas as regras que o udev carrega, o que corresponde, o que não corresponde e quais decisões o udev tomará quando o dispositivo estiver conectado.
Espero que isto ajude.