Автоматически отключать жесткие диски USB после периода бездействия

Я хотел бы автоматически отключить жесткие диски USB после периода бездействия, скажем, 15 минут. И, конечно же, автоматически раскручивать их снова при доступе. Как я могу это сделать? Спасибо

4 ответа

Решение

Полезна утилита hd-idle

Пожалуйста, посмотрите на источник, приведенный ниже, внимательно прочитайте и посмотрите, поможет ли это:

  1. Скачать исходный код с CVS используя эти команды:

    • cvs -d:pserver:anonymous@hd-idle.cvs.sourceforge.net:/cvsroot/hd-idle login
      • Хит вернуть, когда попросят пароль
    • cvs -z3 -d:pserver:anonymous@hd-idle.cvs.sourceforge.net:/cvsroot/hd-idle co -P hd-idle
  2. Системы Debian:

    • Бежать: dpkg-buildpackage -rfakeroot
    • И чтобы установить пакет, запустите: 'dpkg -i ../hd-idle_*.deb'
  3. Использование:

    hd-idle
    
    # This will start hd-idle with the default options, 
    # causing all SCSI (read: USB, Firewire, SCSI, ...) hard disks 
    # to spin down after 10 minutes of inactivity
    

Примечание: обратите внимание, что HD-Idle использует /proc/diskstats читать статистику диска. Если этого файла нет, hd-idle не будет работать.

Информация:

Запуск HD-простоя

Для запуска hd-idle введите "hd-idle". Это запустит hd-idle с параметрами по умолчанию, после чего все жесткие диски SCSI (читай: USB, Firewire, SCSI, ...) будут вращаться после 10 минут бездействия.

В системе Debian, после редактирования /etc/default/hd-idle и включения его, используйте "/etc/init.d/hd-idle start" для запуска hd-idle.

Обратите внимание, что hd-idle использует /proc/diskstats для чтения статистики диска. Если этого файла нет, hd-idle не будет работать.

Параметры командной строки

-a <name>   Set (partial) device name of disks for subsequent idle-time parameters (-i). This parameter is optional in the sense that there's a default entry for all [SCSI] disks which are not named otherwise by using this parameter.
-i <idle_time>  Idle time in seconds for the currently named disk(s) (-a <name>) or for all disks.
-l <logfile>    Name of logfile (written only after a disk has spun up). Please note that this option might cause the disk which holds the logfile to spin up just because another disk had some activity. This option should not be used on systems with more than one disk except for tuning purposes. On single-disk systems, this option should not cause any additional spinups.
-t <disk>   Spin-down the specified disk immediately and exit. Use only the disk name (e.g. sda) without /dev/ prefix
-d  Debug mode. This will prevent hd-idle from becoming a daemon and print debugging info to stdout/stderr
-h  Print brief usage information

Что касается параметра "-a":

Пользователи hd-idle попросили средства для установки параметров простоя для отдельных дисков. Это имеет большой смысл не только потому, что некоторые диски [SCSI] могут плохо реагировать на остановку. Первоначально hd-idle имел один простой для всех дисков. Параметр "-a" теперь можно использовать для установки фильтра по имени устройства на диске (опустить /dev/) для последующих настроек простоя.

  1. Параметр "-i" перед первым параметром "-a" устанавливает время простоя по умолчанию; следовательно, совместимость с предыдущими выпусками hd-idle сохраняется.

  2. Чтобы отключить замедление дисков по умолчанию, а затем снова включить замедление на выбранных дисках, задайте для времени простоя по умолчанию значение 0.

Пример:

hd-idle -i 0 -a sda -i 300 -a sdb -i 1200

В этом примере устанавливается время простоя по умолчанию равное 0 (то есть hd-idle никогда не будет пытаться раскрутить диск), а затем устанавливает явное время простоя для дисков со строкой "sda" или "sdb" в имени устройства. Остановка HD-простоя

использование killall hd-idle чтобы остановить HD-простоя. В системе Debian используйте /etc/init.d/hd-idle stop,

Источник:

http://hd-idle.sourceforge.net/

Вы можете использовать hdparm, чтобы установить значение от 1 до 255 для spindown.

Команда для этого - hdparm -S255 /dev/sdX с X, конечно, примененная к вашим устройствам.

Вы можете использовать blkid, чтобы найти правильное устройство.

Устройство затем раскручивается при доступе.

Используйте hdparm -C /dev/sdX для проверки состояния устройства (режим ожидания / активный / режим ожидания со значением режима ожидания выключен).

Пожалуйста, соблюдайте осторожность: вы также можете заставить устройство вращаться вручную с помощью hdparm -y / dev / sdX. Это может быть полезно, чтобы определить, вращается ли оно вообще (см. Ниже).


Я хочу добавить, что теперь это работает с моей настройкой:

  • Raspberry Pi
  • HGST 10TB HDD
  • Подключен через USB3

Но это не сработало все время. При первом подключении он не вращался вручную и не вращался автоматически. Я не уверен, что изменило поведение диска. Две вещи, которые я сделал между тем, где:

  • Отключите диск, подключите его к ноутбуку Win10 и запустите программу проверки от производителя диска. Это только что сделал короткий тест SMART. Я искал параметр, чтобы изменить spindown или APM там, но это было невозможно.
  • Я установил hd-idle на Малину. Но hd-idle не вращал диск вниз. Поэтому я искал подсказки о том, как на самом деле работает HD-Idle. При поиске я снова попытался вращаться вручную, и это неожиданно сработало.

Btw. мой уровень Advanced Power Management- 254. (hdparm -B / dev / sdX). Я не уверен, как APM связан со временем spindown. Как правило, значение 254 должно предотвращать любые spindowns. Я также читал, что для включения spindown он должен быть установлен на 127 или ниже.

Я думал, что, возможно, жесткие диски, которые производятся для целей NAS, могут подавлять паузы. Я опубликовал этот ответ с дополнительными сомнительными подробностями, чтобы получить более глубокое понимание этой темы от других участников. Я буду рад обновить ответ позже.

РЕДАКТИРОВАТЬ: это не работает все время. Диск в режиме ожидания просыпается без доступа к нему. Кроме того, поскольку я удалил hd-idle, автоматический режим ожидания с -S больше не работает.

Открытые программы

Перейти к инструментам, там вы можете открыть диски

На верхней панели слева от значка свертывания

Вы найдете значок, щелкните по нему и перейдите в настройки диска

там вы можете изменить / включить настройки замедления для вашего USB-диска или других дисков.

Обычно это касается контроллера USB-SATA на стороне жесткого диска. Прошивка большинства внешних жестких дисков USB также не настраивается, поэтому вы не всегда можете установить это так. Там могут быть некоторые контроллеры, которые могут сделать это, но я не знаю ни одного, которые являются основными устройствами жесткого диска USB.

К сожалению, нет никакого реального способа изменить это либо с помощью только Linux и его базового программного обеспечения, если контроллер уже не позволяет вам вносить такие изменения в настройки с помощью своего собственного программного пакета или чего-то еще.

Другие вопросы по тегам