メニューを開く

2018/04/30

Linux ~システムの起動/停止手順~

システムの起動/停止シーケンスを理解することで、Linuxの仕組みや設定に対する理解も深めることができ、システムの運用保守にも役立つといわれています。それでは、さっそくLinuxの起動シーケンスです。
Linuxの起動シーケンス
電源ON
    ⇩
BIOSがディスクのMBRという先頭ブロックのブートローダーをメモリ上に読み込みます。
    ⇩
ブートローダーがカーネル(vmlinuz)とイニシャルRAMディスク(initrd)をメモリに読み込みます。
    ⇩
カーネルが初期化シーケンスを実行し、メモリに読み込まれているinitrdをマウントします。
    ⇩
カーネルがinitrdを使ってrootファイルシステムをマウントします。
    ⇩
カーネルがinitプロセスを生成し、起動時のカーネルオプション指定に従ってinit以外のプロセス(/bin/bashなど)を生成します。
    ⇩
initは起動されるとRun Control Script(/etc/rc.sysinit、/etc/rc)を実行し、/etc/inittabのシステムの各ランレベルの起動サービスの指定に従ってデーモンを起動します。
次に、起動シーケンスに出てきたランレベルです。ランレベルとは、Linuxの動作モードのことで、0から6の7種類あって、そのレベルに従って起動/停止されるサービスが異なります。各ランレベルの意味は、こんな感じになっています。
ランレベル
レベル
 0  システム停止(シャットダウン)
 1  シングルユーザーモード(rootのみ)
 2  ネットワークなしのマルチユーザーモード
 3  通常のマルチユーザーモード
 4  未使用
 5  グラフィカルログインによるマルチユーザーモード
 6  システム再起動
 そして、起動/停止されるサービスのスクリプトは、/etc/rc.d/rcレベル.dに格納されています。また、頭文字がS(Start)は起動、K(Kill)は停止を表します。続く2桁の数値は実行の優先順位を表していて、数値の小さいものから順に実行されます。
サイト構築をする際には、自動起動するサービスを追加するために設定を行うのですが、設定方法が、これまでよく使われていた起動システムであるSysVinit系と新しい起動システムSystemdで違うので、また別の機会に記事にします。


EmoticonEmoticon