LINUX.ORG.RU
ФорумAdmin

Не грузится пересобранное ядро


0

0

Помогите пожалста, я что-то делаю не так, но не понимаю что.
У меня дебиан и самосборное ядро 2.6.28. Скачиваю последнее ядро kernel.org, распаковываю в /usr/src. Копирую в папку с новыми исходниками ядра файл /boot/config-2.6.28 в файл .config. Далее:
make menuconfig, там добавляю что-то к имени ядра.
make-kpkg --initrd --revision 1 kernel-image

Ядро компилится вродже нормально, получается деб пакет. Устанавливаю его.
В грабе прописывается новое ядро, НО без строчки initrd /initrd.img-2.6.30.11
Раньше всегда прописывалось самостоятельно.

После ребута системы вылезает ошибка:
VFS: Cannot open root device "sda5" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Pid: 1, comm: swapper Not tained 2.6.30.11 #1

В menu.lst для нового ядра это:
title Debian GNU/Linux, kernel 2.6.30.11
root (hd0,0)
kernel /vmlinuz-2.6.30.11 root=/dev/sda5 ro

Для 2.6.28 эти настройки (с ними грузится нормально):
title Debian GNU/Linux, kernel 2.6.28
root (hd0,0)
kernel /vmlinuz-2.6.28 root=/dev/sda5 ro
initrd /initrd.img-2.6.28


Помогите пожалста, в интернете гуглил, но как-то всё неудачно и не всё понятно :)

