У меня есть два архивных жестких диска, которыми я пользуюсь очень редко (я монтирую их разделы вручную в среднем реже одного раза в неделю). Поскольку я выключал компьютер ночью, я пытался предотвратить их вращение при повседневной загрузке, но это кажется слишком сложным: требует исправления ядра Linux. В качестве худшей, но более простой альтернативы я создал простой системный модуль, который переводит жесткие диски в спящий режим сразу после загрузки (ExecStart=/usr/bin/hdparm -Y /dev/disk/by-id/...
и WantedBy=multi-user.target
). Это почти работает: оба диска вращаются при загрузке. Я подтвердил это с помощью входа в терминал через tty2: sudo hdparm -C /dev/sd[bc]
сообщает, что drive state is: standby
.
Однако, как только я вхожу в графическую оболочку, один из дисков громко раскручивается, и hdparm сообщает о drive state is: active/idle
для него активен / неактивен . Это происходит как с XFCE, так и с KDE Plasma 5 (Manjaro GNU / Linux с последними обновлениями), а также с другим пользователем той же системы. После пробуждения диска я усыпляю его вручную (hdparm -Y ...
), и он больше никогда не просыпается, пока я не перезагружаю компьютер. Выйти из системы, затем войти в нее, даже как другой пользователь, больше не будит ни одного диска.
Этот пробуждающий диск всегда один и тот же. Я попытался поменять местами кабели SATA этих двух жестких дисков, которые меняли свои идентификаторы (sdb <-> sdc), но при первом графическом входе в систему все же тот же физический жесткий диск пробуждается. Этот пробуждающий диск определенно нигде не упоминается в моих файлах конфигурации по его постоянному идентификатору, потому что я приобрел его недавно (из вторых рук). Более конкретно, диск, который продолжает спать, - это Samsung HD103UJ, а диск, который пробуждается при первом графическом входе в систему, - это Samsung HD154UI.
Я наблюдаю /dev/sd [bc] доступ с помощью audd. Логи практически одинаковы для обоих дисков. Сначала я захожу в консоль tty2 и запускаю sudo hdparm -C /dev/sd[bc]
: оба диска спят; затем я переключаюсь на tty7 и захожу в XFCE с экрана lightdm; Я быстро переключаюсь на tty2 и теперь один из дисков больше не спит. Суть вывода команды sudo ausearch -f /dev/sdb
соответствующего этим событиям:
comm="hdparm" exe="/usr/bin/hdparm"
comm="udisksd" exe="/usr/lib/udisks2/udisksd"
comm="hdparm" exe="/usr/bin/hdparm"
comm="udisksd" exe="/usr/lib/udisks2/udisksd"
comm="pool" exe="/usr/lib/udisks2/udisksd"
comm="pool" exe="/usr/lib/udisks2/udisksd"
...
И так далее. Строка comm="pool"
появляется каждые 10 минут в журнале или чаще, когда gnome- disk работает, но строка comm="udisksd"
не появляется до перезагрузки. Предполагая, что audd сообщает обо всех обращениях к диску, этот comm="udisksd"
должен отвечать за пробуждение. Но почему только один из 2 жестких дисков? Возможно, жесткий диск можно настроить с помощью hdparm
чтобы он не просыпался?
Я сравнил выходные данные hdparm -I /dev/sdb
и hdparm -I /dev/sdc
с meld. Также пробовал -Iv
, -i
и -iv
вместо -I
. Различия в значительной степени ограничены уникальными идентификаторами, размерами дисков, геометрией. Единственное различие, которое может вызвать эту несогласованность при пробуждении, - это Версия прошивки: 1A A 01118 на диске без пробуждения и 1A G 01118 на диске пробуждения.