Я бы предложил вам использовать udev для настройки параметров дисков SSD. Таким образом, вы можете настроить определенный планировщик очереди, который больше подходит для SSD и т. Д. Вы также можете применять параметры только к некоторым устройствам, основываясь на большом количестве параметров.
Вы можете получить конкретные атрибуты, необходимые для соответствия вашим устройствам (например, модель диска и производителя), выполнив:
udevadm info -a -p /sys/block/sda
и проверка всех пар ATTR для вашего блочного устройства.
Еще одним преимуществом является возможность устанавливать параметры для сменных дисков (например, в корпусах или отсеках для горячей замены), и эта настройка будет применяться ко всем новым устройствам при условии, что параметры устройства совпадают.
Ниже приведен пример применения определенного планировщика для твердотельных накопителей Intel, желаемого значения времени чтения (4096 блоков = 2048 КБ), а также применения другого планировщика для всех других твердотельных накопителей:
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"
После сохранения файла вы можете проверить, соответствует ли ваше правило устройству и что udev будет делать с помощью udevadm:
udevadm test --action=add /sys/block/sda
Это печатает все правила, которые udev загружает, что соответствует, что нет, и какие решения будет принимать udev, когда устройство подключено.
Надеюсь это поможет.