/ Документы / Глючный сервис apmd

Глючный сервис apmd

Я решил написать эту статью для тех, кто столкнулся, как и автор статьи, с проблемой загрузки операционной системы Линукс (Linux).

Все началось с апгрейда моего компьютера на более новую (начало 2002 года) модель.
Характеристики системного блока:

Motherboad Asus P4B266 (i845D chipset)
Pentium 4 - 1500MHz, Cache 256K,
Memory 256M DDR SDRAM,
Видеокарта NVIDIA GeForce2 Ti 32 Мб AGP
Primary IDE UDMA5 винчестер 41 Gb - MASTER
Primary IDE винчестер 1,200 Gb - SLAVE - это именно тот винчестер на который я в предыдущей конфигурации ставил Linux.
CD-ROM, CD-RW, floppy 3,5

Сразу по завершению апгрейда, я решил установить дистрибутив Mandrake Linux 7.0 (на тот день это был уже старый дистрибутив). После инсталляции, которая была успешной несмотря на древность дистрибутива, возникли проблемы с загрузкой ОС Линукс. Через пару секунд, после начала загрузки, по всему экрану стало возникать сообщение об ошибки. Вот как оно выглядело: 

[<c01######>][<c02######>]
[<c02######>][<c01######>]
[<c02######>][<c01######>]
[<c02######>][<c02######>]
[<c01######>][<c01######>]
[<c01######>][<c02######>]
[<c02######>][<c01######>]
[<c02######>][<c01######>]

... и так по всему экрану очень быстро, вместо # идут цифры, какие трудно увидеть. При этом никакой дальнейшей загрузки не происходило, а перезагрузить компьютер удавалось только через RESET. Долго не думая, я решил, что старая версия Линукса просто “не понимает” нового железа, что часто является основной причиной проблем при загрузке. Через некоторое время я нашел более новую версию ОС Линукс – ASPLinux 7.2 (не последнюю версию). Как при установке Mandrake Linux 7.0 инсталляция ASPLinux 7.2 прошла успешно, а при загрузке вновь появилось такое же сообщение об ошибке. С тех пор начались долгие, мучительные дни поиска причины фатального сбоя при загрузки Linux. В поисках ответа я обращался ко всем известным администраторам Линукс порталов, писал на форумы и гостевые книги, обращался непосредственно к российским разработчикам дистрибутивов. Через несколько дней на мои запросы стали поступать ответы, люди советовали различные варианты, но увы ничего не помогало. Одними из таких людей были члены Линукс клуба Евгений В. Хорохорин (Genix), Алексей Синицын (Sin.a). Они посоветовали поставить самую последнюю версию дистрибутива, и выбор пал на ALT Linux Master 2.0 с ядром 2.4.18 . О том, что ядро ALT Linux Master 2.0 полностью поддерживает конфигурацию компьютера, говорили списки поддерживаемого оборудования данного ядра. Сразу после успешной инсталляции, вновь при загрузки стали появляться уже знакомые сообщения об ошибке. Тщетные попытки понять причину ошибочных сообщений на экране не дали ничего. Тогда я решил действовать методом исключения пакетов, которые, на мой взгляд, могли конфликтовать и вызывать ошибки при загрузке. При повторной установке были исключены из установочных пакетов X Window, а также все стартовые сервисы, которые загружаются по умолчанию при включении компьютера. Хочу отметить, что именно в дистрибутиве ALT Linux была возможность на этапе установки изменить параметры по умолчанию для стартовых сервисов, т.е можно было во время инсталляции включить/выключить из стартового сценария любой стартовый сервис. Такой возможности не было в Mandrake Linux 7.0 и ASPLinux 7.2! После успешной, неполной, установки загрузка ALT Linux прошла успешно, что говорило о том, что причиной проблем при загрузки Linux были либо X Window, либо один из стартовых сервисов. Чтобы исключить вариант “ошибка X Window”, была проведена повторная установка, включающая X Window, но не включающая стартовых сервисов. После установки запуск Linux был успешным, т.е проблема была не в X Window. Круг возможных причин сбоя при загрузке Linux сузился. Теперь оставалось действовать методом включения стартовых сервисов по очереди, чтобы найти сервис вызывающий глюк при загрузке Linux. В итоге глючный сервис был найден – это apmd.

Вот описание стартового сервиса apmd:
apmd - используется для контроля за состоянием батарей и ведения журнала о них через syslog. Эта служба также может использоваться для выключения машины при сильной разрядке батарей.

К моему большому удивлению, сервис apmd, который стартовал автоматически при включении компьютера, который являлся стартовым сервисом по умолчанию, был нужен лишь для ноутбука! Возможно данный сервис и не должен был стартовать, обнаружив отсутствие ноутбука, но это уже не правило, т.к на моем примере apmd запускался на обычном настольном компьютере. Я не утверждаю, что данный пакет может вызывать ошибку при загрузке на всех настольных ПК, но есть факты и говорить с уверенностью, что такое полностью исключено уже нельзя.
Для тех же, у кого возникли похожие проблемы при загрузке Linux, я могу посоветовать, исключить из стартовых сценариев сервис apmd, если конечно ваш дистрибутив Линукса позволяет на этапе инсталляции включать/выключать из стартового сценария сервисы. Если же нет такой возможности, попробуйте полностью исключить установку пакета apmd.
В любом случае причина ошибки при загрузке Linux ясна – это пакет apmd, а как вы, уважаемые читатели, будете ее решать это уже ваше дело.

Автор статьи – Армен Мурадян (Armix)
29.10.2002 г.