UnterSchrift: mkinitrd, нужен ли он для свежескомпилированного ядра?
However, going
back to the original problem, I was able to create an initrd image
without mkinitrd (of package initrd-tools). To be more specific,
"update-initramfs -c -k 12.6.25" command (of package initramfs-tools)
seems to do the same job as "mkinitrd" which I was trying to install.
Скачал
ядро 2.6.22.6 с кернел.орг, затем откомпилировал его. Далее
откомпилировал модули, используя команды make modules и make
modules_install. в папке /lib/modules содержится папка 2.6.22.6 с
модулями.
Теперь пробую создать initrd. Подскажите как правильно
создать его для ядра. По описаниям из opennet не получается. Команда
типа mkinitrd /boot/initrd-2.6.22.6.img 2.6.22.6 не дает результата. В
итоге при загрузке с этим ядром происходит кернел паник.
mkinitrd команда (shell script) зависит от конкретной версии дистро.
инитрд нужен для того чтобы инициализировать железо компа навроде
дискового контроллера, соответственно в инитрд как минимум должен быть
включен модуль дискового контроллера. мкинитрд читает
/етц/модулес.конф, ищет директорию с модулями под заданую вересию ядра и
создает образ. т.к. все это слегка отличается от дистро к дистро
команда мкинитрд и инструкция к ней зависят от дистрибутива.
UnterSchrift Если
нет специфических SATA/IDE/SCSI RAID контроллеров, имеющих не open
source драйвера (например promise fasttrak 2200), смысла делать Initrd
просто нет. Есть конечно исключения - например если у вас нет драйвера
корневой ФС в ядре (какой-нибудь XFS), а пересобирать ядро "от
производителя" не хочется. Если же пересобираете, и ваше ядро в
результате спокойно увидит "/" - не парьтесь.
Я могу ошибаться, но по моему последовательность такова. make xconfig - задаем опции make modules make modules_inslall - после этого следим чтобы правильно выполнился depmod! по наличию файла /lib/modules/2.6.22.6/modules.dep make bzImage make install - вот это запускает в случае необходимости mkinitrd и прописывает в lilo все что нужно
цитата:UnterSchrift: Я
писал так, как было указано в README. Последовательность была выполнена
именно таким образом. Скажите, а файл vmlinux для чего нужен?
Как раз для вывода kernel panic
Добавление от 09.09.2007 01:11:
цитата:UnterSchrift: Доброго дня!
Вопрос следующий:
Скачал
ядро 2.6.22.6 с кернел.орг, затем откомпилировал его. Далее
откомпилировал модули, используя команды make modules и make
modules_install. в папке /lib/modules содержится папка 2.6.22.6 с
модулями.
Теперь пробую создать initrd. Подскажите как правильно
создать его для ядра. По описаниям из opennet не получается. Команда
типа mkinitrd /boot/initrd-2.6.22.6.img 2.6.22.6 не дает результата.
А
какой результат вы ожидаете? Не создаётся образ ram-disk'а или
создаётся, но автоматом не прописывается в menu.lst? Если первое,
попробуйте перед mkinitrd выполнить depmod 2.6.22.6. Если второе, то
пропишите его в menu.lst самостоятельно, по аналогии с уже имеющимися
там записями.
цитата: В итоге при загрузке с этим ядром происходит кернел паник.
Kernel panic-not syncing: Attempted to kill init!
Не может подмонтировать корневую файловую систему, модуль для которой находится как раз на образе рамдиске.
make [xconfig|menuconfig] итп make make modules_install, если надо В разделе /boot все уже будет создано, в grub все прописывается, initrd создается автоматически.