Обновлено 27.09.2016

Скопилось у меня некоторое количество старых винчестеров малого объёма: несколько по 40, 200, 250 Гиг. Как бы в домашнюю машину их впихивать нелогично — шумят и кушают по 5-10 Вт электричества, а так, чтоб на полке лежали — жаба душит. Вот если бы они выключались когда не нужно и включались по обращению к ним — было бы очень хорошо. Поисследовал вопрос — оказывается можно.
В стандартной поставке ubuntu есть утилита hdparm для получения/установки параметров винчестеров. По идее hdparm с опцией -s должен задавать время, после которого винчестер, если к нему нет обращения, переходит в режим standby (засыпает), т.е. отключается вращение дисков. То что нам и нужно: не шумит, кушает 1 Вт — красота. Но вот не отрабатывает у меня почему-то эта команда на всех вениках, да ещё и на одной из материнок из старых. Почему уж так — не стал разбираться, т.к. надыбал ещё пару заклинаний, на основе которых можно построить скриптик отключения.

Первое заклинание — всё тот же hdparm с опциями -B (разрешает функционал управления электропитанием), -Y (перевод винчестера в standby) и -С (запросить состояние винчестера)
Второе — выдаёт статистику винчестера:

Третья колонка — имя устройства, четвёртая — общее количество чтений с устройства, восьмая — общее количество записи на устройство. Алгоритм скрипта прост — запоминаем эту информацию и при следующем вызове сравниваем текущие значения и сохранённые. Если равны, значит работы с винчестером не было и его можно глушить.

Вызываем список заданий root-а

И добавляем вызов нашего скрипта раз в минуту с указанием устройств, которые он должен обслуживать (sdb). Если нужно несколько устройств, то указываем их через пробел, например «sdb sdc»

© nesterenko.org.ua