Обновление ядра в Gentoo Linux 3.7.10 до 3.10
Занялся сегодня обновлением сервера на котором установлена Gentoo. Естественно собрано кастомное ядро со всеми нужностями и выброшенными ненужностями. Используя старый конфиг от 3.7.10 (make oldconfig) ядро собралось без единого ворнинга и каких бы то ни было проблем.
После сборки и установки и перезагрузки сервера он перестал отвечать, хотя по времени должен уже был подняться. Получив физический доступ к серверу и консоли оказалось, что система вроде бы загружена и в фреймбуфере видно приглашение системы. Но залогиниться с однозначно правильным именем пользователя и паролем так и не удалось. В последствии прокручивая лог загрузки оказалось, что ни одна файловая система не смонтирована и собственно проверить пароль и пользователя невозможно. Причиной всего этого оказалось нововведение в ядре (не знаю точно с какой именно версии) под названием
<*> Kernel support for scripts starting with #!
Если не включить данный параметр при сборке, то система инициализации OpenRC не сможет запустить свои init скрипты и получим полностью неработоспособную систему.
Решением является включение (*), не модулем)) вышеназванного параметра в
Executable file formats / Emulations ---> <*> Kernel support for scripts starting with #!
!-break-->
Странно, конечно. Я тоже получил обновление ядра сразу в момент выхода, но такой проблемы не встретил. Ядро тоже собрано руками из которого выброшено все лишнее. Правда ноутбук, не сервер :)
Если верить этому http://www.mail-archive.com/gentoo-amd64@lists.gentoo.org/msg13199.html, то это свежая проблема.
Это все несвежее дыхание Поттеринга и его поделки. Если Вы обновлялись на 3.10 скажем с 3.8 или 3.9, то этот параметр могли включить еще в этих версиях. Я обновлялся с 3.7.10 через make oldconfig. Меня конфигуратор в принципе спрашивал о нужности/ненужности, но я не обратил внимания особо на эту опцию.