Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

grubの選択情報を取得

3 views
Skip to first unread message

dolphin

unread,
Jan 12, 2004, 10:12:29 PM1/12/04
to
Yamashitaと申します。

RedHat Linux 9(FTP)を使用しております。

やりたいことが

1)grubのカーネル選択メニューリストを使用して、オペレータがどの
 アイテムを選択してOS起動したのかを知りたい。(コマンドで)

2)選択した、アイテムによってサービスを起動したり、しなかったり
 の条件分岐をしたい。(/etc/rc.~)

3)但し、すべてカーネルのバージョンは統一にしたい。(grub.conf
 のタイトルだけ変更して、kernelはすべて同じ)

を、しようと思っているのですがよい方法がおもいつきません。単純
に選んだタイトルの文字列、または、タイトルの通番が取れればよい
のですが、どなたかよい考えはないでしょうか?

すべて、カーネルバージョンを変更または同じカーネルでもカーネル
名を変更すれば何とかいけるような気がしますが、一つのカーネルイ
メージだとつらいでしょうか?

EX.
-------------------------------------------------------------
[GRUBの画面]

Red Hat Linux (2.4.20-8 MODE-1)
Red Hat Linux (2.4.20-8 MODE-2) <- オペレータが選択
Red Hat Linux (2.4.20-8 MODE-3)

なにか、コマンドで"Red Hat Linux (2.4.20-8 MODE-2)"が取得でき
るか、もしくは通番( "1" )を取得できるようなしくみ


[grub.confの記述]
default=0
timeout=30
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8 MODE-1)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img

title Red Hat Linux (2.4.20-8 MODE-2)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img

title Red Hat Linux (2.4.20-8 MODE-3)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img


Sutah Koura

unread,
Jan 13, 2004, 4:51:03 AM1/13/04
to
1)はカーネルの起動ログ /var/log/dmesg の
Kernel Commmand Line: の情報ではダメなんでしょうか
ログ ビューアなら
メインメニューボタン=> システムツール=>システムの ログ=>カーネルの起動ログ。
または、シェルプロンプト でredhat-logviewerとコマンドを入力。

"dolphin" <dol...@bml.co.jp> wrote in message
news:4003621D...@bml.co.jp...
> 1)grubのカーネル選択メニューリストを使用して、オペレータがどの
>  アイテムを選択してOS起動したのかを知りたい。(コマンドで)

名称不定

unread,
Jan 13, 2004, 6:28:12 AM1/13/04
to
確認していませんが、
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ selectedmode=1
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ selectedmode=2
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ selectedmode=3
のようにして好きなパラメータを渡してやれば
/proc/cmdline を参照して分岐できると思います。

OBATA Akio

unread,
Jan 13, 2004, 9:52:38 AM1/13/04
to
おばた ナノですが、

On Tue, 13 Jan 2004 12:12:29 +0900
dolphin <dol...@bml.co.jp> wrote:

> 1)grubのカーネル選択メニューリストを使用して、オペレータがどの
>  アイテムを選択してOS起動したのかを知りたい。(コマンドで)
>
> 2)選択した、アイテムによってサービスを起動したり、しなかったり
>  の条件分岐をしたい。(/etc/rc.~)
>
> 3)但し、すべてカーネルのバージョンは統一にしたい。(grub.conf
>  のタイトルだけ変更して、kernelはすべて同じ)

このために、runlevelというものがあるのではないでしょうか?
たくさん場合分けしたいなら、難しいですが、
3つぐらいならば、2,3,4 を使えば良いのではないですか?

--
お役に立てない(^^;
OBATA Akio / ob...@zit.to
せかいは ひろがる ちきゅーは まわる。

dolphin

unread,
Jan 13, 2004, 7:21:45 PM1/13/04
to
Yamashitaです。

OBATA Akio wrote:
> おばた ナノですが、


> このために、runlevelというものがあるのではないでしょうか?
> たくさん場合分けしたいなら、難しいですが、
> 3つぐらいならば、2,3,4 を使えば良いのではないですか?
>

すみません、薄学でよく判らないのですが..
ローダを使用(grub.confで指定)してrunlevelを制御可能なのでしょうか?
/etc/inittabで、runlevel4はunusedなのでこれがローダから呼べれば何とか
なると思います。

#init 4

と入力して起動するのは避けたいのですが...

dolphin

unread,
Jan 14, 2004, 4:21:31 AM1/14/04
to

この方法で、無事実装できました。
ありがとうございます。

OBATA Akio

unread,
Jan 14, 2004, 9:29:52 AM1/14/04
to
おばた ナノですが、

On Wed, 14 Jan 2004 09:21:45 +0900
dolphin <dol...@bml.co.jp> wrote:

> ローダを使用(grub.confで指定)してrunlevelを制御可能なのでしょうか?
> /etc/inittabで、runlevel4はunusedなのでこれがローダから呼べれば何とか
> なると思います。

# Linuxもgrubも常用してないんで良くわからないんですが...

grub.conf で
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 4
とか kernel 行の最後に runlevel を付けたらいかないですか?

0 new messages