第 1章ブートプロセス

Turbolinux 11 Server がブートする過程で、どのような処理が行われているかを把握することは、システム管理者として理解しておきたい重要な事項の 1 つです。この章では、カーネルが最初に実行する /sbin/init プログラムが実行されるまでの基本的な処理を見ることにより、ブートローダー、Initial Ramdisk(/boot/initrd)、ランレベル、init プロセスの役割について解説します。

1.1. ブートプロセスの概要

コンピュータの電源を投入すると、最初に不揮発メモリに書き込まれた BIOS(Basic Input/Output System)プログラムが実行されます。BIOS は、マザーボードに接続されている周辺機器の検出とチェックを完了すると、BIOS に設定された検索順序に従いブートデバイスの検出を開始します。そして、ハードディスクの先頭セクタ(MBR)にインストールされたブートローダー(GRUB、LILO など)をメモリへロードし、その後の処理はブートローダーへ引き渡します。Linux を起動するブートローダーとして広く一般的に利用されているものには、LILO(LInux LOader)と GRUB(GRand Unified Bootloader)があります。Turbolinux 11 Server が標準で採用しているブートローダーは GRUB です。GRUB の概要や設定ファイル(/boot/grub/grub.conf) の詳細、また GRUB が備えるコマンドの使用方法については、第2章 で解説します。

処理を引き継いだブートローダーは、ハードディスクにある Linux カーネル(/boot/vmlinuz) と Initial Ramdisk(/boot/initrd)をメモリへロードし、カーネルを起動します。この時点で、カーネルは最も基礎的なレベルで動作を開始します。カーネルは、ハードディスク上の / ファイルシステムをマウントする前に、Ramdisk へロードされた小さなファイルシステム(initrd)を一時的な / ファイルシステムとしてマウントし、ハードディスク上の / ファイルシステムをマウントするために必要なデバイスドライバ(カーネルモジュール)をロードします。デバイスドライバのロードが完了すると、一時的にマウントしていた / ファイルシステムをアンマウントし、ハードディスクにある本当の / ファイルシステムをマウントし直します。そして、カーネルは最初のプロセスである /sbin/init プログラムを実行します。init プログラムは Turbolinux 11 Server の初期化処理やサービスを開始し、最後にユーザーがシステムにログインするためのプロンプトを出力するまでの処理を行います。