Как запустить команду hdparm после загрузки и возобновить работу с Fedora 19?

Я купил новый HD (WD5000BPVT), который, к сожалению, пытается спать каждые 5-8 секунд. Мало того, что шум щелчка достаточно слышный, 1-секундное время спинупинга добавляет очень заметную задержку в повседневном использовании.

Я обнаружил, что hdparm -B 254 /dev/sda отключит очень короткий сон, но я не знаю, как применять этот параметр каждый раз, когда привод включен. Приложения dconf-editor и «Power Management Preferences» ничего не делают в отношении настроек HD. У меня нет путей /etc/hdparm или /etc/acpi . MATE – оконный менеджер.

На Fedora 19, как я могу заставить эту команду запускаться всякий раз, когда привод активирован?

  • Служебные стартовые сообщения службы повторного запуска повторяются второй раз
  • Запуск Mysql / Mariadb в Fedora не удалось
  • redhat vs debian / ubuntu системная архитектура (& not deb vs rpm)?
  • Fedora 17: горячая клавиша для терминала
  • Как вы можете использовать NOPASSWD sudo для работы в Fedora 15?
  • Fedora 15: что-то странное происходит с yum
  • Dogtag CA после установки
  • Чтобы настроить уровни APM на жестком диске и поддерживать их после приостановки / возобновления
  • 5 Solutions collect form web for “Как запустить команду hdparm после загрузки и возобновить работу с Fedora 19?”

    У меня была та же проблема, ни одно из решений здесь не соответствовало моим потребностям. Использование cron на самом деле является обходным решением, а не решением, правила udev запускаются, когда питание подключено / отключено, но не после приостановки / возобновления, а pm-utils больше не используются по умолчанию в Fedora 19, когда вы, например, закрываете крышку своего ноутбука.

    Поскольку systemd теперь отвечает за приостановку / спящий режим, я считаю, что единственный правильный способ справиться с этой ситуацией – создать блок systemd который будет работать как после загрузки, так и после возобновления с suspend.

    Заметки:

    • Используя /dev/disk/by-id/... вместо /dev/sda , вы всегда обязательно получите нужный диск (sda, b, c зависит от порядка их обнаружения ядром)
    • У вас может быть несколько строк ExecStart поэтому вы можете настроить несколько дисков

    Вот блок, который я написал:

     [Unit] Description=Silence HD After=suspend.target [Service] Type=oneshot # Disable automatic head parking for the main disk ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1 # Enable automatic spin down after 30 seconds for the second, infrequently used disk ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1 [Install] WantedBy=suspend.target basic.target того, как [Unit] Description=Silence HD After=suspend.target [Service] Type=oneshot # Disable automatic head parking for the main disk ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1 # Enable automatic spin down after 30 seconds for the second, infrequently used disk ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1 [Install] WantedBy=suspend.target basic.target 

    Сохраните этот файл как /etc/systemd/system/hdsilence.service а затем включите его, используя:

     systemctl enable hdsilence.service systemctl daemon-reload 

    Вы можете запустить систему во время загрузки, создав собственную службу systemd или добавив команду в /etc/rc.d/rc.local.

    Если вы хотите, чтобы команда запускалась каждый раз, когда вы разбудили систему после спящего / спящего режима, вы можете добавить скрипт, начинающийся с 2 цифр, до /etc/pm/sleep.d/, просмотр других скриптов в / usr / lib64 / pm-utils / sleep.d (предположим x86_64) для более подробной информации. В основном, он принимает параметр в зависимости от того, в каком состоянии он входит. Вам также может потребоваться добавить некоторый вход в power.d / в тот же родительский каталог, если вы хотите работать по-разному по мощности батареи по сравнению с подключенным.

    Для разных настроек при работе на AC / battery я бы сделал это с помощью простого правила udev , например
    /etc/udev/rules.d/98-apmsettings.rules :

     SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/usr/bin/hdparm -B 128 /dev/sda" SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/usr/bin/hdparm -B 254 /dev/sda" 

    Это apm к 254 при подключении ноутбука и, соответственно, 128 при отключении. Кроме того, он всегда должен работать, даже после возобновления с приостановления.

    У меня один и тот же диск (и та же проблема). Мое глупое, но работающее решение: я положил это в /etc/crontab :

     -*/5 * * * * root hdparm -B 254 /dev/sda 

    Правила udev хорошо работают на событиях plug-а, но чтобы получить правильное поведение после возобновления с приостановки, мне нужно что-то подобное в /etc/pm/sleep.d :

     #!/bin/sh case "${1}" in resume|thaw) if grep -q 1 /sys/class/power_supply/ADP1/online; then /usr/sbin/hdparm -B 254 /dev/sda else /usr/sbin/hdparm -B 128 /dev/sda fi ;; esac 
    Interesting Posts

    udev GROUP и MODE для символической ссылки не действуют

    Отключить прямой вход для обычных пользователей (например, оракула) в linux, но разрешить scp и sftp?

    @ и * в петле bash

    Объединить вывод сценария в тело письма и отправить его как одно электронное письмо?

    qsub job in state Eqw error: не может chdir в каталог: нет такого файла или каталога

    Как сохранить введенную команду без ее выполнения?

    Запустить скрипт на хосте при запуске виртуальной машины с помощью virt-manager

    Настроить кнопку питания для выключения на Debian

    Альтернатива FreeBSD для IP-маршрута добавляет локальные

    Как создать ограниченного пользователя и установить и запустить с ним службы?

    Клавиша ввода отличается от возврата каретки (CR)

    "Nl80211: 'nl80211' generic netlink not found" при запуске hostapd

    Как найти в Linux, если mule запущен

    Преобразовать glob в `find`

    ipsec rightsubnet для широкого, не может переопределить таблицу маршрутизации | IPSec маршрутизирует некоторые пакеты «локально», а не через туннель; ip xfrm изменить?

    Linux и Unix - лучшая ОС в мире.