nixp.ru v3.0

23 октября 2017,
понедельник,
05:24:51 MSK

DevOps с компанией «Флант»
Dr. Evil написал 13 сентября 2005 года в 10:23 (418 просмотров) Ведет себя как мужчина; открыл 578 тем в форуме, оставил 3008 комментариев на сайте.

http://www.linuxforum.ru/index.php?act=Attach&type=post&id=1308

это происходит после пересборки стандартного SuSE-ского ядра на этапе загрузки

после того, как модули не прогрузились, загрузка останавливается…

что делать!?

Genie

продолжение загрузки невозможно, так как устройство /dev/hda6 не появилось в нужный (ожидаемый) период времени.

поэтому и останавливается загрузка.

почему такая фигня с модулями — у меня кончились уже все предположения.

но: заметил тут ещё udev…

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

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

кстати, тогда мысль вообще странная. если udev инициализировался, но при этом не доступен ещё /dev/hda6, откуда можгут воообще взяться модули? только из iinitrd. более, вроде бы, неоткуда….

Dr. Evil

Получается так, что udev раздает имена, но модули, которые необходимы для старта этих устройств, не могут загрузиться… А без initrd udev не может раздать имена…

замкнутый круг!

Genie

udev имена не раздаёт, а толко регистрирует при загрузке модулей…

которые не грузятся.

поэтому тебе надо положить initrd с правильными модулями

и те_же модули должны лежать и в /lib/modules/`uname -r`/

fly4life
Genie
udev имена не раздаёт, а толко регистрирует при загрузке модулей…

которые не грузятся.

поэтому тебе надо положить initrd с правильными модулями

и те_же модули должны лежать и в /lib/modules/`uname -r`/

Как мне кажется, там беда в том, что Dr._Evil пересобрал ядро и часть опций из тех, что в дистрибутивном ядре реализованы модульно, он в своей сборке включил монолитно. Однако, получается, что и версия ядра и сам initrd остались те же, что и в дистрибутивной RPM-ке. А следовательно, этот initrd пытается подгрузить модули, которых в новой сборке не существует (они уже монолитны). Отсюда возможен и конфликт.

Решение проблемы мне видится в пересборке initrd, но тут я никак не могу понять, что за модули в него надо включить, а какие — нет (тут, как говорится, самому бы руками посмотреть), либо в пересборке ядра, задав ему отличную от дистрибутивного версию (чтобы был другой /lib/modules/`uname -r`, и его содержимое совпадало с тем, что указал Dr._Evil в настройках ядра).

Genie

не-а. погляди внимательнее скриншот…

…: version magic '…' should …

как ты думаешь, что это? ругань по отсутствию модуля? или что-то иное?

вот как раз уточнее того, что дальше и должно раскрыть, что не так, но, поглядим, может это уже не столь актуально на текущий момент. ;)

fly4life
Genie
не-а. погляди внимательнее скриншот…

как ты думаешь, что это? ругань по отсутствию модуля? или что-то иное?

вот как раз уточнее того, что дальше и должно раскрыть, что не так, но, поглядим, может это уже не столь актуально на текущий момент. ;)

Скриншот обсмотрелся =)

Попробую объяснить свою точку зрения.

На скриншоте видно, что все модули, на которые ругается ядро при загрузке — из initrd. Так вот этот самый initrd, как я уже говорил выше, остался дистрибутивный. Вполне вероятно, что ядро (а вместе с ним имодули, попавшие в дистрибутивный initrd) были собраны разработчиками не той версией GCC, что в итоге попала в дистрибутив. И вот когда Dr._Evil пересобрал ядро дистрибутивным GCC, вылез конфликт версий при попытке подгрузить модули из initrd.

Dr. Evil

да, Саш, с модулями, наверное, так и есть… сейчас ведь он на них не ругается, когда система грузиться. правда, он и не должен, так как я их в ядро «зашил»…

Dr. Evil

всем спасибо за помощь! все заработало!

проблем было много, и как это все решилось — не описать!