Что происходит с lilo?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
grad
Сообщения: 24
ОС: FreeBSD : OpenBSD : Linux

Что происходит с lilo?

Сообщение grad »

Итак, дистрибутив Archlinux, ядро 2.6.19, файловая система: XFS. Система стоит на одном разделе (hdb1).
Конфиг lilo:
(/etc/lilo.conf) писал(а):boot=/dev/hdb
default=arch
timeout=50
lba32
prompt
image=/boot/vmlinuz26
label=arch
root=/dev/hdb1
initrd=/boot/kernel26.img
read-only

Проблема заключается в том, что после обновления ядра посредством pacman -Syu выполняю lilo, перезагружаюсь и вижу: Kernel panic: no init found. Try to passing init= option to kernel.
Что я только не делал... Система смогла нормально загрузиться только после того, как я установил дистрибутив с CD на другой раздел (hdb2), обновил ядро до current, прописал в /etc/lilo.conf тот конфиг, что я приводил выше и выполнил lilo.
Это происходит уже не первый раз после оновления ядра, и каждый раз спасает только установка новой системы на другой раздел и обновление lilo. Я в ступоре: конфиги lilo - идентичные, но при обновлении ядра снова и снова возникает эта проблема.
Может дело в том, что XFS не вкомпилено в ядро? Помогите, пожалуйста...
FreeBSD 6.2-RELEASE :: Archlinux-current :: Debian 4.0 Etch
Спасибо сказали:
Аватара пользователя
makss
Сообщения: 226
ОС: Win+ Lin

Re: Что происходит с lilo?

Сообщение makss »

initrd я так думаю надо создать для нового ядра
не воспринимайте Linux c позиции Windows, учитесь использовать командную строку
Спасибо сказали:
Аватара пользователя
grad
Сообщения: 24
ОС: FreeBSD : OpenBSD : Linux

Re: Что происходит с lilo?

Сообщение grad »

makss писал(а):
05.12.2006 12:40
initrd я так думаю надо создать для нового ядра
В Archlinux initrd заменили на initcpio и с ним всё нормально. Проблема в lilo, я же объяснил.
FreeBSD 6.2-RELEASE :: Archlinux-current :: Debian 4.0 Etch
Спасибо сказали:
Аватара пользователя
makss
Сообщения: 226
ОС: Win+ Lin

Re: Что происходит с lilo?

Сообщение makss »

Kernel panic: no init found


Это не проблемма lilo
это ваше новое ядро не может найти init
Я хотел узнать вы новый initrd создавали или он у вас от старого ядра?? остался
В Archlinux initrd заменили на initcpio

это одно и то же отличается только способом упаковки файлов
не воспринимайте Linux c позиции Windows, учитесь использовать командную строку
Спасибо сказали:
Аватара пользователя
grad
Сообщения: 24
ОС: FreeBSD : OpenBSD : Linux

Re: Что происходит с lilo?

Сообщение grad »

makss писал(а):
05.12.2006 14:40
Я хотел узнать вы новый initrd создавали или он у вас от старого ядра?? остался
Пакетный менеджер archlinux'a - pacman, при установки ядра автоматически создаёт новый initrd, насколько я понимаю, теперь он называется kernel26.img
Если это не проблема lilo, то почему, когда я устанавливаю загрузчик с другого диского раздела, ядро грузится нормально??

Ладно, кто-нибудь может объяснить почему после обновления ядра надо обновлять загрузчик путём выполнения lilo?

P.S. Может, перекинуть топик в ветку Archlinux?
FreeBSD 6.2-RELEASE :: Archlinux-current :: Debian 4.0 Etch
Спасибо сказали:
Аватара пользователя
admiral
Сообщения: 361

Re: Что происходит с lilo?

Сообщение admiral »

grad писал(а):
05.12.2006 14:59
Ладно, кто-нибудь может объяснить почему после обновления ядра надо обновлять загрузчик путём выполнения lilo?

