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

Проблема была следующая: В игре (в игре Smite) наблюдались периодические лаги (примерно раз в 15 секунд), подвисание буквально на пол секунды, секунду лаги. По отзывам, такие же лаги наблюдаются у во многих играх, таких как Call of Duty, Call of Duty ww2, Вattlefield 1, Вattlefield 3, Вattlefield 4 и многих других.

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

Проблема состоит в следующем: на жестких дисках есть такая технология – под названием парковка головки, которая убирает считывающую головку диска в безопасную область, чтобы не создавать завихрения над диском при простое и уменьшить износ диска.

Но порой диск «простаивает» всего лишь несколько секунд, например, пока вы бежите в игре по области, которая уже прогрузилась и не требует запроса информации с жесткого диска, но как только вы попадаете в новую, не подгруженную в оперативную память зону, компьютеру требуется информация и он обращается к жесткому диску. И вот именно в этот момент, если у вас головка уже отправилась в безопасную зону, она должна вернуться оттуда, на что и уходит примерно пол секунды, из-за чего и возникает лаг.

Решение проблемы:

1. Если у Вас есть другой жесткий диск, попробуйте переставить игру на него.

Но если нет или у вас все диске компании Western Digital (WD), как это было у меня, то переходим ко второму пункту.

2. И так, у Вас Western Digital (WD) (обязательно убедитесь в этом)

— Первым делом, то, что нужно сделать – это зайти в биос и поменять режим работы диска с AHCI на IDE.
— Смотрим S.M.A.R.T. вашего жесткого диска, любой программой, умеющей это делать, например, AIDA64, Everest, Victoria и т.п. Нас интересует параметр 193 Load/Unload Cycle count, он показывает количество парковок головки. Сравниваем цифру на против этого параметра с цифрой напротив параметра 12 Power Cycle Count (количество циклов отключения питания). Если значения отличаются в десятки или сотни раз, то это наш случай!
— Нам потребуется утилита что бы сделать загрузочную флешку, такая как HP USB Disk Storage Tool и MS-DOS
— Далее Скачиваем программу WDIdle3.
— Далее: делаем загрузочную флешку DOS, распаковываем туда архив с нашей программой, перезагружаем компьютер, загружаемся с флешки, путем нажатия клавиши F8, при перезагрузке компьютера и у нас появится командная строка для работы с жесткими дисками.
— В эту строку мы вводим следующие команды.
— Первым делом команда wdidle3 /r она покажет текущее значение таймера в секундах. Т.е. через сколько времени бездействия головка паркуется. Вот там то обычно и стоит 12,8 – 15 секунда. Те 15 секунда через которые вы наблюдали лаги!
— Что бы совсем отключить парковку головки вводим команду wdidle3 /d.
— Что бы установить какое-либо значение, нам потребуется команда wdidle3 /s50, где s50 – будет число, отвечающее за колчество секунд, через которое головка будет парковаться.
Тут помните, что значения от 8 до 12,7 секунд можно устанавливать с точностью 0,1 с. Значения от 12,8 до 30 таймер ставится только на 30. Значения от 30 до 300 – с точностью по 30 с. Максимальное значение 300. Нажимаем enter.
— Проверяем, установилось ли значение wdidle3 /r
— Выходим перезагружаемся, проверяем в игре, лагов должно не быть! Ура!

PS: Бывает такое, что после данных манипуляций на компьютере появляются частые вылеты в синий экран и подобная нестабильная работа. Я вас рекомендую сначала полностью убрать парковку головки, проверить в игре, если лаги ушли – то оставить так и забыть, ничего диску не будет, но если уж вы хотите поставить какое-нибудь значение – ставьте 300, проверяйте, если вылетов нет – оставляйте и наслаждайтесь игрой!

Если же все-таки вылеты наблюдаются, экспериментируйте со значениями и подбирайте нужное.

Так же хочу заметить, что никаких криминальных и фатальных последствий в этом нет, доказано на личном опыте!

Всем добра!


Современные производители ноутбуков идут на разные ухищрение ради того, чтобы выгадать лишние минутки автономной работы. Зачастую, иногда весьма сомнительными мерами. Например, установкой жестких дисков с агрессивной политикой энергосбережения. Например, такая модель установлена в моем новом ноутбуке .

Конечно, это временная мера. В ближайшей перспективе я установлю в ноутбук SSD и жесткий диск будет использоваться лишь для хранения данных. Но сути вопроса это не отменяет. При работе от батареи диск слишком часто отключается, что не есть хорошо. Во-первых, это замедление работы системы. А во-вторых, снижение ресурса диска. Да, может небольшое, но снижение. Поэтому, наша задача заставить его работать всегда. Возможно, это снизит автономность, но не думаю, что настолько чтобы сожалеть об этом.

Самый простейший путь — использование настроек энергопитания в Windows. Но это не всегда работает. Например, в моем случае.

Будем решать эту проблему радикально, раз и навсегда. Для этого нам понадобится утилита hdparm . Ее надо скачать (исходя из битности вашей системы) и установить. Данная утилита хороша тем, что она универсальная и работает со всеми моделями дисков всех производителей. Затем идем в папку c:\Program Files (x86)\hdparm\ и настраиваем совместимость для hdparm.exe.

Затем где-нибудь в укромном месте сохраняем bat-файл следующего содержимого. Если надо применить настройку ко второму диску — замените hda на hdb. К третьему — замените hdb на hdc и т.д.

MS DOS

@echo off cd c:\Program Files (x86)\hdparm\ hdparm -B 255 hda exit

@echo off

cd c: \ ProgramFiles(x86) \ hdparm\

hdparm -B 255hda

exit

И файл с расширением vbs.

Visual Basic

Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "D:\alex\!!System\NoAPM.bat" & Chr(34), 0 Set WshShell = Nothing

Set WshShell = CreateObject ("WScript.Shell" )

WshShell . Run chr (34 ) & "D:\alex\!!System\NoAPM.bat" & Chr (34 ) , 0

Set WshShell = Nothing

После этого предполагается, что у нас получится два файла с именами NoAPM.bat и NoAPM.vbs. Обратите внимание, что в файле vbs надо указать актуальный путь к файлу с расширением bat!

Что же мы сделали? А мы сделали первый шаг к решению проблемы частых парковок головки жесткого диска. Утилита hdparm переключает режим APM (Advanced Power Management) жестокого диска в режим минимальной экономии и отключает пресловутую парковку при каждом случае. Теперь нам надо автоматизировать процесс применения данной настройки при загрузке компьютера и при выходе из спящего режима или гибернации. Тут все просто, используем встроенный в Windows планировщик.

Создаем задачу с настройками как на скриншоте.

Важно обратить внимание на несколько нюансов. На самой первой вкладке надо поставить галку «Выполнить с наивысшими правами». На вкладке с триггерами добавить два триггера: первый на активацию задачи при входе в систему любого пользователя, второй при событии в журнале «Система». Источник события указываем Power-Troubleshooter, а в качестве кода события 1. Действие у нас — запуск того самого vbs-файла. Это избавит от назойливого окна командной строки, который будет появляться на секунду при загрузке или выходе из сна. Теперь на вкладке «Условия» надо снять галку на пункте «Запускать только при работе от электросети». И наконец на последней вкладке снять галку «Останавливать задачу, выполняемую дольше».

Вот и все. Наша проблема решена. Теперь при запуске системы и входе любого пользователя будет принудительно отключаться энергосбережение у жесткого диска раз и навсегда. Аналогично после сна и/или гибернации. Проверить это можно, например, после загрузки, сна или гибернации вот так через утилиту CrystalDiskInfo.

P.S. Не забудьте отключить автозапуск hdparm в настройках Windows!

У современных настольных дисков WD имеется технология парковки блока головок диска при простое. Всё бы ничего, но время простоя на некоторых дисках составляет всего несколько секунд, в итоге выходит что паркуются они очень часто. Производитель утверждает что диски могут выдерживать без проблем от 300 до 600 тысяч парковок (в зависимости от модели), однако это количество набирается очень быстро!

Сначала немного расскажу зачем придумали парковку блока головок при простое. Это сделано для уменьшения износа головок, пластин и снижения энергопотребления. Висящие над пластинами головки создают дополнительное аэродинамическое сопротивление, т.к. диски вращаются на довольно высокой скорости, то и воздух в банке вовлекается во вращение вместе с ними, а блок головок тормозит эти потоки воздуха. Получаемые при этом хаотические "порывы ветра" в свою очередь создают дополнительное сопротивление для вращения пластин и энергопотребление растёт, от этого увеличивается температура, которая вредна для головок. Для примера скажу, для диска 3.5 дюйма, со скоростью вращения 7200 об/мин линейная скорость краёв пластин составляет примерно 120 км/час, а на таких скоростях воздух уже вполне осязаем, в чём вы можете лично убедиться высунув руку из машины. :) Но этот ликбез не должен вас смущать. От частых парковок ваш диск помрёт гораздо раньше чем от всех описанных явлений.

Ктото говорит что эта проблема характерна только для Linux. Однако у меня и на Windows с диском WD2001FASS за неделю набралось около 20 тысяч парковок, боюсь за год он бы точно помер от этого. Хотя обычно этим страдают модели зелёной серии. Для тех кто боится, могу сказать что утилита может показать что считается текущим временем простоя до парковки головок. У меня например было 12.8 секунды! Правда не забудьте одно но, если у вас скажем появятся бэд блоки когда то в будущем и придётся нести диск в гарантию - запустите утилитку ещё раз и верните изначальные значения, т.к. если заметят изменённое время, то гарантии вас лишат. :)

Итак нам потребуется:

Переключить в биосе режим работы диска в IDE, если у вас установлен AHCI. На некоторых ноутбуках нельзя выставить IDE, поэтому диск необходимо извлечь и подключить к настольному компьютеру.

AIDA64 (Everest) - программа мониторинга железа, в данном случае нас будет интересовать S.M.A.R.T данные, а именно параметр 193 Load/Unload Cycle count - количество парковок головок, если этот параметр в несколько раз больше (или десятков раз) чем 12 Power Cycle Count - количество циклов отключения питания диска (можно считать количеством раз включения компьютера если диск стоял в нём изначально). То это наш случай!

Загрузочная флешка с DOS - там всё написано как делать. Утилита то из под ДОСа работает...

Собственно сама утилита версии 1.05, утилита создана для очень ограниченного набора дисков, на которых впервые проявилась эта проблема, но работает со всеми дисками WD.

Итак сделали загрузочную флешку и распаковав из архива WDIdle3 переписали его на флешку. Я при этой операции отключил все другие диски и конечно же сделал бэкап данных! Загружаемся с неё и начинаем вводить в командную строку:

wdidle3 /r - информация о текущих настройках таймера парковки головок, если значение считывается с вашего диска, то значит и новое запишется, что как бы логично, запишите на всякий случай изначальное значение для возврата диска по гарантии или неадекватной реакции диска .

wdidle3 /d - остановить таймер, эта настройка совсем отключает парковку головок при работе (что я для себя и сделал)

wdidle3 /s50 - устанавливает таймер на 50 сек. При установке таймера от 8 до 12.7 секунды можно устанавливать с точностью 0.1 секунды. При установке от 12.8 до 30 секунд таймер всегда устанавливается на 30 секунд. Значения от 31 до 300 секунд устанавливаются с точностью в 30 секунд.

wdidle3 /? - справка по использованию утилиты

После изменения параметров нужно опять набрать wdidle3 /r чтобы убедиться что новое значение прописалось. Написано что работа может занимать длительное время, у меня изменение параметра занимало около секунды... Ну и как традиционно пишут в таких статьях, всё что написано - вы делаете на свой страх и риск.

Вопросы на тему: "А будет ли это работать на моём диске?" не принимаются. Убедитесь что у вас диск Western Digital, посмотрите два вышеприведённых параметра смарт и посмотрите самой утилитой на сколько у вас выставлен таймер парковки головок.

P.S. В некоторых случаях бывают непонятные глюки дисков при изменении времени в большую сторону или полном отключении парковки. Рекомендую всё же попробовать сначала отключить полностью и если диск будет работать нормально, то так и оставить. При "непонятном" поведении диска - постоянные парковки головок или "синие экраны" - увеличить время парковки. Учитывая 32 тысячи просмотров и 8 страниц комментариев этой статьи (на момент написание этого предложения) у одного человека начались "синие экраны" после изменения времени парковки. Часть дисков не совсем адекватно реагирует на изменение времени. Но ни у кого к необратимым фатальным последствиям изменение времени парковки не привело.

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


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

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

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

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


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

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

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

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

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

Так как мой компьютер не использует ни ждущего, ни спящего режимов (они ), то было решено осуществить "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

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"

Изменить файл /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

Некоторые модели винчестеров Seagate отличаются тем, что имеют неадекватно низкое время ожидания перед переключением в режим энергосбережения, при котором считывающие головки переходят в припаркованное состояние. Такой переход сопровождается характерным треско-свисто-скрипом и в случае, когда жесткий диск не является системным, такое может происходить каждые несколько минут. Стоит ли говорить, что, помимо риска выхода из строя от чрезмерно частой парковки, это также и просто раздражает своим чиркающим звуком?

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

Убедиться в наличии проблемы можно по быстро растущему значению параметра Load/Unload Cycle Count в S.M.A.R.T такого накопителя. Если значение данного параметра в сотни или тысячи раз отличается от параметра Start/Stop Count , то, очевидно, ваш винчестер подвержен данной проблеме.

Для насильственного отключения парковки в системе, работающей под управлением ОС Windows, воспользуемся портированной версией Linux-утилиты hdparm и стандартным Windows-планировщиком.

Скачать сборку hdparm для Windows можно в нашем архиве.

Для начала необходимо выяснить, как в терминологии linux называется препарируемый диск. Запускаем командную строку (cmd.exe ) с правами администратора и через нее вызываем hdparm.exe -i /dev/sdX :

C:\>"c:\Program Files (x86)\Tools\hdparm\hdparm.exe" -i /dev/sda /dev/sda: Model=ST1000DM003-1CH162 , FwRev=CC49, SerialNo= S1D85MBP Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=off CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455

Итак, в нашем случае диск Seagate обозначен через /dev/sda . Если бы он являлся вторым в системе, то его обозначение было бы /dev/sdb , если третьим – /dev/sdc , и т.д.

Теперь открываем Планировщик заданий (taskschd.msc ) и создаем новую задачу. На первой странице указываем произвольное название задачи, выбираем пользователя SYSTEM и указываем, что задача должна выполняться с максимальными правами доступа:

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

Кроме того, нам понадобится создать еще один триггер для выполнения задачи при пробуждении компьютера из состояния сна, т.к. отключение парковки собьется также и при переходе компьютера в сон или гибернацию:

Затем переходим на закладку действий и добавляем запуск hdparm.exe с ключом -B 255 /dev/sda , который отключит парковку на диске sda:

На этом настройка завершена – сохраняем созданную задачу и для проверки вручную запускаем ее из библиотеки заданий планировщика. Затем нажимаем на F5 для обновления библиотеки – если все прошло успешно, то в столбце с результатом последнего запуска нашего задания будет указан код “0x0″ .

Теперь можем открыть какую-либо утилиту мониторинга состояния диска – например, CrystalDisk Info – и убеждаемся, что APM на выбранном винчестере отключен. Данная задача будет запускаться при каждом включении компьютера или выходе его из режима сна, и, тем самым, поддерживать автопарковку отключенной.

ЗЫ: Пользуясь случаем, передаем большой привет прошивкописателям Seagate. Чтоб вам там всем икалось.