The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"смена runlevel во время загрузки"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"смена runlevel во время загрузки"  
Сообщение от den23513 email(??) on 03-Май-07, 22:33 
Доброе всем время суток!
У меня задача сделать загрузочный сидюк с двумя опциями:
1) загрузка в консоль (init 3)
2) загрузка в кдм (init 5)

Я придумал такую схему:
В isolinux.cfg прописываю следующее:
LABEL 1
    MENU LABEL Boot to kde
    KERNEL /boot/linux
    APPEND root=/dev/ram0 initrd=initrd.gz init=linuxrc rw livecd boot_to_kde load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 verbose vga=791

LABEL 2
    MENU LABEL Safe boot (recovery console)
    KERNEL /boot/linux
    APPEND root=/dev/ram0 initrd=initrd.gz init=linuxrc rw livecd load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 verbose

Обратите внимание на ключ boot_to_kde в первом ярлыке

Затем создал скипт запускающийся до того как init переходит на 3 уровень, который в моем inittab является по умолчанию:
#! /bin/bash
# Check if this script running from CDROM
if grep -iq "livecd" /proc/cmdline; then
    if grep -iq "boot_to_kde" /proc/cmdline; then
    sed -i 's/id:3:initdefault:/id:5:initdefault:/' /etc/inittab
    fi
fi

Загрузка происходит без ошибок, в фаиле inittab меняется значение уровня по умолчанию на 5, но система остается на третьем уровне.
Где копать?

Когда система установлена на HD и используя загрузчик лило можно передать ядру ключ init 5
тогда все работает (проверено). А syslinux не понимает такого ключа :-(
Какие будут предложения?
Заранее благодарен.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "смена runlevel во время загрузки"  
Сообщение от den23513 email(??) on 04-Май-07, 11:55 
Все... Проблема решена.
Ответ прост. Копать нужно было initrd.gz а не скрипты после него.
В скрипте linuxrc добавил проверку на ключ:

#start of linuxrc
...
...
if grep -iq "livecd" /proc/cmdline; then
    if grep -iq "boot_to_kde" /proc/cmdline; then
       INIT_LEVEL=5
    else
       INIT_LEVEL=3
    fi
fi
...
...
...
exec chroot . /sbin/init ${INIT_LEVEL} ....
...
#end of linuxrc

А ваще очень странно что такой мощный пакет загрузки как syslinux не умеет передавать ядру такие ключи, хотя в документации они утверждают обратное. Но я как не крутил - не получалось.
Спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру