LINUX.ORG.RU

Проблема после сборки ядра


0

0

Установил Ubuntu 9.10. Решил собрать свое ядро, делал по инструкции с http://www.livecd.su/createlivecd/create5.php , с поправками на свою конфигурацию. После перезагрузки и запуска своей версии ядра стал выпадать в kernel panic.

[0.872381] Kernal panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0).

В связи с этим появилось несколько вопросов:

1 Связано это с моей настройкой ядра или это ошибка в приведенной инструкции?

2 Посмотрел другие варианты процесса сборки ядра и нашел, что можно еще делать как-то через bzImage. Что это? В чем различие?

3 А зачем нужны headers файлы (?). То есть если с kernel-понятно, это само ядро, modules-это подсоединяемые модули, а вот headers - понятно, что заголовки, но зачем и как они работают?

4 Может есть какие-то толковые мануал или книга, где можно узнать как именно устроена не файловая структура linux, а именно.. ээ... не знаю как правильно сказать.. организационное строение что ли, то есть модули, заголовки, куда сохраняются и куда обращаются, чтобы запуститься, или как происходит какой-либо процесс, допустим, определение и работы cd-rom, как именно происходит определение, куда сохраняется записываемый образ и т.д.
Если есть на англ., то тоже будет неплохо.


Вроде пока все. Спасибо.

Инструкция не может предусмотреть всего на свете. Просто какой-то фактор ты не учел.

Первая ошибка - это у тебя в ядре нет поддержки той ФС, которая используется на диске, где лежит /. Вообще, если этим занимаешься, полезно выделить гигов пять на /boot.

anonymous ()

Генту хэндбук во все поля. Смотри там про stage 1 и 2.

Ты, наверное, забыл включить в лайв-сиди драйвер ФС для собственно сиди.

Капча со словом mount :)))

anonymous ()

заголовки - это кусок исходников ядра - нужны для сборки модулей
как уже выше писали - дрова корневой фс и контороллера должны быть в ядре (если не используешь initrd)
про то какие модули нужны смотри lspci -k (по железу) и фс - сообразишь

впрочем касательно лишних модулей ( читай поддержка не нужного железа ) в ядрах начиная с 2.6.32 добавили скрипт, который сравнивает загруженные в данный момент модули и те, чья поддержка включена в ядре, если находит лишние модули, то он их отключает, сохраняя настройки в ".config"
вызывается он командой в директории исходников ядра ( обычно /usr/src/linux )

make localmodconfig

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

make localyesconfig
(это цитата )))
я ставлю ядра как то так
make menuconfig
make
cp arch/x86/boot/bzImage /boot/имя_нового_ядра
make modules_install

ну вот как то так %)

megabaks ★★★★ ()

убунту сейчас по умолчанию использует ext4 ?
значит >Enable the block layer > [*] Support for large (2TB+) block devices and files
многие столкнулись.

S_Paul ★★★★ ()

Может у Вас проблеммы на этапе mkinitramfs?

tux2002 ()

Скорее всего initrd забыл сделать. [code] update-initramfs -k all -c [/code] В конфиге ядра должно быть CONFIG_BLK_DEV_INITRD=y

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

во-первых сомневаюсь что у ТС это так
во-вторых лвм это лишняя сущность, порождающая вторую лишнюю сущность!

megabaks ★★★★ ()

Всем спасибо, перевариваю прочитанное, отпишусь о решении. P.S. Шутку про 5 гигов на бут уже переварил. P.P.S. Шутка ведь, да?))

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

Нет, это я перепутал единицы измерения.

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