init и runlevel

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

barton`ello
Сообщения: 57

init и runlevel

Сообщение barton`ello »

Здравствуйте!

От grub`a нужно в меню загрузки на выбор два варианта: графический генту и текстовый. Это можно реализовать, передав дополнительный параметр ядру softlevel=.... Собственно, я так и сделал, создав новый уровень x-server, отличающийся от default только наличием xdm, и добавив его в параметр ядра.

Интересует такой вопрос: почему нельзя использовать более правильный метод, прописав в inittab для пятого уровня:

Код: Выделить всё

l5:5:wait:/sbin/rc x-server

... и передав в параметрах ядру всего одну цифру "5", для загрузки сразу в пятый init-уровень (согласно man init)?

Зараннее спасибо!
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: init и runlevel

Сообщение DaemonTux »

Почему нельзя. На скоко мну извесно можно. Единственное что у меня уравень исполнения (5) передается не через grub а праписон как дефолтный. Вот что я сделал:

В inittab поправил строчку для 5 уровня. Тобиш вместо default прописал graffic. и поменял чтобы по дефолту грузился 5 уровень

Код: Выделить всё

# Default runlevel.
id:5:initdefault:

l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc graffic
l6:6:wait:/sbin/rc reboot


Затем зашел в /etc/runlevels. И скопировал содержимое директории default в мною созданный католог graffic.


Надеюсь я вас правильно понял.
Vladivostok Linux User Group
Спасибо сказали:
barton`ello
Сообщения: 57

Re: init и runlevel

Сообщение barton`ello »

Практически правильно.

В моем случае почти аналогичная ситуация. Цель - две опции загрузки в грубе, одна для Х, другая для текстового режима.

В inittab`e:

Код: Выделить всё

id:3:initdefault:
......
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc x-server
l6:6:wait:/sbin/rc reboot
.......


Т.е. по умолчанию грузится 3 уровень и соответственно ранлевел default (без Х). Для этого никакие специальные параметры передавать ядру не нужно.

Потом точно так создал папку x-server в /etc/runlevels, скопировал туда все из default, сделал rc-update add xdm x-server. Ну и для отдельной строки загрузки в графический режим передаю ядру такие параметры (пример для груба, добавленный параметр выделен):

Код: Выделить всё

title           Gentoo Linux 2.6.21
root            (hd0,6)
kernel          /boot/kernel-genkernel-x86-2.6.21-gentoo root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda7 udev vga=0x318 video=vesafb:mtrr:3 resume=/dev/sda6 [b]5[/b]
initrd          /boot/initramfs-genkernel-x86-2.6.21-gentoo


Судя по man init,
...
BOOTFLAGS
It is possible to pass a number of flags to init from the boot monitor (eg. LILO). Init accepts the following flags:

-s, S, single
Single user mode boot. In this mode /etc/inittab is examined and the bootup rc scripts are usually run before the
single user mode shell is started.


1-5 Runlevel to boot into.
...

это должно пустить систему в 5 уровень и соответственно inittab`у в runlevel x-server. Но ничего не происходит=\

Решение в принципе есть. Передать параметр ядру softlevel=x-server. Тогда он загрузится в runlevel x-server. Разница между этими друмя методами вот в чем:
1) При использовании метода по man`у система сразу грузится в 5 уровень, а вот при использовании параметра softlevel - сначала грузит дефолтный уровень, а потом приводит в соответствие сервисы между этими двумя уровнями. Про это написано тут. Т.е. ненужные вырубает, нужные включает. Это, конечно, для конкретно моего случая не критично, т.к. разница только в сервисе xdm, но вот если вдруг... мне нужно будет грузить совершенно разный набор сервисов=) Т.е. softlevel ИМХО не труъ...
2) Как я понял, softlevel - чисто гентушная фишка, поэтому в других дистрах так не выкрутишься. Хотелось бы глобальный способ.

Может, я просто что-то недопонимаю. Описал, вроде все подробно, хотя может и слегка запутанно=)
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: init и runlevel

Сообщение DaemonTux »

barton`ello писал(а):
09.07.2007 02:05

Код: Выделить всё

title           Gentoo Linux 2.6.21
root            (hd0,6)
kernel          /boot/kernel-genkernel-x86-2.6.21-gentoo root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda7 udev vga=0x318 video=vesafb:mtrr:3 resume=/dev/sda6 [b]5[/b]
initrd          /boot/initramfs-genkernel-x86-2.6.21-gentoo

Ты не правильно передал параметр ядру.

Вот что я передаю

Код: Выделить всё

title Gentoo
        root (hd0,4)
        kernel /boot/vmlinuz-2.6.20-gentoo-r8 root=/dev/hda5 3

По умолчанию у меня прописан 5 уровень исполнения. А если передать в качестве параметра 3 то грузит соответственно 3 уровень.
Vladivostok Linux User Group
Спасибо сказали:
barton`ello
Сообщения: 57

Re: init и runlevel

Сообщение barton`ello »

DaemonTux писал(а):
09.07.2007 05:19
barton`ello писал(а):
09.07.2007 02:05

Код: Выделить всё

title           Gentoo Linux 2.6.21
root            (hd0,6)
kernel          /boot/kernel-genkernel-x86-2.6.21-gentoo root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda7 udev vga=0x318 video=vesafb:mtrr:3 resume=/dev/sda6 [b]5[/b]
initrd          /boot/initramfs-genkernel-x86-2.6.21-gentoo

Ты не правильно передал параметр ядру.

Вот что я передаю

Код: Выделить всё

title Gentoo
        root (hd0,4)
        kernel /boot/vmlinuz-2.6.20-gentoo-r8 root=/dev/hda5 3

По умолчанию у меня прописан 5 уровень исполнения. А если передать в качестве параметра 3 то грузит соответственно 3 уровень.


Извиняюсь, ошибся, я передаю именно "5", а не "[ b]5[b]", это я хотел выделить пятерку тегом=)

Как ни странно, не грузит=\ Может, нужно как-то собрать ядро с поддержкой это фичи?
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: init и runlevel

Сообщение DaemonTux »

хм. Даже не знаю что посоветовать. Я ядро руками собирал(а не через genkernel). Хотя помойму это здесь не причем. Возможно дело в самом ядре. Параметр ответственный за init в ядре не находил. Попробуйте обнавить систему.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: init и runlevel

Сообщение Atragor »

Попробовал сделать так же, с пятеркой в параметрах ядра грузит 5-й уровень, о чем сообщает при загрузке (разве что xdm не запускает, он у меня делся куда-то), по умолчанию загружает 3-й. Ядро собирал сам по хэндбуку, добавлял только то, что мне нужно, и ничего касательно init'a точно не видел.

2DaemonTux: а чем может помочь обновление?
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: init и runlevel

Сообщение DaemonTux »

Atragor писал(а):
09.07.2007 21:33
Попробовал сделать так же, с пятеркой в параметрах ядра грузит 5-й уровень, о чем сообщает при загрузке (разве что xdm не запускает, он у меня делся куда-то), по умолчанию загружает 3-й. Ядро собирал сам по хэндбуку, добавлял только то, что мне нужно, и ничего касательно init'a точно не видел.

2DaemonTux: а чем может помочь обновление?

Может и не поможет но выход както надо искать. Просто бывают случаи когда обновление базового окружения помогает.
Vladivostok Linux User Group
Спасибо сказали:
barton`ello
Сообщения: 57

Re: init и runlevel

Сообщение barton`ello »

Ну собственно ядро собиралось тоже по хэндбуку, за основу брал конфиг знакомого с аналогичными устройствами, т.к. знаниями на ядерном уровне похвастаться не могу. Генкернел просто немного автоматизирует процесс:

Код: Выделить всё

genkernel --menuconfig all


Систему полностью обновил буквально недавно, до 06-07-07, ядро правда пока еще 2.6.21-gentoo.

Может на дело как-то влияет initrd?

2Atragor: можно посмотреть для верности конфиг груба? Используется initrd?

2all: Какие ядра вы используете, gentoo/vanilla?
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: init и runlevel

Сообщение DaemonTux »

У меня gentoo-sources стоят
Vladivostok Linux User Group
Спасибо сказали:
barton`ello
Сообщения: 57

Re: init и runlevel

Сообщение barton`ello »

Ну тогда скорее всего дело в initrd. надо пересобрать ядро без него и попробовать. О результатах доложу, спасибо всем за помощь;)
Спасибо сказали:
barton`ello
Сообщения: 57

Re: init и runlevel

Сообщение barton`ello »

Как я и говорил, дело было в initrd. Обновил систему, полностью пересобрал ядро (вкомпилил нужные модули), убрал initrd и все заработало!

Спасибо за помощь!
Спасибо сказали: