Apple

индекс
164,65

Устраняем щелчки винчестера Mac mini (и Macbook)


Еще давно заметил, что во время простоев винчестер моего Мака мини издает с периодичностью примерно раз в пять секунд такие щелкающие звуки. И при каждом щелчке система на мгновение задумывалась. Ну, в принципе, во время работы это было незаметно, т. к. винчестер не простаивает и щелчков нет. С недавнего времени эти звуки стал замечать ночью, когда компьютер оставался включенным для закачивания торрентов. Стало раздражать. К тому же, надоели эти задержки во время просмотра видео, когда изображение и звук на долю секунды замирает, а потом прыгает вперед на пару секунд.

Полез искать решение в интернете, как оказалось, это не только у меня и других владельцев Миников, но и у владельцев Макбуков. Во всем виноватым оказался, естественно, винчестер, который для сбережения энергии так часто паркует головки. В англоязычной версии эти звуки называются Marble drop (падение мрамора), что довольно точно описывает ощущение от звука — как-будто мрамор падает в песок.

Самое страшное, что эти парковки ощутимо изнашивают ресурс винчестера. Всего допускается 300.000 парковок головок. У меня же за полтора года уже было отщелкано почти 200.000 раз!


Из всех вариантов решений мне подошел этот:
Волшебная программа declunk. Раз в пять секунд создает и через это же время удаляет файл в папке /tmp. Благодаря этому винчестер не успевает «подумать», что можно спокойно припарковаться и щелчки исчезают!

С сайта Kiza's place я скачал программу declunk. Она оказалась скомпилированной под процессоры PowerPC, но, благо с программой идут исходники, то я очень просто перекомпилировал ее под Intel и изменил время с 5 секунд на 1 секунду — у меня даже за 2 секунды винчестер иногда успевает «уронить мрамор» :)

Итак, рецепт изготовления:

1. Скопируйте содерживое скачанного образа диска куда-нибудь в свой домашний каталог. Я скопировал в /Users/alf/declunk.

2. Запустите терминал, и выполните:
$ cd /Users/alf/declunk/source && make

3. В папке /Users/alf/declunk появился файл declunk — наша скомпилированная программа.

4. Теперь запустите файл install.command прямо из Finder двойным щелчком. В окне терминала вас просят ввести пароль root! Будьте к этому готовы.

5. Если в процессах появился declunk, то у вас все получилось!

В случае, если винчестер продолжает ронять мрамор :), то попробуйте в исходном файле ./source/declunk.c поменять значение в строке
int interval = 5;

на
int interval = 1;

или на свое, подобранное опытным путем. Затем перекомпилируйте и установите заново.

Удачи!
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

UPDATE:


Гениальный комментарий господина aOcean сподвиг меня копнуть глубже в поисках решения этой проблемы без «костылей». И для моего винчестера (FUJITSU MHV2060BHPL) решение оказалось таким:
1. Скачиваем с этой страницы порт hdparm под Windows (Как раз установил в BootCamp Windows XP для игры SPORE)
2. Устанавливаем и запускаем. В окне консоли пишем команды установки режима работы винчестера:
hdparm -B 254 hda
hdparm -M 254 hda

3. Выключаем и включаем компьютер.
Ура! Костыли declunk нам больше не нужны! Спасибо всем за дельные советы!

UPDATE2:


Для пользователей Linux появилась статья пользователя Decoy с расширенной информацией о решении проблем в данной ОС, и находится по этому адресу:
http://habrahabr.ru/blogs/ubuntu/43059/
+45
22 сентября 2008, 07:07
59

комментарии (85)

+3
Vas3K #
Кстати сразу подумал посоветовать вам написать скриптик, делающий это. Но чтобы цела «программа» о_О Можно было просто одной строчкой.
0
DimaRad #
Строчку в студию!
+2
xiWera #
while true; do dd if=/dev/zero of=/tmp/declunk count=1; sleep 300; done
+1
Vas3K #
опоздал :(
НЛО прилетело и опубликовало эту надпись здесь
+1
alfsoft #
К сожалению, нет.
+1
Cha0S #
для hackint0sh — достаточно :)
0
shiz86 #
Повлияло как то на время работы? :)
+1
alfsoft #
Абсолютно не повлияло! Ибо у меня Мак мини :0)
+5
pomka #
А hdparm в MacOS присутствует? Может hdparm -q -S 255 -q -S 0 /dev/sda поможет и без костылей в виде создания/удаления файлов.
0
alfsoft #
Нет, нужно компилировать. Я пока с hdparm не особо возился, надо будет посмотреть. Есть другая утилита hdapm, но у меня она не сработала, пишет, что устройство ATA не может быть настроено. Хотя с ней как раз никакие утилиты declunk не нужны, судя по отзывам пользователей.
0
sofoz #
Меня особенно достают такие щелчки на Apple TV. Как то раньше не доходили руки чтобы найти их причину, а сейчас читаю и думаю что это как раз подходит. Надо будет попробовать declunk или написать скрипт.
0
alfsoft #
А там видео тоже замирает при щелчках?
0
sofoz #
Не могу сказать определено, ведь когда смотришь видео то звук ЖД не слышен :) Это когда тихо, собираешься спать, хорошо слышно как Apple TV клацает.
0
alfsoft #
Вообще, как оказалось, это проблема не только винчестеров, установленных продукции Эппл, но и у других производителей.
0
PSHKGRZN #
Я думаю это было сделано производителем специально! — т.к. им выгодно чтобы пользователь чаще менял/покупал винчестер.

«Ну, а иначе как их оправдать? — Такую мелочь не могли заметить что ли? Думаю могли....»
0
bvs #
Помоему это бред.
Интересно, как много пользователей купит второй Apple после того, как старый посыпится у него, и тоже самое произойдет у его знакомых?

+8
fzn7 #
«Волшебная программа declunk. Раз в пять секунд создает и через это же время удаляет файл в папке /tmp. Благодаря этому винчестер не успевает «подумать», что можно спокойно припарковаться и щелчки исчезают!» — Веселые костыли =)
+1
Devgru #
Think different. Хотя интересно, как эту проблему решить иначе — напрямую «поговорить» с диском, наверное.
0
BVadim #
Было время голову себе сломал из за чего могут быть эти щелчки. Все тесты винт проходил без проблем. Даже в сервисе побывал. Автору спасибо.
P.S. Было в ноутбуке MSI L745. Винт там вроде фуджик был.
+1
mikhanoid #
Хм… А аналога hdparm в MacOSX нет?
+1
Stepanow #
А может быть это обычная термокалибровка? Парковка головок не может быть каждые пять секунд.
+3
rawing #
Смеялся от души
простите.
–2
youmee #
Мда, и это одни из самых дорогих компьютеров на Российском рынке? ((( Apple! я думал у них никогда не будет нечто подобного.
0
alfsoft #
Это не только у Эппл. Это зависит от самих винчестеров, т. к. даже на специализированных форумах, посвященных яблочной продукции, появляются сообщения вроде «Я думал, это только на моем MSI/DELL/и т.д.»
Просто здесь я описал метод борьбы с этим явлением именно на компьютерах Эппл.
+1
youmee #
Понял, тогда извините :) Т.е. можно избежать этих щелчков, заменой HDD на другой?
0
alfsoft #
Может быть :)
А вдруг опять такой щелкунчик попадется? Мне уже теперь страшно… Хотя, раз в несколько секунд пусть он пустой файл создает — это совсем не страшно по сравнению с парковкой головок. Если найду другой способ без костылей — то сразу же его опубликую.
0
ayavryk #
Сравнение Apple c MCI порадовало.
+10
NeOn4eG #
I'm a PC :)
+10
pavelgubarev #
> что довольно точно описывает ощущение от звука — как-будто мрамор падает в песок
Обалденное сравнение. Я бы за скудностью опыта роняния мрамора в песок написал наоборот: «мрамор упал в песок со звуком паркующейся головки винчестера»))
0
alfsoft #
Ха! Это просто слышать надо… :) Такой рассыпающийся звук. Не передать словами, разве только как я написал, что как-будто мрамор падает в песок :) Ну или, если бы шарик для пинг-понга на металлическую поверхность упал с силой гравитации раз эдак в 5 больше земной. Но это уже неточное сравнение, но отдаленно похоже.
+8
pavelgubarev #
> Ну или, если бы шарик для пинг-понга на металлическую поверхность упал с силой гравитации раз эдак в 5 больше земной.

Господи, да Вы старый космический волк)
0
Skler0z #
А он не похож на звук примагниченного металлического предмета?
0
alfsoft #
Похож, в принципе.
0
Aidsoid #
У меня тоже самое наблюдается на ноуте как с Vista так и с Ubuntu. В Ubuntu нашел как исправить aidsoid.org/? p=117, а в Vista пока не знаю как.
0
stoune #
написать скрипт который создаст пустой файл каждую секунду на powershell, правда не знаю насколько это влияет на производительность, сейчас по друками машыны нет с Виндой.
+3
andrewmaster #
Кстати типичный мак-пользователь… больше всего конечно рассмешила поиск в интернете и перекомпиляция программки, создающей раз в 5 секунд файлик на диске :)) про то что это делается строчкой на bash вам уже ответили, ну и конечно же нужно было в первую очередь читать ман по hdparm.
+1
DimaRad #
Строчку в студию!
0
andrewmaster #
Пусть будет, например, так:

target=«/tmp/blabla» && while [ «true» ]; do rm -f $target; touch $target; sleep 5; done;
0
DimaRad #
Спасибо, идея ясна.
0
shaman007 #
Эффективнее через crontab, причем средствами самого крона: раз в 10 минут создавать, раз в 10 минут стирать со сдвигом фазы на 5 минут.

:-)
0
alfsoft #
У меня успевает и раз в 2 секунды щелкнуть, а тут «раз в 10 минут» :0)
Но идея с новыми костылями ясна :)
Буду дома пробовать совет aOcean
0
shaman007 #
IOreqest при моем методе — раз в 5 минут. А вообще, по-моему, попытка раз в 2 секунды уйти в спячку говорит о чем-то очень неправильном, например, о неисправном датчике движения или чем-то очень корявом в настройках энергосбережения. Mac-way тут скорее пойти в сервис.
0
andrewmaster #
Ну изначально речь шла о том, чтобы активность поддерживать с частотой в несколько секунд, у крона же минимальный интервал — минута. А так конечно же можно.
+12
aOcean #
Проблема действительно проявляется у всех производителей ноутбучных винчестеров с технологией Advanced Acoustic Management. Просто наберите в Google «hdd clunk ваш любимый бренд» — и вы наткнетесь на множество статей про паркующихся бестий. При каких условиях такое начинает происходить — не ясно. Производители знают о проблеме — Western Digital обещали исправить ее в следующей прошивке, да только воз и ныне там. Остальные просто отмалчиваются.

В моем случае заголосил новый SAMSUNG HM160HI в Mac Mini. DeClunk, конечно, не самое оптимальное решение. Диск паркует головки в режиме ожидания из-за агрессивной политики power и acoustic management. Эти параметры прописываются в самом HDD и при определенных условиях вызывают такой эффект.

Лучший вариант — эти самые параметры поменять. Это можно сделать, например, с помощью утилит производителя. Для Mac этот вариант не подходит — большинство утилит написаны под Dos. В Dos, как известно, нет нормальных драйверов USB клавиатур. А в интел-маках нет ни PS/2 портов, ни USB legacy support. :)

Остается hdparm. Билд для OSX можно скачать здесь mckinlay.net.nz/hdapm/

Если ваш диск запоминает изменения ее достаточно запустить с необходимыми параметрами один раз. Если нет — прийдется прописать в загрузку. Но и здесь есть загвоздка. OSX версия hdparm может просто не сработать с вашим диском. Так произошло в моем случае.

Мне пришлось загрузиться с Ubuntu Live CD и воспользоваться hdparm там. Благо утилита встроена в дистрибутив. Power Management — 254. Acoustic Management — 254. Для разных моделей действенные параметры разные. Данная модель Samsung запоминает изменения — щелчки исчезли раз и навсегда.
+1
Stepanow #
Спасибо за подробный анализ. Конечно правильнее лечить проблему а не бороться с её следствиями, как это сделал автор топика.
0
alfsoft #
Вот-вот. Именна эта утилита тоже не подошла к моему винчестеру (Fujitsu). Домой приду — тут же попробую вариант с Live CD. Если получится — я ваш должник!
+1
alex_www #
Как правильно было замечено, не всегда hdparm срабатывает. В моем случае (hitachi) помогла утилита от производителя
www.hitachigst.com/hdd/support/download.htm#FeatureTool
+1
pietrovich #
на PC я пользовал для настроек AAM Victoria просто потому что она у меня уже была :)
0
alfsoft #
Спасибо огромное! Обновил пост.
0
Alexlexandr #
Спасибо, для Macbook Air в версии с HD 80 Gb утилита сработала
0
barra7 #
Напишите пожалуйста, что нужно сделать дальше, после загрузки Ubuntu с live cd.
0
alfsoft #
В терминале выполните:

hdparm -M 254 -B 254 /dev/sda

Естественно, посмотрите каким устройством у вас определился винчестер (/dev/sda, /dev/sdb, /dev/hda и т. д.)
0
barra7 #
/dev/sda
но в итоге получаю «доступ запрещен» (
0
alfsoft #
А он у вас, наверное, уже подмонтирован. Может из-за этого?
Попробуйте выполнить: umount /media/disk
+1
barra7 #
Ага спасибо большое, вроде все удалось. Надеюсь, что будет тихо теперь.))
0
alfsoft #
Рад, что помогло!
0
klierik #
Спасибо большое. Билд для OSX вылечил щелчки моего Momentus XT 500GB.
+2
DimaRad #
Что вы запустили в терминале, чтобы посмотреть load_cycle_count?
+1
alisey #
+1
DimaRad #
Спасибо
+1
msalomatin #
Купил MacBook в марте 2007 c HDD Hitachi (Capacity: 160 GB). Покупал в Англии (прямая доставка из Китая, поскольку покупал через интернет-магазин Apple). В феврале 2008 диск посыпался. За все это время ноутбук выключался всего суток на 10-15. В остальное время либо был постоянно включен, либо в спящем режиме. Не могу сказать, что слышал какие-то щелчки. Мастер-ремонтник сказал, что поломка диска была связана с повредившимся шпинделем. Вероятно, по причине того, что ноутбук постоянно носили в сумке. А может истек лимит в те самые 300.000 парковок? Тогда, по идее, он должен был осыпаться раньше?
+1
korynd #
Как вы не понимаете? Ваш НЖМД петь хотел, а вы ему не даёте.
+1
gnusmas #
ну тогда уж лучше так ))
www.youtube.com/watch? v=IAspKu9sVPQ
+1
gnusmas #
или даже так
www.youtube.com/watch? v=fp4jQNa_9sY
+1
dei34 #
а какой вой поднялся когда пользователи Ubuntu обнаружили эту проблему (и решение) год назад smartov.habrahabr.ru/blog/15616/! Махровые виндузятники и маководы сразу поставили диагноз: Ubuntu ест мой жеский диск. Теперь наверное будет считаться что Mac OS рулит из-за того что для Mac OS найдены костыли в виде постоянного писания в один файл (что для здоровья HDD врятли намного лучше «парковки головок»). Кстати, стандартный ресурс Load_Cycle_Count для ноутбучных дисков 600000, а не 300000.
0
cre8or #
>> что для здоровья HDD врятли намного лучше «парковки головок»

Чтение/запись это стандартные процедуры, которые происходят постоянно. В данном случае износ происходит лишь от часов наработки.
0
dei34 #
чтение/запись происходят постоянно, но в РАЗНЫЕ сектора диска. Если постоянно намагничивать/размагничивать один и тот же участок — он быстро изнашивается.
0
cre8or #
А откуда такая уверенность, что это именно один и тот же участок?
0
dei34 #
что-то я не вижу HFS среди en.wikipedia.org/wiki/Log-structured_file_system#Implementations. Отсюда и уверенность (впрочем там и ни одной из «популятных» линуксовых FS нет).
+1
mightymouse #
Очень актуально для меня.
Вот недавно (месяц назад) приобрел миник последней свежести, не модифицировал; ОС Leopard, которую сам поставил взамен Tiger. Все нормально функционирует, но пощелкивание действительно есть, и оно каждые ~ 5 секунд как раз. HDD Hitachi 120 Gb. Сначала казалось, что похрустывает из-за того что качает, но скорость скачивания невилика (15-20 Кб/с) и что-то не верится что из-за этого нужно так часто записывать на хард. Но потом выключил скачивание — и о что я вижу, а точнее слышу — винт все продолжает щелкать…
Где-то читал, что будто бы винты Хитачи используются в военных ноутбуках, но так ли это или нет — не знаю.
И что же получается тогда — ноутбучные винты быстро изнашиваются, а ssd пока слишком дорогие и тоже их надежность под вопросом — так никто и не может сказать, насколько они надежны.
0
barbalion #
Marble — это не только мрамор, но еще и стеклянный шарик, который широко распространен на западе, как игрушка, безделушка или сувенир. И здесь, очевидно, речь о звуке, издаваемом стеклянным шариком при падении.
Не занудства ради, а просвещения для :)
en.wikipedia.org/wiki/Marble_(toy)
0
dei34 #
коментарий к апдейту топика:

вместо «hdparm -M 254» (что вообще говоря непонятно как влияет на «парковку», смотри «man hdparm») в моём hdparm.conf установлено «hdparm -S 240». Такой параметр самым непосредственным образом влияет на желание диска парковаться: он устанавливает «spindown timeout» на 20 минут с момента последнего доступа (можете поставить меньше).
0
makkintosh #
нафига чегото компилировать откудато качать…
на sh написать
while 1 do
echo `date` > /tmp/dontkillmyhdd
usleep 4
end

синтаксис мог подзабыть…
0
egorF #
Мегаспасибо! Написал в ru_mac.

0
bonanza #
Спасибо.
0
jao #
А hdparm для Мака нету? Чтоб решить проблему необходимо ставить Windows?
0
alfsoft #
Попробуйте <a href=«mckinlay.net.nz/hdapm/>hdapm. Но для моего винчестера она не подошла.
0
alfsoft #
Ой, вот: hdapm
0
0x62ash #
А я вот заметил, что видео дергается только в VLC, QuickTime как то этого избегает.
Видимо VLC считывает большой кусок в память и с него играет, за это время диск успевает припарковаться к следующему считыванию данных.
0
Decoy #
На моем DELL Inspiron (WDC WD1200BEVS-75RST0) наблюдалась та же картина.

Команды

sudo hdparm -M 254 /dev/sda
sudo hdparm -B 255 /dev/sda


решили проблему!

Однако, после перезагрузки я начал опять слышать характерные щелчки. Оказалось, что значение параметра '-B' (APM settings) не сохраняется. Для Ubuntu Linux решением этого оказалось редактирование /etc/hdparm.conf (раскомментировав 41-ю сроку получил запись 'apm = 255').

Если после данных манипуляций система не грузится, следует попробовать в grub дать параметр ядру 'nohdparm'.

Дополнительную полезную информацию можно найти на Ubuntu Forums.
0
alfsoft #
Да, очень полезная информация. Сделал кросслинк на вашу статью, спасибо!
0
spe #
После установки 10.6 проблема исчезла — щелчки пропали
НЛО прилетело и опубликовало эту надпись здесь
0
bio #
Для osx есть нативная утилитка mckinlay.net.nz/hdapm/
позволяет устанавливать APM Level.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.