В этой кратенькой статье мне хотелось бы рассказать об одной очень существенной проблеме использования Linux на ноутбуках. Рекомендации, изложенные в этой статье имеют глобальный характер, т.е. применимы не только к Ubuntu и конкретно моему ноутбуку, но и к другим операционным системам и очень многим моделям ноутов. == Источник проблемы == В большинстве случаем Linux не корректно работает с режимом энергосбережения жесткого диска, а именно - парковка головки чтения/записи происходит настолько часто, что, к примеру, на ноутбуках Hitachi это приводит к выходу жесткого диска из строя за долго до окончания гарантии. Я проверял это на Ubuntu 7.01, 8.04, 8.10 и Kubuntu 8.04, 8.10 и абсолютно уверен, что этой же проблеме подвержены другие Linux'ы и Unix'ы на лаптопах. У меня также есть сомнения в корректной работе Windows, но винда подвержена этой болезни в гораздно меньшей степени - отчасти потому что всегда что-то записывает на винт и просто не дает ему переключиться в режим энергосбережения. == Как проверить "болезнь" == Для проверки нужен пакет <tt>smartmontools</tt>, который умеет проверять состояние вашего HDD через внутреннюю систему SMART. $ sudo apt-get install smartmontools Для, собственно, проверки, необходимо несколько раз с перерывом в 2-3 минуты позапускать команду $ sudo smartctl -a /dev/sda | grep Load_Cycle 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 4318 $ sudo smartctl -a /dev/sda | grep Load_Cycle 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 4323 $ sudo smartctl -a /dev/sda | grep Load_Cycle 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 4328 Если отображаемое значение (4318, 4323, 4328) увеличивается более, чем на 15 единиц в час (!) - то это верный признак того, что линукс "поедает" ресурсы вашего диска. Кстати, максимально предусмотренное число парковок головки составляет около 600.000 по различным источникам. У меня 15 единиц накручивалось за 10 минут... == Как вылечить ноут == Перед тем как приступить к решению проблемы, нужно провести эксперимент, выполнив простую команду из консоли: $ sudo hdparm -B 254 /dev/sda После этого снова посмотреть - растет ли параметр <tt>Load_Cycle_Count</tt>. Если "да" - попробовать $ sudo hdparm -B 255 /dev/sda Обычно один из вариантов помогает. Но действует только до первой перезагрузки. Теперь нужно зафиксировать результаты с перезагрузкой. Для этого, возможно, потребуется внести изменения в файлы: /etc/hdparm.conf /etc/laptop-mode/laptop-mode.conf /etc/acpi/* В файле /etc/hdparm.conf мне пришлось раскомментировать строку: # -B apm setting apm = 254 и добавить секцию: /dev/sda { apm = 254 } Значение 254 получено путем первых экспериментов. Файл /etc/laptop-mode/laptop-mode.conf содержит очень много параметров для управления энергосбережением, но в моем случае он оказался бесполезен, т.к. Ubuntu не определил параметры ноута и соответствующий демон бездействовал. Но, возможно, в вашем случае он очень и очень пригодится! В каталоге /etc/acpi находится много стартовых скриптов, в папки resume.d/, start.d/, suspend.d/ я добавил еще один с именем 99-hdd-fix.sh: #!/bin/sh /sbin/hdparm -B 254 /dev/sda Не забудьте сделать скрипт 99-hdd-fix.sh запускаемым! И, конечно, провести проверки еще раз после перезагрузки. == Болезнь неизлечима? == Если всё получилось - прекрасно. Но есть еще один негативный фактор, способный убить жесткий диск "в самом расцвете сил". Проверяем все так же - с помощью <tt>smartctl</tt> $ sudo smartctl -a /dev/sda | grep Temperature 194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 43 (Lifetime Min/Max 20/47) Да, да - это банальная температура работы жесткого диска. Как видно, в моем случае отключение системы энергосбережения hdd (а настройками мы именно отключили эту систему) не привело к перегреву диска - текущее значение 43 вполне укладывается в рамки 20..47. Но если у вас слабый или неисправный кулер, высокооборотистый диск или жаркий климат - температура работы жесткого диска может вырасти и стать не менее губительной для винта, чем частые парковки головки. Что делать в этих случаях - не знаю, не встречал, но, по всей видимости придется искать компромисы и перестраивать систему "под себя". Файлы, которые помогут в решении таких вопросов, указаны выше. == Заключение == Путем несложных настроек мне удалось решить вопросы с сохранностью моего винта, и, я надеюсь, этот опыт поможет еще кому-то. К сожалению пока мне не удалось в полной мере настроить карточку GeForce 9300 GS, режим stamina, спящий и ждущий режимы и яркость дисплея, но, если это получится, я обязательно об этом напишу. == Примечания == * Такая же проблема обнаружилась в Fedora 9, Fedora 10. Решилась прописыванием /sbin/hdparm -B 254 /dev/sda в файл rc.local
Linux/Windows Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor