Как я могу контролировать время остановки HDD?

У меня 2 жестких диска в моем ПК. Ubuntu очень быстро выключает вторичный жесткий диск примерно через 15 минут, что для меня мало. Мне нужно контролировать это время. Как я могу это сделать?

Я пытался управлять питанием GNOME, но не нашел его полезным.

93
задан 11 July 2014 в 23:04

12 ответов

Если вас интересует, сохраняйте ли настройки hdparm между перезагрузками, вместо того, чтобы добавлять их в crontab, вы можете использовать /etc/hdparm.conf . У меня есть следующее, обратите внимание на использование заглавной S, а не строчной буквы:

command_line {
    hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215 
}

Добавьте эту строку, заменив UUID вашим, или вы также можете указать устройство, используя формат / dev / sdX . Вы можете узнать UUID своего диска с помощью команды sudo blkid .

37
ответ дан 11 July 2014 в 23:04

Я добавляю что-то вроде:

@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e  > /dev/null 2> /dev/null

в кронтаб корня. Использование uuid лучше, я думаю, потому что sda/sdb и т.д., кажется, меняется с каждой перезагрузкой

5
ответ дан 11 July 2014 в 23:04

Взгляните на hdparm.

Из руководства (man hdparm в командной строке):

-S Установите тайм-аут ожидания (spindown) для диска. Это значение используется приводом для определения времени ожидания (без активности диска) перед выключением шпиндельного двигателя для экономии энергии. В таких условиях диску может потребоваться до 30 секунд, чтобы отреагировать на последующий доступ к диску, хотя большинство дисков работают гораздо быстрее.

-Кодировка значения тайм-аута несколько специфична. Значение нуля означает "таймаут отключен": устройство автоматически не перейдет в режим ожидания. Значения от 1 до 240 указывают кратные числа 5 секунд, что дает таймауты от 5 секунд до 20 минут. Значения от 241 до 251 указывают от 1 до 11 единиц 30 минут, что дает тайм-ауты от 30 минут до 5,5 часов. Значение 252 означает таймаут в 21 минуту. Значение 253 устанавливает период таймаута, определяемый поставщиком, между 8 и 12 часами, при этом значение 254 резервируется. Значение 255 интерпретируется как 21 минута плюс 15 секунд. Обратите внимание, что некоторые старые диски могут иметь очень различную интерпретацию этих значений.

Так что sudo hdparm -I /dev/sdb | grep level покажет текущее значение spindown, например:

Advanced power management level: 254

Из руководства: 254 зарезервировано, поэтому я ожидаю, что это будет значение по умолчанию Ubuntu (может ли кто-нибудь подтвердить/расширить его, пожалуйста?)

Пример:

sudo hdparm -S 25 /dev/sdb = spindown через 25*5 секунд.

sudo hdparm -S 245 /dev/sdb = spindown через (245-240)*30 минут.

79
ответ дан 11 July 2014 в 23:04
  1. Найдите UUID вашего диска .

     sudo lsblk --output NAME, FSTYPE, LABEL, UUID, MODE
     
  2. Edit /etc/hdparm.conf

     sudo -H gedit /etc/hdparm.conf # С этого момента будьте осторожны
     
  3. Найдите время остановки или раздел настроек вашего диска.

     / dev / disk / by-label / 4TB {
      spindown_time = 1200
     }
     
  4. Я предпочитаю ссылаться на диск по UUID, который остается одинаковым для разных установок (если вы не измените его в самом HW).

     / dev / disk / by-uuid / 91e32677-0656-45b8-bcf5-  14acce39d9c2 {
      spindown_time = 1200
     }
     
  5. Если сценарий инициализации вызывает проблемы с загрузкой, вы можете передать nohdparm в командной строке ядра, и сценарий не будет запущен.

15
ответ дан 11 July 2014 в 23:04

Я обнаружил, что скорость вращения Samsung HD204UI зависит от уровня APM ( hdparm -B ). Если уровень APM равен 127, таймаут вращения составляет 10 с. Если уровень APM равен 150, таймаут вращения определяется параметром -S .

6
ответ дан 11 July 2014 в 23:04

Мне не повезло с hdparm на внешнем жестком диске, установленном в корпусе USB, который я использую для обслуживания носителей с minidlna.

Мне пришла в голову идея отсюда: https://serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping- While-mounted

Наилучшие результаты дает использование uuid диска, который можно найти с помощью:

