Устраняем щелчки винчестера 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/
    Share post

    Similar posts

    Comments 85

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

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

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

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

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

                                                :-)
                                                  0
                                                  У меня успевает и раз в 2 секунды щелкнуть, а тут «раз в 10 минут» :0)
                                                  Но идея с новыми костылями ясна :)
                                                  Буду дома пробовать совет aOcean
                                                    0
                                                    IOreqest при моем методе — раз в 5 минут. А вообще, по-моему, попытка раз в 2 секунды уйти в спячку говорит о чем-то очень неправильном, например, о неисправном датчике движения или чем-то очень корявом в настройках энергосбережения. Mac-way тут скорее пойти в сервис.
                                                    0
                                                    Ну изначально речь шла о том, чтобы активность поддерживать с частотой в несколько секунд, у крона же минимальный интервал — минута. А так конечно же можно.
                                              +12
                                              Проблема действительно проявляется у всех производителей ноутбучных винчестеров с технологией 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
                                                Спасибо за подробный анализ. Конечно правильнее лечить проблему а не бороться с её следствиями, как это сделал автор топика.
                                                  0
                                                  Вот-вот. Именна эта утилита тоже не подошла к моему винчестеру (Fujitsu). Домой приду — тут же попробую вариант с Live CD. Если получится — я ваш должник!
                                                    +1
                                                    Как правильно было замечено, не всегда hdparm срабатывает. В моем случае (hitachi) помогла утилита от производителя
                                                    www.hitachigst.com/hdd/support/download.htm#FeatureTool
                                                      +1
                                                      на PC я пользовал для настроек AAM Victoria просто потому что она у меня уже была :)
                                                        0
                                                        Спасибо огромное! Обновил пост.
                                                          0
                                                          Спасибо, для Macbook Air в версии с HD 80 Gb утилита сработала
                                                            0
                                                            Напишите пожалуйста, что нужно сделать дальше, после загрузки Ubuntu с live cd.
                                                              0
                                                              В терминале выполните:

                                                              hdparm -M 254 -B 254 /dev/sda

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

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

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

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

                                                                            0
                                                                            Спасибо.
                                                                              0
                                                                              А hdparm для Мака нету? Чтоб решить проблему необходимо ставить Windows?
                                                                                0
                                                                                Попробуйте <a href=«mckinlay.net.nz/hdapm/>hdapm. Но для моего винчестера она не подошла.
                                                                                  0
                                                                                  Ой, вот: hdapm
                                                                                  0
                                                                                  А я вот заметил, что видео дергается только в VLC, QuickTime как то этого избегает.
                                                                                  Видимо VLC считывает большой кусок в память и с него играет, за это время диск успевает припарковаться к следующему считыванию данных.
                                                                                    0
                                                                                    На моем 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
                                                                                      Да, очень полезная информация. Сделал кросслинк на вашу статью, спасибо!
                                                                                      0
                                                                                      После установки 10.6 проблема исчезла — щелчки пропали
                                                                                      • UFO just landed and posted this here
                                                                                          0
                                                                                          Для osx есть нативная утилитка mckinlay.net.nz/hdapm/
                                                                                          позволяет устанавливать APM Level.

                                                                                          Only users with full accounts can post comments. Log in, please.