среда, 2 ноября 2011 г.

Спасти жёсткий диск ноутбука от частой парковки.


Всем привет!

Сегодня я напишу о проблеме чрезмерно частой парковки головок жёсткого диска ноутбука в Debian.  Хотя я слышал это и про Ubuntu, возможно такая проблема есть и в других дистрибутивах, почитать следует всем.

Долгое время на нетбуке я использовал Ubuntu, и было всё в порядке. Потом я решил поставить туда Debian. Установка прошла хорошо, проблем, кроме неработающего кард-ридера, замечено не было. Но меня очень беспокоило постоянное щёлканье, которое слышалось при работе. Я не понимал что происходит, пока не наткнулся случайно на статью Сергея Кухарского http://pingvinoff.net/2011/08/01/saving-hdd-of-laptop-part-2/ . К сожалению, его способ работал не до конца, так что пришлось искать решение самому.



В статье написано, что щёлканье - парковка головок жёсткого диска. Используется оно, в основном, при работе от батареи и в движении, т.к. даёт некоторое энергосбережение и шансы на то, что диск выживет при падении. В идеале, ничего плохого в этом нет, но для этого неплохо бы правильно настроить время парковки, о чём будет сказано ниже. "Из коробки", увы, настройки ужасны и могут быстро привести винт в негодность. Во всяком случае, при работе от сети, оно мне нужно?

Ну, хватит предисловий, перейдём к практике. Даже если вы не слышите противных звуков из ноута, проверить не помешает. Для этого сначала установим пакет smartmontools. Чтобы это сделать в консоли наберите :

apt-get install smartmontools (команда работает только в debian-based системах)

Для выполнения команды у вас должны быть права суперпользователя, получить которые можно: открыв терминал суперпользователя - в debian, набрав sudo su - в Ubuntu.

Следующим шагом, проверим, актуальна проблема или нет (опять же от суперпользователя) :

smartctl --all /dev/sda | grep -i load_cycle

Затем, не закрывая консоли, ждём минут пять. При этом можно посидеть в интернете, послушать музыку, и т.д. Через пять минут повторяем команду и сравниваем вывод. Если число изменилось - значит проблема актуальна.

Для решения вводим в той же вонсоли команду:


hdparm -B 254 /dev/sda

а потом повторяем первый эксперимент. Чувствуете разницу? Но это ещё не всё, т.к. после первой же перезагрузки всё станет по прежнему. Чтобы этого избежать, откроем файл /etc/hdparm.conf в любом текстовом редакторе с правами суперпользователя и добавим в конец вот что:
 
/dev/sda{
apm = 255
spindown_time=0
}


/dev/sda - это имя жёсткого диска, скорее всего оно у вас именно такое.

Есть и другой путь: открыть из-под суперпользователя файл /etc/default/hdparm и заменить его содержание на вот такое:
 
harddisks="/dev/sda"
hdparm_opts="-B 254"

RAID_WORKAROUND=no

После этого всё должно работать. Для настройки времени парковки можно поменять во всех случаях значение 254 на значение пониже, но очень не рекомендуется этого делать.

Большое спасибо за основу для статьи Сергею Кухарскому http://pingvinoff.net/about/.

Всем спасибо за внимание!


5 комментариев:

  1. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  2. Спасибо, помогло! Все четко и по делу. HDD каждые несколько секунд издавал еле слышный писк, сейчас все ок.

    ОтветитьУдалить
  3. Спасибо!
    Первый способ (самый распространенный в интернете) у меня не сработал, а описанный "другой путь" - помог.

    ОтветитьУдалить
  4. Спасибо за статью. По видимому
    /dev/sda{
    apm = 255
    spindown_time=0
    }

    ОтветитьУдалить
    Ответы
    1. после /dev/sda нужно пробел поставить
      Вот так:
      /dev/sda {
      apm = 255
      spindown_time=0
      }

      Удалить