пятница, 12 января 2018 г.

Периодическая парковка головок жёсткого диска Toshiba в Linux

Достался мне по случаю винчестер Toshiba MQ01ABD050 (AX002K), который стал использоваться в небольшом стационарном персональном компьютере безвентиляторного исполнения.

Однако через некоторое время на слух стали восприниматься щелчки. Как показало "следствие", ситуация соответствовала описанному ниже.

В ноутбуках иногда встречается проблема, когда жесткий диск каждые 10-20 секунд издает щелчок. Щелчок – это ни что иное как парковка головок жесткого диска.

В некоторых моделях лаптопов происходит периодическая парковка головок жёсткого диска. Наблюдается на разных моделях лаптопов и жёстких дисков в них. Периодичность этого явления зависит от режима работы. При работе от батарей парковка происходит один раз в 10 минут. При работе от сети - 2 раза в минуту. Диски большинства производителей паркуются довольно редко (несколько раз в час). Теоретически, проиводители жёстких дисков дают гарантию, что устройство может выполнить ль 300 до 600 тысяч циклов парковки. Если пересчитать на часы работы жёсткого диска, то это составит явно меньше ожидаемого срока работы ноутбука в целом. Кроме того, в полной тишине звук парковки отчётливо слышен и действует на нервы. Описать звук сложно, он зависит от модели жёсткого диска. Например, его сравнивают со звуком карандаша, падающего плашмя на деревянный стол или как звук ломающейся тонкой стеклянной палочки. Каждый, кто слышал этот звук, не спутает его уже больше ни с чем. Можно не полагаться на слух, а проверить наличие (или отсутствие) этого явления инструментально.

В стандартной версии диска, APM имеет значение 128, в улучшенной – 254 (отключено). У вас закономерно должен возникнуть вопрос, а как вообще парковка головок экономит электроэнергию и ресурс батареи? Дело в том, что противоположный конец головки оснащен катушкой. При подаче "правильного" питания на катушку, она генерирует электромагнитное поле, что позволяет ей перемещаться между двух мощных постоянных магнитов (перемещая при этом противоположный конец). Что интересно, значение APM можно изменить самостоятельно. При использовании в ноутбуках полностью отключать парковку не рекомендуется, т.к. ноутбук это переносной компьютер, а одна из возможностей APM – парковка головок, которая в свою очередь защищает поверхность диска от повреждений при перемещении ноутбука (тряска, сильные вибрации, удары, ускорение). В случае со стационарным ПК парковку во время работы можно отключать, или же установить значение 250-253. Не стоит бояться, что диск перестанет парковать вообще, при отключении как и ранее, будет выполняться парковка головок в безопасную зону.

Источник: weblance.com.ua



Проверка состояния настроек параметров привода показала, что тайм-аут перехода в режим ожидания и дополнительное управление электропитания (APM) отключены, так как мой безвентиляторный компьютер является не ноутбуком, а именно десктопом.

При просмотре состояния SMART выявлено, что значение параметра 193, соответствующее количеству циклов позиционирования пишущей головки в зону парковки, постоянно растёт.

Так как какой-либо сервисной утилиты отключения парковок у меня не было, да и сайт www.bad-good.ru категорически не рекомендовал этого делать, пришлось, как было на нём указано, искать другой путь.

Исходя из других ресурсов интернета продвинутый пользователь решает, что частая парковка приводит к износу механики головок жесткого диска. Это верно. А далее он делает то действие, за которое ему приходится потом расплачиваться деньгами. Он отключает парковку при помощи сервисных программ производителя. Как следствие, жесткий диск неспешно сыпется меньше чем за год. Пользователь думает, что щелчки были связаны с неисправностью жесткого диска, и вот он через год и умер. Покупает следующий. И в цикле. Ищите решение этой проблемы в самой ОС, которую вы поставили; залезать во внутреннее содержимое контроллера жесткого диска противопоказано.

Не секрет, что в настоящее время "толковую" информацию найти зачастую найти тяжело. Было найдено 4 варианта решения. На системе Runtu сработал 1-й вариант.

1-й вариант. Источник – wikki archlinux.

Так как мой компьютер не использует ни ждущего, ни спящего режимов (они отключены), то было решено осуществить "Persistent configuration using udev rule".

Если у Вас отсутствуте пакет hdparm, то его можно найти через менеджер пакетов Synaptic. В Linux Mint он установлен изначально, а в Runtu – отсутствует.


После были выполнены запросы к состоянию электропитания винчестера (через терминал).

sudo hdparm -B /dev/sda
/dev/sda: APM_level = 128

sudo hdparm -S /dev/sda
-S: bad/missing standby-interval value (0..255)

sudo hdparm -M /dev/sda
/dev/sda: acoustic = not supported

В соответствии с инструкцией был создан файл, который на уровне настроек ОС решает проблему.

Запустить менеджер файлов с правами суперпользователя и в каталоге  /etc/udev/rules.d  создать файл с именем 69-hdparm.rules

Вписать в него следующее:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda", RUN+="/usr/bin/hdparm -B 254 -S 0 /dev/sda"

Перезагрузить систему и отследить события SMART под номером 193. У меня этот показатель перестал лавинообразно расти и за сутки непрерывной работы его значение не изменилось.

2-й вариант. Источник – pingvinoff.net.

Cоздать файл 95hdparm-apm в каталоге /etc/pm/power.d с содержанием:

#!/bin/sh
hdparm -B 254 /dev/sda

Уставить на созданный файл права на исполнение:

sudo chmod u+rwx,g+rx,o+rx /etc/pm/power.d/95hdparm-apm

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

sudo hdparm -I /dev/sda | grep -i "Advanced power management level"

3-й вариант. Источник – Решение 17 проблем Ubuntu и Linux Mint

Изменить файл /etc/hdparm.conf, вписав в него следующее:

/dev/sda {
    apm = 254
    apm_battery = 254
}

4-й вариант. (источник не помню)

Создать в /etc/init.d скрипт под именем hdparm_park (имя дано для примера, можно указать своё):

#!/bin/bash
hdparm -B 255 /dev/sda
hdparm -S 0 /dev/sda

Сделать его исполняемым:

sudo chmod +x /etc/init.d/hdparm_park

Добавить его к автозагрузке:

sudo update-rc.d hdparm_park defaults 90

*  *  *

Что означают цифры 128, 254, 255 ? (взято с англоязычных источников)

Для параметра -B

0 ... 127 – позволяют задействовать функцию винчестера spin-down;

128 ... 254 – не позволяют функции spin-down влиять на работу винчестера;

255 – полностью деактивирует функцию Advanced  Power Management.

Для параметра -S

0 соответствует "выключено";

1 ... 240 – значение, умноженное на 5, определяет интервал от 5 секунд до 20 минут;

241 ... 251 – определяющие интервалы значений 11 до 30 задают шаг в 30 минут для определения значений интервала: 30 минут ... 5,5 часов;

252 – соответствует значениям таймаутов 21 минут;

253 – значение таймаута определяется вендором;

255 – интерпретируется как 21 минута + 15 секунд.


Цитата с "древней" публикации (2010 г.): "Если значение APM установлено в диапазоне от 254 - 192 то HDD будет потреблять "по максимуму". Если в диапазоне 192 - 128 то при отсутствии обращений к диску (Hitachi) в течении 2 - 6 минут, будет произведено обесточивание соленоида актуатора, головки запаркуются на рампу, обороты шпинделя останутся на прежнем уровне. Если в диапазоне 128 - 1, то при уже обесточенном соленоиде и запаркованных головках нет обращений к диску 5 - 10 минут то скорость шпинделя снизится до 5400 об/м."


В дополнение для ноутбуков найдено ещё (было указанно для Arch, публикация давняя):

" ... лучше установить tlp и в /etc/default/tlp в строчке DISK_APM_LEVEL_ON_BAT= вместо 128 128 поставить 254 254 (обязательно включив службу systemctl enable tlp, или не знаю, какая система инициализации там у вас ...

Когда в последний раз писал мануал на эту тему, нужно было поставить параметр CONTROL_HD_POWERMGMT=1 в файле /etc/laptop-mode/laptop-mode.conf



1 комментарий:

  1. Здравствуйте! К сожалению все три решения в моём случае не оказывают должного действия, головка и дальше часто паркуется, несмотря на то, что hdparm показывает APM_level = 254. У меня похожая модель HDD: TOSHIBA_MQ01ABD1, ОС: Linux Mint 18.3, KDE. Если вы знаете ещё какие-либо способы уладить эту проблему, подскажите, пожалуйста. Спасибо.

    ОтветитьУдалить