И жужжат винты у нас в десктопах (как песня)

Aug 16, 2015 19:27

Продолжаем наш цикл передач «для тех, у кого много свободного времени» про управление бездушными железками.

После перевода ноута на беззвучный и быстрый ssd, я вытащил из него cd-rom и заменил его прекрасным адаптером для 2,5" hdd. Куда и вмонтировал «старый» hdd. Но этот диск нужен сейчас редко и негоже ему зря крутиться, жужжать и расходовать энергию. Диски умеют спать, аккуратно сложив свои головки и остановив свой шпиндель. При обращении к ним они просыпаются и начинают работать. Просто «усыпить» диск можно так:

# hdparm -Y /dev/sdb

/dev/sdb:
issuing sleep command

Текущее состояние диска смотрим так:

# hdparm -C /dev/sdb

/dev/sdb:
drive state is: standby

Автоматизируем это, чтоб диск засыпал сразу на старте системы: добавляем правило udev куда-нибудь в /etc/udev/rules.d/50-hdparm.rules:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdb", RUN+="/sbin/hdparm -Y /dev/sdb"

systemd-udevd (или что там у вас?) будет отлично выполнять возложенную на него операцию. Но после засыпания/пробуждения системы тот диск также будет просыпаться, подобно всей системе. Для «засыпания при просыпании» добавим ещё один хук для systemd в /usr/lib/systemd/system-sleep (назовём его 50hdparm_set, хоть это и не имеет никакого значения: хуки оттуда, похоже, выполняются асинхронно):

#!/bin/sh

echo "Apply hdparm settings to /dev/sdb"
/sbin/hdparm -Y /dev/sdb

Единственное, я не уверен, верно ли это с идеологической точки зрения напрягать udevd подобными задачами? Может, есть способ лучше/логичнее/правильнее?

Ну и всё, наслаждаемся тишиной, которую иногда прерывает вентилятор системы охлаждения. Потому что печка какая-то, а не процессор:

# cat /proc/cpuinfo | grep "model name"
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz

Но это уже совсем другая история…

p.s.: и не забыть выпилить этот диск из конфигов smartd (/etc/smartmontools/smartd.conf), а то пробуждается иногда, понимаешь ли. ;)
Я просто прописал там исключительно основной ssd (не забыв убрать DEVICESCAN):


/dev/sda -d sat -H -l error -l selftest -t -f -m root -M exec /usr/libexec/smartmontools/smartdnotify -n standby,10,q


программирование, linux, система, system, ноутбук, компьютер, программа, электроника

Previous post Next post
Up