LINUX.ORG.RU

компиляция 2.6.7


0

0

Здраствуйте о великие ГУРУ. Собсно делал сабж (по доке) и вот все вроде бы номано. Ну там (в доке) сказано как в лило разрулить загрузку, у меня grub ну я подумал что надо что то типа похожее сделать и в grub.config'e дописал : title Red Hat Linux (2.4.20-8) root (hd0,4) kernel /boot/vmlinuz-2.6.7-1 ro root=LABEL=/ initrd /boot/initrd-2.6.7-1.img Воть . Ессно vmlinuz-2.6.7-1 и initrd-2.6.7-1.img в boot присутствуют с такими же именами и еще System.map-2.6.7-1 и initrd-2.6.7-1.img так же были созданы и помещенны в boot. Ну так вот обрадованный что вроде все номано ребучу я комп и с радостью выбираю в grub'e свежескомпиленное ядро и резалт : init not found. Хелп!!! Что я не то сделал?

anonymous

указывай root через девайс, а не через метку.

root=/dev/hda2 или как у тя там?

root(hd0,4) это раздел с ядром (четто я не пойму, у тя грузится с логического диска?)

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

Загрузка старого ядра  :
default=0
timeout=10
splashimage=(hd0,4)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
        root (hd0,4)
        kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/
        initrd /boot/initrd-2.4.20-8.img
Да я еще опечатался выше ... не Red Hat Linux (2.4.20-8) а Red Hat Linux (2.6.7-1)
А чем поможет указывать root через девайс а через метку?

anonymous
()

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

Пишу в седьмой раз, для тех, кому поиск недоступен.

Q: Собрал ядро. Запускаю. Kernel panic: no init found. или Unable to find root fs. Что делать? A: Ну вообще данные надписи сами по себе являются руководством к действию.

1-й случай. Смотрим как собрали поддержку корневой файловой системы. Если она собрана модулем, то у вас должен быть создан initrd (и лежать в папке /boot) и прописан в вашем загрузчике. Данный файл должен создаваться на новое ядро ЗАНОВО!

В загрузчике запись об initrd выглядит примерно так для lilo: initrd = /boot/initrd-2.6.3-prep5.img и так для grub: initrd /boot/initrd-2.6.3-prep5.img

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

2-й случай. Тут все несколько сложнее. Дело в параметрах загрузчика. Если вы собираете поддержку корневой файловой системы не модулем, то не нужно передавать ядру параметр root=/ или r oot=LABEL=/ (кстати, root можно прописать отдельно, а не как параметр, например, так: root = /dev/hda2 ) - все эти вещи нужны системе, чтобы нормально запуститься после установки.

Для grub стоит проверить правильность записи о рутовом разделе, т.е. наличие строчки вроде такой: root (hd0,1)

Если вы собираете поддержку корневой файловой системы модулем, а эти строчки прописаны, значит скорее всего не проп исан initrd (или он старый и в нем нет или не грузится данный модуль).

Общий совет: Если вы не собираетесь таскать систему с винта на винт, проще собрать поддержку корневой файловой сист емы в ядре и обойтись без указывания корневого раздела (root =) и создания и использования initrd.

----------------

Скорее всего, у тебя fs собрана жестко. Убери надпись root=LABEL=/

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