Потому что ядро находится на файловой системе, а что бы прочитать файловую систему, необходимо загрузить ядро, которое знает это файловую систему. Получается замкнутый круг. Вот при запуске /sbin/lilo - загрузчику говорится где именно на блине жесткого диска находится файл с ядром. Вроде так.
Спасибо сказали:
Аватара пользователя
grad
Сообщения: 24
ОС: FreeBSD : OpenBSD : Linux

Re: Что происходит с lilo?

Сообщение grad »

admiral, хорошо, а можно ли не обновлять загрузчик после обновления ядра, если ядро остаётся на том же месте в иерархии фс и название ядра не меняется??
FreeBSD 6.2-RELEASE :: Archlinux-current :: Debian 4.0 Etch
Спасибо сказали:
Аватара пользователя
sergej5
Сообщения: 33
ОС: Arch Linux

Re: Что происходит с lilo?

Сообщение sergej5 »

grad писал(а):
05.12.2006 14:59
Ладно, кто-нибудь может объяснить почему после обновления ядра надо обновлять загрузчик путём выполнения lilo?


Это особенность lilo. После смены ядра всегда надо выполнять команду lilo. Если не хочешь этого, смени lilo на grub.
Спасибо сказали:
Аватара пользователя
makss
Сообщения: 226
ОС: Win+ Lin

Re: Что происходит с lilo?

Сообщение makss »

хорошо, а можно ли не обновлять загрузчик после обновления ядра, если ядро остаётся на том же месте в иерархии фс и название ядра не меняется??


Нет нельзя, по той простой причине что новый файл лежать у тебя будет уже не в тех физических областях( кластерах ) на диске что и предыдущий файл, а загрузчик в данном случае тупо копирует байты с жесткого диска( начальный адрес которого и задается командой lilo) в память компа и уже потом передает управление ядру(загруженному в память уже)

собственно конфиг нужен даже не лило а ядру, просто лило передает параметры из конфига ядру при его загрузке в память, (за исключением пары строк)
не воспринимайте Linux c позиции Windows, учитесь использовать командную строку
Спасибо сказали:
Аватара пользователя
grad
Сообщения: 24
ОС: FreeBSD : OpenBSD : Linux

Re: Что происходит с lilo?

Сообщение grad »

makss писал(а):
05.12.2006 19:08
просто лило передает параметры из конфига ядру при его загрузке в память
Но почему-то не передаёт параметр, где находится init. Игра с append в конфиге lilo тоже ничего не дала.

В чём причина init not found? Почему ядро не может найти init?
FreeBSD 6.2-RELEASE :: Archlinux-current :: Debian 4.0 Etch
Спасибо сказали:
Аватара пользователя
makss
Сообщения: 226
ОС: Win+ Lin

Re: Что происходит с lilo?

Сообщение makss »

В чём причина init not found? Почему ядро не может найти init?

а вот почему ядро не иожет найти инит, вопрос конечно интересный,
без инитрд когда ядро инициализируется оно должно отдавать управление демону init
который в свою очередь находится в /sbin/init
а вот в случае с initrd он сначала монтирует initrd как корневую файловую систему( в основном это используется при модульности ядра, для загрузки модулей ), а в нем вызывается linuxrc это обычно запускаемый файл (скрипт) который делает дополнительные настройки ( навроде загрузки модулей) и потом отдает управление init ( по идее этот файл должен создаваться заново при установке нового ядра)
не воспринимайте Linux c позиции Windows, учитесь использовать командную строку
Спасибо сказали:
Аватара пользователя
admiral
Сообщения: 361

Re: Что происходит с lilo?

Сообщение admiral »

grad писал(а):
05.12.2006 18:45
admiral, хорошо, а можно ли не обновлять загрузчик после обновления ядра, если ядро остаётся на том же месте в иерархии фс и название ядра не меняется??

Когда загрузчик грузит ядро, ему плевать как оно называется, он даже имени его не знает, он знает только где находится начальный адрес файла ядра (т.к. он не знает еще файловой системы). А при простом замещении новое ядро может лечь совсем в другое место диска, хотя называться будет так же.
/etc/lilo.conf в системе для загрузки вообще не нужен. Это конфиг только для /sbin/lilo, что бы она знала какие ядра надо грузить и что бы прописать их физическое расположение на диске.
Спасибо сказали: