起動時の動作
LILO(LInux LOader)
Linuxのブートローダ。
Linuxだけでなく,MS-DOS,Windows 9x/NTなどをローディングできる汎用のローダ。
システム起動時に最初に動く。
通常,フロッピーのブートセクタ(最初のセクタ)やハードディスクのMBR(マスタブートレコード)などから読込む。
/etc/lilo.confが設定ファイルとなっており,そのファイルでブート動作を設定できる。
上記のLILOのプロンプトでパラメータを与えると,それがカーネルなどに渡される。
通常,[Enter]キーだけ押す,あるいは数秒間待てば,デフォルト設定でLinuxのカーネルがロードされる。
パラメータは次の形式で指定する。
LILO boot:<ロードするOS> <パラメータ>
LILO boot:linux 1 <-- Linuxを起動し,そこに1というパラメータ(実行レベルを1にするという意味)を渡す
|
下記の方法で,イーサネットインタフェースの割り込みやI/Oアドレスを設定することもできる。
LILO boot:linux ether=3,0x340,eth0 <-- Linuxを起動し,eth0というイーサネットデバイスにirq=3,io=0x300というパラメータを設定する
|
パラメータの詳細などは下記を参照。
- /usr/doc/HOWTO/BootPrompt-HOWTO
- /usr/doc/lilo-<version>/READMEなど
initデーモン
Unixカーネルが最初に起動するプロセス。
Unixのすべてのプロセスはinitデーモンの子孫となる。
/etc/inittabの内容に従って,初期化用のスクリプトを実行する。
その他にもいろいろな初期化を行い,デーモンプログラムなどを起動する。
Run Level(実行レベル)
Run LevelによってLinuxの実行モードを変えることができる。
起動時にLILOの引数としてRun Levelを指定できる。
RedHatでのRun Levelは次のとおり。なお,デフォルト(通常の起動)のRun Levelは3。
|
0
|
システムを停止する。起動時のデフォルトに設定しない方がよい。
|
|
1
|
シングルユーザモード。
|
|
2
|
マルチユーザモード。NFSを使わない。
|
|
3
|
マルチユーザモード。これがデフォルト。
|
|
4
|
未使用
|
|
5
|
X11
|
|
6
|
リブートする。起動時のデフォルトに設定しない方がよい。
|
telinitコマンドでRun Levelを変更することも可能。
[root@gw2000 ~]# telinit 1
(以下省略)
|
Unixはシステム起動時の初期化動作の相当部分をシェルスクリプトで記述してある。
/etcディレクトリの下にあるrcで始まるファイルやディレクトリが,その初期化用のスクリプト。
RedHat Linuxの場合は/etc/rc.dディレクトリの下に次のような初期化用のスクリプトがある。
|
init.d
|
デーモンプロセスなどの初期化スクリプトの実体
|
|
rc
|
Run Levelに応じた初期化スクリプトの実行を制御するスクリプト
|
|
rc.local
|
ユーザが定義する初期化スクリプト。初期化の最後に実行される。
|
|
rc.news
|
ニュースサーバ用の初期化スクリプト。
|
|
rc.sysinit
|
最初に実行される初期化スクリプト。
|
|
rc0.d
|
Run Levelに応じた初期化スクリプトを格納したディレクトリ。
その中にはK??.....というものとS??......というシンボリックリンクがある。
K??.....は不要なデーモンを停止するためのもので,まず,こちらの番号が小さいものから順に実行される。
S??.....はデーモンを起動するためのもので,K??.....の後に番号の小さいものから順に実行される。
|
|
rc1.d
|
|
rc2.d
|
|
rc3.d
|
|
rc4.d
|
|
rc5.d
|
|
rc6.d
|
chkconfigコマンド
chkconfigコマンドでrc?.dディレクトリの下にある初期化スクリプトの状態を調べたり,変更できる。
chkconfigコマンドは,inetd/xinetdで起動するサーバプロセスの状態も表示変更できる。
[root@ns1 /etc]# chkconfig --list <-- 設定状況を一覧表示する
anacron 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
httpd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
apmd 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
atd 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
syslog 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
crond 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
netfs 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
network 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
random 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
(途中省略)
ypserv 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
ntpd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
xinetd based services:
finger: オン
linuxconf-web: オフ
rexec: オフ
rlogin: オフ
rsh: オフ
(以下省略)
[root@ns1 /etc]# chkconfig --level 23 ntpd on <-- 実行レベルが2と3のときに,nptdを動かすよう設定する
|
chkconfigのほか,linuxconfなどで初期化スクリプトの有効無効を設定できる。
|