Отключение парковки на HDD Seagate

Некоторые модели винчестеров 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 и указываем, что задача должна выполняться с максимальными правами доступа:
hdparm01
На закладке триггеров создаем триггер для выполнения задачи при загрузке системы:
hdparm02
Кроме того, нам понадобится создать еще один триггер для выполнения задачи при пробуждении компьютера из состояния сна, т.к. отключение парковки собьется также и при переходе компьютера в сон или гибернацию:
hdparm03
Затем переходим на закладку действий и добавляем запуск hdparm.exe с ключом -B 255 /dev/sda, который отключит парковку на диске sda:
hdparm04
На этом настройка завершена – сохраняем созданную задачу и для проверки вручную запускаем ее из библиотеки заданий планировщика. Затем нажимаем на F5 для обновления библиотеки – если все прошло успешно, то в столбце с результатом последнего запуска нашего задания будет указан код “0x0″.

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

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

This entry was posted in Разное and tagged , , . Bookmark the permalink.

17 Responses to Отключение парковки на HDD Seagate

  1. NikeFreak says:

    спасибо за статью, очень выручила, но есть вопрос, а если у меня несколько дисков, как быть? надо для кадого сделать задание или в одном задании можно как указать нужные диски?

  2. NikeFreak says:

    у меня 4 дска, я пока чт осделал так, одно задание и 4 действия на каждый диск, вот скрин http://joxi.ru/WL21JZw4iwMRAX

    • root says:

      Да, можно в одном задании указать несколько действий, это наиболее простое решение.

  3. санек says:

    А как быть с рейдом ?
    Поставил два винта в режиме рейд1 все равно щелчки хоть и меньше.

    • root says:

      Боюсь, что если Raid аппаратный и с точки зрения операционной системы отдельные диски не видны (например, в диспетчере управления дисками), то портированная через cygwin утилита hdparm до отдельных дисков достучаться не сможет, потому как просто не сможет их увидеть.

      В прочих случаях нужно просто передавать каждому диску по отдельной команде hdparm -B 255 /dev/sdX.

  4. NikeFreak says:

    вопрос, а вот на первом скриншоте диспетчера заданий, там указано конфигурация для виндовс сервер, а если у меня виндовс 8,1, мне там выбирать свою виндовс 8,1 или нужно как у вас на скрине, виндовс сервер 2008 ? сори если глупый вопрос, но все же.

    • root says:

      С большой долей вероятности работать будет одинаково что в одной конфигурации, что в другой. Попробуйте сначала оставить по умолчанию, если не заработает – переключите на Vista/Windows Server 2008.

  5. NikeFreak says:

    блин, как то делал, теперь не получается, может что не так делаю, не могу через командную строку ввести http://joxi.ru/BA0bKwNtvBQBmy подскажите что не так?

  6. NikeFreak says:

    я пробовал и без “C:\>”. тоже бред какойт ополучается, скажите чт оименно набрать надо?))

    • root says:

      Нужно указать полный путь к hdparm.exe и далее указанные в статье ключи. Если путь содержит пробелы – он должен быть заключен в кавычки. В статье показан конкретный пример того, что может быть набрано:
      “c:\Program Files (x86)\Tools\hdparm\hdparm.exe” -i /dev/sda

      Результат в командной строке выглядел бы как-то так:
      C:\Users\User>“c:\Program Files (x86)\Tools\hdparm\hdparm.exe” -i /dev/sda

      Вы вместо этого дописали спереди “C:\>”, и у вас получилось что-то вида:
      C:\Users\User>C:\> “c:\Program Files (x86)\Tools\hdparm\hdparm.exe” -i /dev/sda

      Такой команды система понять не может. А что именно вы набирали в последующих попытках – неизвестно. Проверьте путь к файлу hdparm.exe.

  7. Сергей Бережной says:

    Здравствуйте! Скажите, пожалуйста, почему у меня пишет не то, что у Вас?
    Идет алфавитный указатель функций программы hdpram, потом написано ” 0 [main] hdparm 5916 find_fast_cwd: WARNING: Couldn`t compute FAST_CWD pointer. Please report this problem to the public mailing list Cygwin@cygwin.com и так далее

    • root says:

      Дело в том, что hdparm – это приложение, написанное под Linux. В ОС Windows оно перенесено при помощи среды Cygwin. И, судя по приведенной вами ошибке, использовавшаяся при сборке hdparm версия Cygwin ныне стала в меньшей степени совместима с последними редакциями Windows 8.1+. Для того, чтобы убрать эту ошибку, нужно, чтобы кто-нибудь перекомпилировал hdparm с более новой версией Cygwin, в общем.

      Но насколько я понимаю, даже не смотря на эту ругань, программа все равно работает.

  8. Anatoly xVM says:

    Спасибо! Вот как в планировщике выход из сна задать – в жизнь не догадался бы. А так теперь все работает. :) Только я на всякий случай еще добавил опцию -S 0

  9. Евгений says:

    А зачем еще и утилитой CrystalDiskInfo пользоваться если hdparm и так показывает включен или выключен APM, посмотрите внимательно что выдает ключ -i :)

  10. Andrey says:

    Тока зачем делать автозапуск если hdparm пишет в диск параметр и потом похер какая ос хоть вообще переустанови ее все так и останется пока не поменяешь параметры. есть еще idle3ctl -d /dev/sdX)

  11. Vlad says:

    Кто нибудь, пожалуйста, напишите нормально команды в командной строке…. Как выглядят строчки команд, можете скопировать команды нормально или принт скрин сделать от начала до конца…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>