Эти настройки исчезают после каждой перезагрузки?
В случае программной перезагрузки, когда накопитель остается включенным, настройки не исчезают. Цикл питания сбрасывает параметр APM. (По крайней мере, на моем ноутбуке)
Большинство сеттеров также являются геттерами в hdparm
. Настройку APM можно легко проверить с помощью :
.
# hdparm -B /dev/sdb
/dev/sdb:
APM_level = 128
Это не работает для стенда -по таймеру. Но по логике эти настройки тоже теряются.
Куда я должен поместить эти команды, чтобы они были постоянными?
Все виды опций, пользовательское udev
правило, systemd
сервис, cron
задание(@reboot
). Что подходит вам лучше всего.
Arch wiki — неплохой источник дополнительной информации.
Вдохновленный приведенной выше вики, я создал systemd
служебный файл для своей системы Gentoo:
[Unit]
Description=hdparm sleep
After=suspend.target
[Service]
Type=oneshot
ExecStart=/sbin/hdparm -S 12 -B 127 /dev/sdb
[Install]
WantedBy=multi-user.target suspend.target
Вы можете захотеть применить настройки сразу ко всем своим устройствам следующим образом::
ExecStart=/sbin/hdparm -B 127 -S 241 /dev/sda /dev/sdb /dev/sdd /dev/sde
Обратите внимание, что вы должны использовать абсолютные пути для всего, вы не можете сделать, например. cmd /dev/sd[abde]
. Точное расположение двоичного файла hdparm
может отличаться в вашем дистрибутиве.
Используйте следующую команду, чтобы узнать местоположение вашего hdparm
, который обычно называется:
which hdparm
Затем вы можете включить службу и при необходимости запустить ее. Вы можете просто перезагрузить машину, чтобы убедиться, что она работает на 100%.
# systemctl enable hdparm.service
# systemctl start hdparm.service
# systemctl status hdparm.service
Предложение Arch подавляет вывод, но я предпочитаю проверять успешность hdparm
с помощью последней введенной команды.
Редактировать
Я обнаружил, что после приостановки параметры не сохраняются на моем жестком диске. Это может иметь место для большего количества портативных систем. Поэтому я изменил файл примера модуля. Предоставлено этому ответу на unix.SO.
Проблема возникла из-за того, что я ранее устанавливал rvm с его веб-сайта. Удаление rvm с помощью команды rvm implode
и перезапуск оболочки решили проблему.