sudo blkid

Следующий метод требует root-доступа, но также и hdparm. Он использует crontab для чтения случайного блока с диска каждые 5 минут и игнорирует все сообщения. Чтобы убедиться, что у вас правильный UUID, проверьте его в командной строке следующим образом (убедитесь, что вы используете желаемый UUID, а не этот):

sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM

Вы должны увидеть следующий вывод:

1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`

Чтобы подавить это сообщение, которое может в конечном итоге записаться где-то, возможно, в / файловую систему (которая в моем случае находится на SSD), ниже я использую в корневом crontab. Вы попадаете туда с помощью

sudo crontab -e

Затем под комментариями:

*/5 * * * * bash -c 'dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM' >/dev/null 2>&1

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

[править] 2017-01-07 09:02:

Я смог подавить эти сообщения, отредактировав /etc/rsyslog.d/50-default.conf, чтобы изменить эту строку:

*. * ; auth, authpriv.none - / var / log / syslog

к этому:

*. *; cron, auth, authpriv.none - / var / log / syslog

К сожалению, это подавляет все сообщения cron ; Мне не удалось заставить cron перенаправить выход из корневой файловой системы (который в моем случае находится на устаревшем SSD, поэтому я хочу ограничить запись), но, поскольку это всего лишь домашний сервер, я, вероятно, многое не упускаю. Определенно не рекомендовал бы эту стратегию для производственной машины.

2
ответ дан 11 July 2014 в 23:04

Проведя несколько часов, я обнаружил, что мой диск WDC не поддерживает команду hdparm -S, независимо от значения атрибута idle3 (google: idle3ctl). И это обычная проблема с дисками WD. Но я рад сообщить, что hd-idle ( http://hd-idle.sourceforge.net/ ) работает безупречно. Если он установлен из пакета, созданного dpkg (см. Примечания по установке), он создает демон как на ubuntu, так и на debian (конфигурация находится в / etc / default / hd-idle). Хорошо работает и после выхода из спящего режима.

mc default # ps aux | grep hd-idle | grep -v grep | cut -c 66- ; for f in [a-d] ; do hdparm -C /dev/sd$f | grep -v "^$" ; done
/usr/sbin/hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/dev/sda:
 drive state is:  active/idle
/dev/sdb:
 drive state is:  standby
/dev/sdc:
 drive state is:  standby
/dev/sdd:
 drive state is:  standby

9
ответ дан 11 July 2014 в 23:04

В Debian, с накопителями WD, я обнаружил, что установка любого уровня с помощью hdparm -S приводит к тому, что накопитель возвращает уровень 254 на последующем hdparm -I. Поэтому я не уверен, что они вращаются вниз или нет. Я думаю, что они все еще вращаются вниз.

Эти диски находятся на массиве сервера, и я действительно не хочу, чтобы они когда-либо вращались вниз. Раньше я это проверял, устанавливая задание cron на обновление файла каждые несколько минут.

1
ответ дан 11 July 2014 в 23:04

Дисковая утилита -> выберите жесткий диск -> щелкните значок «Дополнительные действия ...» в правом верхнем углу -> Настройки диска ...

Мой выглядит так: screenshot

59
ответ дан 11 July 2014 в 23:04

В Ubuntu 14.04

Диски> выделите диск> щелкните шестеренку в верхнем правом углу> Настройки диска> теперь у вас есть настройки режима ожидания, APM, AAM и кеша записи в удобном для используйте графический интерфейс!

3
ответ дан 11 July 2014 в 23:04

Важное примечание: в отличие от основного ответа кажется, что

sudo hdparm -I /dev/sdb | grep level 
# Advanced power management level: 254

не показывает текущее значение spindown (которое мы можем установить с помощью hdparm -S , по желанию by OP), а скорее отображает значение, установленное с помощью hdparm -M :

hdparm -M 128   # Set acoustic management to 'quiet'
hdparm -M 254   # Set acoustic management to 'fast'
1
ответ дан 5 January 2021 в 23:54

в ubuntu 18.04–20.04, вы можете изменить тайм-аут режима ожидания для настройки диска:
поиск Диски в панели запуска> выберите свой диск> щелкните ⋮ в строке меню рядом с кнопкой свернуть окно> Параметры диска> используйте ползунок для установки тайм-аута

Снимок экрана в ubuntu 20.04

1
ответ дан 5 January 2021 в 23:54

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

Похожие вопросы: