Linux起動の仕組みを理解しよう[init/inittab編]:Windowsユーザーに教えるLinuxの常識(10)(2/2 ページ)
カーネルが呼び出されてからログインプロンプトが表示されるまでの間に、一体どのような処理が行われているのか。これを理解するには、この部分の全般をつかさどるinitとその設定ファイルであるinittabがカギとなる。
ランレベルによる動作状態の変更
Windowsには、「ランレベル」に相当する概念がないので、ちょっと分かりにくいかもしれません。これは、Linuxがどんな状態で動作するのかを指定します。一般的には、
ランレベル | 意味 |
---|---|
0 | システム停止処理中 |
1 | シングルユーザーモード |
2 | マルチユーザーモード |
3 | マルチユーザーモード |
4 | マルチユーザーモード |
5 | マルチユーザーモード |
6 | リブート中 |
になります。マルチユーザーモードが複数あるのは、例えばグラフィカルログインとテキストログインを使い分けるためです。Red Hat Linux 7.2だと、
ランレベル | 意味 |
---|---|
0 | システム停止処理中 |
1 | シングルユーザーモード |
2 | NFSを使わないマルチユーザーモード |
3 | フルマルチユーザーモード |
4 | 未使用 |
5 | グラフィカルログイン |
6 | リブート中 |
になっています。
これを設定しているのは、/etc/inittabの、
id:3:initdefault:
という行です。この場合、ランレベル3、フルマルチユーザーモードで動作することになります。「3」を「5」に置き換えると、ログイン画面がX Window Systemを使った画面になります。
なお、ランレベル0と6は自動的に設定されるので、inittabのid行で指定してはいけません。うっかり「6」を指定したりすると、延々とリブートするハメになったりします。こうした場合は、起動時にカーネルパラメータとして「single」を渡してやればOKです。指定されているランモードに関係なく、シングルユーザーモードの状態で起動します。このときはネットワークも動いておらず、コンソールに直接プロンプトが出ます。そこで、すかさず/etc/inittabを編集して再起動すればいいわけです。
また、ファイルシステムをumountせずにいきなりリセットしたりすると、場合によってはfsckでも修復し切れないエラーが生じます。このようなときは、自動的にシングルユーザーモードで起動します。
シングルユーザーモード
シングルユーザーモードは、Windowsのセーフモードに相当すると考えていいでしょう。マルチユーザーモードでshutdownコマンドを実行してもシングルユーザーモードになります。このときは、/etc/rc1.d内のスクリプトが実行されます。起動時にカーネルパラメータとしてsingleを指定したりfsckなどでエラーが起きた場合、/etc/rc1.d内のスクリプトは実行されません。
このモードは文字通り、1人のユーザーだけが使う状態です。デーモンやプロセスも最小限のものしか動いていないので、メンテナンスがやりやすくなっています。
例えばハードディスクのバックアップを取るとき、ほかのユーザーが使っていたり、さまざまなデーモンが動いていると、いつデータを書き換えられるか分かりません。まさにバックアップを取っている最中のファイルを書き換えられると、ちょっと厄介なことになります。
その点、シングルユーザーモードでは/(ルート)に割り当てたパーティションをマウントするだけでよいので、/usrや/homeを別パーティションにしておくと確実にバックアップが取れます。もちろん、/パーティション自身をバックアップするときも、シングルユーザーモードならばファイルが勝手に書き換わることが少ないので安心です。
シングルユーザーモードではネットワーク関係の機能も止まっていますから、コンソールからの作業が前提となります。シリアルポートを経由して別の端末で操作することもできますが、それなりの設定が必要になります。設定についてはhttp://www.linux.or.jp/JF/JFdocs/kernel-docs-2.4/serial-console.txt.htmlなどを参照してください。
シングルユーザーモードからログアウトすると、マルチユーザーモードに移行します。
マルチユーザーモード
マルチユーザーモードは、ごく一般的な動作モードです。Red Hat Linux 7.2ならば、ランレベル3か5のいずれかでしょう。3ならばテキストベース、5ならX Window Systemベースのグラフィカルなログイン画面になります。
どちらもネットワークなどが使えるようになり、さまざまなデーモンが動いています。普段使うのは、このモードになります。前述したように、ランレベルに応じたrcスクリプト(ランレベル3なら/etc/rc3.d以下、ランレベル5なら/etc/rc5.d以下)を実行した後、ようやくログインプロンプトが出てきます。
次回予告
次回はいよいよ最終回です。今回紹介し切れなかったrcスクリプトの機能や書き方を取り上げます。
関連記事
Copyright © ITmedia, Inc. All Rights Reserved.