Debian`овские патчи наложил?
Поддержка необходимых файловых систем в конфиге присутствует?

Лучше пакет kernel-source или-как-его-там ставить, будут правильные исходники.

PS: самосборное ядро + debian = зло

LebedevRI
()
Ответ на: комментарий от LebedevRI

Debian'овские патчи не накладывал. Не знаю что это такое :) Файловые системы точно все включены в ядре как [*]. Про это читал и проверено. Да и ведь старый конфиг работает, значит и на новом должно быть то же самое с файловыми системами.

Debian вообще зло, переделывать всё лениво очень. Самосборное ядро ставил по той причине, что в Etch по умолчанию не было поддержки SATA. Там то ли вообще ничего не грузилось, пока не вырубишь SATA в биосе, то ли всё жутко медленно работало, не помню, давно это было. И ядра пересобирались нормально. После 2.6.28 что-то изменилось.

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

>>нового нет

Ну тогда оно и не заведется. Да и тебе уже сказали, что Дебиан + ванильное_ядро = не_торт :)

gotf
()
Ответ на: комментарий от pupkin_1c

>>в Etch по умолчанию не было поддержки SATA

Как так? У меня все работало.

gotf
()
Ответ на: комментарий от palladium

Так я тоже делал (через fakeroot), только без пункта 3.1. Результат одинаковый.

pupkin_1c
() автор топика
Ответ на: комментарий от gotf

Религия мешает. Во-первых, в Sid лежит старьё, которому уже месяц:
linux-image-2.6.30-1-686 - Linux 2.6.30 image on PPro/Celeron/PII/PIII/P4
linux-image-2.6.30-1-686-bigmem - Linux 2.6.30 image on PPro/Celeron/PII/PIII/P4
(кстати, второй это для компов с большой оперативной? У меня 4 гига).
.
Во-вторых, на компе крутится вебсервер, ядра хочется иметь как можно новее, не хочется чтобы после взлома сайта каким-нить эксплоитом получили доступ к рууту.
.
В-третьих, наконец я просто хочу понять в чём проблема при сборке моей версии ядра.

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

>>Во-первых, в Sid лежит старьё, которому уже месяц

Ты выбрал не тот дистр. Use Gentoo/Arch/whatever, Luke! :)

>>кстати, второй это для компов с большой оперативной?

Вроде, да, с PAE.

>>Во-вторых, на компе крутится вебсервер, ядра хочется иметь как можно новее

>>вебсервер

>>ядра хочется иметь как можно новее

Стоит ли?

>>В-третьих, наконец я просто хочу понять в чём проблема при сборке моей версии ядра.

Внимательно просмотрел вывод при сборке? Уверен, там хоть что-то должно было промелькнуть. Наконец, в Lenny были проблемы со сборкой недистрибутивных кернелов. Вроде, исправили, но не факт, что все.

gotf
()
Ответ на: комментарий от pupkin_1c

>ядра хочется иметь как можно новее, не хочется чтобы после взлома сайта каким-нить эксплоитом получили доступ к рууту.

Противоречишь сам себе. Дыры ядра в дебиане закрывают очень быстро.
А не-дистрибутивное ядро придется обновлять ручками, причем непонятно, когда (пользователям о дырах сообщают пост фактум, эдак через месяц-два). Кроме того, чем свежЕе ядро, тем больше в нем еще не открытых дыр.

В общем, ванила полезна только двум категориям людей -
1. Тем, кому очень нужны фичи нового ядра (обычно это означает, что в новом ядре только-только добавили поддержку их любимых железок).
2. Просто мазохистам.

nnz ★★★★
()
Ответ на: комментарий от gotf

Поставил 2.6.30.1 из Sid. Ядро не загрузилось. Причину не знаю, так как всё удалённо, а где смотреть ошибки загрузки не знаю.

pupkin_1c
() автор топика
Ответ на: комментарий от nnz

Что мне надо сделать, чтобы ядерные дыры закрывались апдейтами? Установить ядро из сида и почаще делать apt-get update ? Какие-то патчи приходят или как это всё работает? :-[

pupkin_1c
() автор топика

После установки деб пакета ядра надо зайти в /boot и выполнить

sudo update-initramfs -c -k 2.6.30.11

это создаст initrd

потом sudo update-grub

qsloqs ★★
()
Ответ на: комментарий от qsloqs

В дебиан уже нет пакета вроде initrd-tools, там используется initramfs-tools поэтому не выполняется --initrd

А вообще странно все это =)

qsloqs ★★
()
Ответ на: комментарий от pupkin_1c

>>Что мне надо сделать, чтобы ядерные дыры закрывались апдейтами? Установить ядро из сида и почаще делать apt-get update ?

Вкратце, да. Только необязательно sid.

>>Какие-то патчи приходят или как это всё работает?

Тупо ставится пакет, содержащий ядро, уже пропатченное как нужно.

gotf
()
Ответ на: комментарий от pupkin_1c

>Что мне надо сделать, чтобы ядерные дыры закрывались апдейтами? Установить ядро из сида и почаще делать apt-get update ?

Насчет apt-get update - правильно. Насчет сида - наоборот. В нем дыры закрывают в последнюю очередь.

В мире линуха это общее правило - чем свежее софт, тем больше в нем дыр и вообще ошибок.

nnz ★★★★
()
Ответ на: комментарий от nnz

Это получается, что чем дальше, тем хуже чтоли? По твоей версии нужно поставить самое древнее ядро, которое держит моё железо, и жить счастливо на самом секурном линуксе :)

pupkin_1c
() автор топика
Ответ на: комментарий от qsloqs

Попробовал так, initrd прописался, но самосборное ядро 2.6.30.11 не загрузилось, загрузилось старое. Какие ошибки опять же не знаю, придётся комп к телевизору тащить, чтобы смотреть.

Или дальше жить на 2.6.28, пока лень не будет побеждена и поставлена более вменяемая серверная система.

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

Чем дальше - тем лучше. Глядишь, через годик 2.6.30 юзабельным станет.

nnz ★★★★
()
Ответ на: комментарий от pupkin_1c

>Или дальше жить на 2.6.28, пока лень не будет побеждена и поставлена более вменяемая серверная система.

XD Поставь труЪ серверную систему RHEL/CentOS. Там ядро 2.6.18.

nnz ★★★★
()
Ответ на: комментарий от pupkin_1c

Чтото ты там не так делаешь. Я на днях компилил 2.6.30 на посмотреть, все загрузилось. Проверь /boot/grub/menu.lst на наличие строчки initrd после update-grub

и попробуй сделать sudo grub-install /dev/sdX

Да и еще с UUID оно у меня не захотело грузится, прописал в menu.lst прямиком /dev/sda2 мой рут раздел.

qsloqs ★★
()
Ответ на: комментарий от pupkin_1c

Блин. До тебя все никак не дойдет -- серверу НЕ НУЖНО свежее ядро. Хочешь схлопотать внезапную регрессию?

gotf
()
Ответ на: комментарий от qsloqs

Именно всё в порядке там. Grub-install есть ли смысл, если всё работает на 2.6.28 ? :) В общем понятно, как добиться появления initrd в menu.lst, когда отнесу комп к телевизору, чтобы видеть экран, то смогу понять в чём дело хотя бы... :)

pupkin_1c
() автор топика
Ответ на: комментарий от gotf

Я лезу в гугел или яндекс, вбиваю что-нить типа "exploit 2.6.28" и получаю некоторые раскрытые дырки. Через пару лет этих дырок будет в 50 листов с инструкциями для детей по типу "как получить руутовый шел в 2.6.28 в 2 минуты". Какая ж это безопасность :-\

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

> Какая ж это безопасность :-\

Ну, скажем так.. Что для тебя более приемлемо: некоторые вновь открытые _рабочие_ уязвимости, по каким-то причинам внесенные в активно разрабатываемое ядро, но о которых мало знает гугл. Или тьма _давно закрытых_ уязвимостей, о которых гудит весь инет..

Bod ★★★★
()
Ответ на: комментарий от gotf

И большинство этих эксплоитов требуют физического доступа к машинке. Кроме того, разработчики серверных дистров не дремлют, и не меньше твоего знают об уязвимостях.

gotf
()
Ответ на: комментарий от Bod

>>Или тьма _давно закрытых_ уязвимостей, о которых гудит весь инет..

Вот именно. У вантузятников просто в ж*пе свербит от желания сказать: "линукс -- решето!" ;D

gotf
()
Ответ на: комментарий от gotf

Ну как же нет. Берёшь известные дыры с 2.6.18 и до настоящего времени, пробиваешь систему до шелла и пробуешь эксплоиты на ядре. А эксплоитов на последнее ядро явно поменьше будет. Правда, мож я действительно чёто не понимаю, хз...

Я вообще не админ, я любитель. Теоретически рассуждаю :)

pupkin_1c
() автор топика
Ответ на: комментарий от Bod

У меня ядро не обноялось с конца марта, как я пересобрал ванильное 2.6.28. Больше оно не обновлялось. update && upgrade делаю систематически, но ведь ядерные дыры от этого не закрываются?

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

>>Теоретически рассуждаю

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

gotf
()
Ответ на: комментарий от pupkin_1c

К сведению: на дистрибутивные ядра всегда накладываются патчи, закрывающие все известные дыры.

А в свежем ядре новые дыры открываются ВНЕЗАПНО, и с поиском сплойтов под них проблем не возникает.

nnz ★★★★
()
Ответ на: комментарий от pupkin_1c

>>ядерные дыры от этого не закрываются?

Почему же? Разработчики не дремлют ведь. При апдейте заменяются бинарники кернела и модулей на новые, где, возможно, дыры закрыли. Только вот, в ветках testing/sid, как тебе уже сказали выше, обновления не так оперативны, как в stable.

gotf
()
Ответ на: комментарий от pupkin_1c

Ой, ванильное же... Нет, не закрываются, ибо пакетный менеджер о нем не в курсе ;)

gotf
()
Ответ на: комментарий от qsloqs

Ладно, спасибо, я понял систему. Я всё немного по-другому себе представлял как работает. Наверное, действительно надо откатиться на дистровое стабильное ядро и уже тогда жить спокойно.

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

>>Наверное, действительно надо откатиться на дистровое стабильное ядро и уже тогда жить спокойно.

Наконец-то, дошло.

gotf
()
Ответ на: комментарий от pupkin_1c

Ну, как я это понимаю. Выходит скажем стабильная версия дебиана (рхела, слеса..). Содержит вдоль и поперек оттестированные на момент выхода софт и ядро без ключевых косяков в багзилле.
По ходу времени в ядро обновляется только с учетом закрытия вновь обнаруженных уязвимостей. При этом остается все столь же непробиваемым, с _актуальным на любой текущий момент_ состоянием именно безопасности.

Или выходит новое ядро последней версии. Его могут даже включать во всякие федоры с мандривами. Туда добавлена поддержка множества новых устройств. И это ключевая его особенность. То, что при этом отвалилась поддержка части до этого исправно работающих и с новыми дырами возможно приоткрыли часть закрытых, старых - так на то оно и активно разрабатываемое, тестируемое незамороженное ядро. Пока оно от тестирования на десктопах доползет до серверов - максимальнное количество уязвимостей и глюков будет исправлено.

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

За то ядро, которое включено по умолчанию в текущую стабильную версию дебиана - несут ответственность мантейнеры. Регулярно обновляют его, закрывая вновь обнаруженные огрехи, связанные с безопасностью и стабильностью.

За то ядро, которое собрал и установил сам, в дальнейшем сам и отвечаешь (за его обновление, накладывание, в случае необходимости, критичных патчей и все прочее).

Как то так, имхо.

Bod ★★★★
()
Ответ на: комментарий от Bod

Всем ещё раз спасибо за подробное разъяснение и внесение ясности в стабильность ядер. Откатился на 2.6.26-2-686-bigmem, он запустился :)

Теперь буду спать спокойно :)

pupkin_1c
() автор топика
Ответ на: комментарий от pupkin_1c

Кстати, вот ещё проблема. Поскольку теперь ядро будет приходить с обновлением, то menu.lst grub'а обновляться тоже будет автоматически. Проблема в том, что Debian в menu.lst прописывает пути как /dev/hda5 к ядру, мне вручную приходится менять на /dev/sda5. Как-то можно сделать, чтобы система сама ставила в будущем правильно?

pupkin_1c
() автор топика

> Скачиваю последнее ядро kernel.org, распаковываю в /usr/src. Копирую в папку с новыми исходниками ядра файл /boot/config-2.6.28 в файл .config. Далее: make menuconfig,

Чтобы конфиг от одной версии ядра заработал в другой и не "потёк", надо использовать make oldconfig (или silentoldconfig). В данном случае у тебя получилась помойка, а не ядро.

Deleted
()
Ответ на: комментарий от nnz

> XD Поставь труЪ серверную систему RHEL/CentOS. Там ядро 2.6.18.

Там от 2.6.18 остался только номер и ABI.

Deleted
()
Ответ на: комментарий от Bod

> За то ядро, которое включено по умолчанию в текущую стабильную версию дебиана - несут ответственность мантейнеры. Регулярно обновляют его, закрывая вновь обнаруженные огрехи, связанные с безопасностью и стабильностью.

что за ответственность они несут? емнип, никто никакой ответственности не несет. программное обеспечение предлагается as is.

SmaL
()
Ответ на: комментарий от Deleted

Это я тоже делал, не помогало. Забыл написать.

pupkin_1c
() автор топика
Ответ на: комментарий от Deleted

>Там от 2.6.18 остался только номер и ABI.

Чего уже в принципе достаточно, чтобы считаться 2.6.18.

nnz ★★★★
()
Ответ на: комментарий от SmaL

>что за ответственность они несут? емнип, никто никакой ответственности не несет.

Помнится, того "гения" из дебиановского сообщества, который сотворил дыру со случайными числами в openssh, выперли на руководящую работу без права прикасаться к пакетам.

Так что они отвечают прежде всего своей репутацией.

nnz ★★★★
()

Debian testing/sid? Проапдейтись полностью и читай /usr/share/kernel-package/docs/README по поводу каталога /etc/kernel

bvvv
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.