проблема с initrd
может для кого-то эта проблема покажется тривиальной
вобщем я скачал сорсы ядра 2.6.22 с кернел.орг, сконфигурировал ядро, установил его и модули.
я создал initrd (не знаю правильно или нет :\)
mkinitrd -o /boot/initrd-2.6.
при том что в конфиге mkinitrd была запись
modules=most что в свою очередь судя по каментам должно было включить в образ initrd все необходимое для успешного монтирования рутовой фс. затем внес нужные изменения в /boot/grub/
при загрузке нового ядра происходит kernel panic:
unable to mount root fs on unknown-block(0,0)
При конфигурировании ядра я указал поддержку initrd support и драйверов контроллера харда и ext3.
буду очень признателен в помощи по решению этой проблемы :)
вобщем не могу загрузить ядро :( На сайте производителя нужно контейнер для мусора купить по реальной цене и с доставкой в любой населенный пункт СНГ.
гм, какой дестриб какой фс
дистр debian, fs - ext3
Сорри за тупой вопрос, но зачем нужен initrd?
2Сергей: initrd (initial RAM disk) - это RAM-диск который загружается загрузчиком системы (lilo, grub, etc) и монтируется как корневая фс перед нормальной загрузкой. Это нужно для загрузки модулей перед монтированием нормальной фс.
пересобери ядро, ext3 сделай модулем, обязательно сделай новый initrd.
mkinitrd initrd-2.6.
не забудь перед этим собрать модули (make modules; make modules_install)
пардон. ошибочка вышла.
mkinitrd initrd-2.6. 2.6.22
2Antonov
Вообще, тут скорее дело не в инитрд, он используется немного в других случаях. Если у тебя фс вкомпилена в ядро, оно должно нормально грузиться, проверь конфиг груба... Хотя если ты первый раз собираешь ванильное ядро, то там может быть все что угодно.
пересобрал ядро, ext3 сделал в виде модуля, /boot/grub/ вроде в порядке - ядро всё равно не загружается
всё то же
list of all partitions
no filesystem could mount root, tried:
kernel panic...
А зачем фс в модуль выносить?
Если компилишь ядро сам, то нужно знать отлично, что за железо, какие контроллеры на хард идут и т.п. Элементарно мог забыть включить. Вообще не вижу смысла страдать фигней и компилить ядра, когда есть дистрибутивные, разве что по молодости поиграться...
да.. Initrd нужен если хочешь чтобы на этапе загрузке цеплял какойто драйвер.. который не в компилирован в ядро... если ты собираешь ядро сам то Initrd Ненужен...
> А зачем фс в модуль выносить?
Вот поэтому и спрашивал. Больше не вижу причин на домашнем компе возиться с initrd...
Малоли.. уже собраное ядро... и модуля под фс нету)
А зачем юзать собранное ядро, если можно за 10 минут скомпилить своё?
ситуация немного изменилась.
теперь с initrd порядок, теперь при загрузке ядра происходят 2 неудачные попытки смонтировать devfs:
mount: unknown filesystem type 'devfs'
pivot_root: no such file or directory
/sbin/init: 432: cannot open dev/console - no such file
kernel panic - not syncing: attempted to kill init!
для деба собирай ядро так:
1) распаковываешь сырцы
2)$ make menuconfig
3)$ make-kpkg clean
4)$ fakeroot make-kpkg --initrd --revision=rev.01 kernel_image
5)$ cd ..
6)su
7)# dpkg -i kernel-image*.deb
чтоб все получилось надо чтоб были установлены пакеты
debhelper modutils kernel-package libncurses5-dev fakeroot
всю сборку от обычного пользователя, а не от рута делать.
получившийся пакет, ясно, от рута надо ставить