アットウィキロゴ

システムの起動とシャットダウン

システムの起動とシャットダウン


電源の投入からOSが起動するまでの流れ


①システムの電源が投入されるとまずBIOS上のPOST(Power On Self Test)と呼ばれる自己診断プログラムが起動する。POSTはCPUやメモリ、をはじめディスク、グラフィックスキーボードコントローラ等の各種コントローラに問題がないかを診断し、問題を見つけた場合にはそれを表示したり、ビープ音でユーザに報告する。

②BIOSがマスターブートレコードにあるブートストラップローダを起動する。これはマスターブートレコードの先頭から445バイト目までに格納された小さなプログラムで、BIOSによってメモリに読み込まれた後実行される。

③ブートストラップローダは、2次ブートローダであるLILOやGRUBを起動する。OSの起動は、この2次ブートローダによって行われる。

④2次ブートローダは、ディスクからカーネルを読み込んでそれを起動する。

⑤カーネルは起動すると各種デバイスを初期化した後、ルートファイルシステムをマウント(Read Only)する。

⑥カーネルは最初のプロセスすなわち/sbin/initを起動する。initはカーネルが最初に起動するプロセスのため、そのプロセスIDは常に1となる。

⑦initは/etc/inittabの中身をみて、先頭がsiで始まる行を検索する。この行は通常以下のようになっているはずである。

si::sysinit:/etc/rc.d/rc.sysinit

この/etc/rc.d/rc.sysinitでは、ネットワークの初期化や、ホスト名の設定といった様々な処理が行われる。


⑧initは次にランレベルを決定する。ランレベルは/etc/inittabのid行で指定されている。例えばランレベル5で起動する場合、/etc/inittabには以下のような設定がされている。

id:5:initdefault:

⑨設定されたランレベル用の起動スクリプトが実行される。このスクリプトは/etc/rcX.d(Xはランレベル)というディレクトリに格納されている(実際は/etc/init.dにあるスクリプトのシンボリックリンク)。



補足
マスターブートレコード中身
0バイト~445バイト目 ブートストラップローダー
446~509バイト目 パーティションテーブル(16バイトごとに4つのレコードが記録される)
 ブート識別子 (アクティブパーティションかどうかのフラグ)
 開始位置 (Starting CHS)
 終了位置 (Ending CHS)
 システム ID (パーティション ID。ファイルシステムの種類を記録)
 オフセット
 総セクター数

510~511バイト ブートシグニチャ(0XAA55)。BIOSはこの値をみてマスターブートレコードが有効かどうかを判断する

タグ:

+ タグ編集
  • タグ:
最終更新:2006年06月11日 23:39
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。