Вопрос или проблема
Можно ли сделать так, чтобы жесткий диск вращался, когда он смонтирован, и прекращал вращение, когда я его отмонтирую?
Я искал ответы в интернете, но нет точного ответа на такой вопрос. Всегда говорится о том, чтобы установить таймаут на жесткий диск или использовать
hdparm -Y /dev/sdX
но они только частично решают мой вопрос. Да, я могу сделать так, чтобы когда я обращаюсь к HDD (мой первичный диск – SSD), он начинал вращаться, и после того как я перестаю с ним работать, я отмонтирую его и просто запускаю эту команду… но это раздражает. Я же говорю, это компьютер, так что должен быть способ автоматизировать такую задачу, написать какой-то скрипт или что-то в этом роде. Я также использую TLP, но TLP только устанавливает таймаут для HDD, так что это не решает мою проблему.
Можно спросить, почему мне это нужно, почему недостаточно просто установить таймаут. Есть 2 ответа на это:
-
Когда я использую HDD, я в основном смотрю фильмы или слушаю музыку (которые находятся на нем), и, если бы был установлен таймаут на HDD, он бы постоянно останавливался и запускался снова и снова, потому что ОС всегда будет считывать с него данные, и подобный подход будет изнашивать HDD из-за цикла запуск-стоп-запуск.
-
Так как у меня ноутбук, а не настольный компьютер, я хотел бы сохранить батарею, когда это возможно. Когда HDD не смонтирован, я знаю, что не работаю с ним, и, следовательно, нет причины для жесткого диска вращаться.
Таймаут – это хорошо, но из-за первой причины это не (лучшее) решение для меня. Если кто-то знает, как помочь, пишите, я буду признателен за любую помощь. Спасибо!
В зависимости от накопителя таймауты могут быть довольно длинными. Обычно они гораздо длиннее, чем время, необходимое для воспроизведения музыкального трека. hdparm
может показать доступные таймауты для накопителя и должен показывать текущие и рекомендуемые значения для вашего накопителя.
Кроме старых серверных накопителей, рекомендации, которые я видел, заключаются в том, чтобы выключать накопители, если они бездействуют в течение нескольких минут. Все накопители, которые я проверял в последние несколько лет, предварительно настроены на выключение при бездействии.
Возможно, вам стоит проверить, выключила ли ОС накопитель, когда вы его отмонтировали. Я считаю, вы можете узнать это с помощью hdparm
. Если он не выключает привод, напишите короткий скрипт для отмонтирования и выключения привода, когда вы хотите прекратить его использование.
Ответ или решение
Вопрос о том, как заставить жёсткий диск (HDD) вращаться при монтировании и прекращать вращение при размонтировании, в полной мере нацелен на балансировку между производительностью и энергосбережением, что особенно актуально для владельцев ноутбуков. Ваша текущая конфигурация использует SSD в качестве основного носителя, что подразумевает, что HDD используется для хранения медиафайлов, таких как фильмы и музыка. Разберемся, как можно автоматизировать и оптимизировать данный процесс.
Теория
Жёсткие диски механические по своей природе и, следовательно, требуют последовательного электричества для поддержания активности. Постоянное вращение диска, когда он не используется, может привести к излишнему износу и энергозатратам, что в особенности критично для ноутбуков, работающих от батарей. С другой стороны, частое включение и выключение диска (имеется в виду механический старт и остановка), может негативно сказаться на долговечности самого привода, что объясняет ваш интерес к более управляемому подходу.
Обычно для управления состоянием HDD используются инструменты вроде hdparm
, которые позволяют вручную задавать параметры управления питанием и активностью диска. Однако, они не всегда способны автоматически выполнять функции в зависимости от состояний монтирования.
Пример
Представьте, вы работаете с системой Linux, где ваш HDD обозначен как /dev/sdX
. Вам необходимо настроить поведение диска так, чтобы он оставался активно вращающимся при монтаже и останавливался, когда не используется.
-
Мониторинг состояния: изначально, каждое монтирование и размонтирование диска может быть отслежено через
udev
правила.udev
– подсистема Linux, которая обрабатывает все события в пространстве устройств ядра, что позволяет нам отслеживать, когда устройство подключается или отключается. -
Автоматизация через скрипты: можно написать скрипт, который будет запускаться на событие монтирования и размонтирования диска, управляя его состоянием. Например, на монтирование можно запрограммировать запуск простого скрипта на
bash
, который используетhdparm
для настройки параметров энергосбережения.
Применение
Для решения задачи, автоматизируем процесс с использованием системного шела и udev
. Ниже описан один из возможных подходов:
1. Настройка правил udev
:
Создайте правило в /etc/udev/rules.d/99-hdd-spindown.rules
:
SUBSYSTEM=="block", KERNEL=="sdX", ACTION=="add", RUN+="/usr/local/bin/mount_hdd_script.sh"
SUBSYSTEM=="block", KERNEL=="sdX", ACTION=="remove", RUN+="/usr/local/bin/unmount_hdd_script.sh"
2. Скрипт для монтирования mount_hdd_script.sh
:
#!/bin/bash
# Убедитесь, что ваш скрипт исполняем: chmod +x /usr/local/bin/mount_hdd_script.sh
hdparm -B 255 /dev/sdX
echo "HDD /dev/sdX: Spindown disabled."
3. Скрипт для размонтирования unmount_hdd_script.sh
:
#!/bin/bash
# Убедитесь, что ваш скрипт исполняем: chmod +x /usr/local/bin/unmount_hdd_script.sh
hdparm -y /dev/sdX
echo "HDD /dev/sdX: Spindown enabled."
Обсуждение
Этот подход предполагает применение на серверной стороне Linux и требует должного уровня доступа для настройки системных инструментов и управления устройствами. Применение различной конфигурации hdparm
позволяет настроить режим энергосбережения, который будет отключать вращение только когда диск не используется. Вы можете изменить уровень мощности через параметр -B
для достижения большей гибкости, "255" отключает все режимы энергосбережения.
Заключение
Такой подход позволяет более эффективно использовать ресурсы вашего устройства, минимизирует износ жесткого диска и, как следствие, оптимизирует энергопотребление при работе от батареи. Более того, решение интегрировано в систему Linux, что делает его более гибким и менее зависимым от дополнительных программ. Это важный шаг в повышении эффективности, особенно если вы часто переключаетесь между режимами использования этого устройства.