Plamo LinuxのBoot(起動)の流れ

パソコンの電源が投入されたあと、MBR(マスターブートレコード)内のブートローダーが ロードされます。ブートローダーは、主にLILOやGRUBといったものがあります。

とりあえず、GRUBの例を次に示します。Plamo Linuxの場合、GRUBの設定は /etc/grub.confになります。

# GRUB configuration file
default 0
timeout 30
fallback 1
splashimage (hd0,1)/boot/grub/grubimg.xpm.gz

title Plamo-4.03 (hda2)
  root (hd0,1)
  kernel (hd0,1)/vmlinuz root=/dev/hda2 ro vga16 unicon=eucjp

詳細は、ブートローダーを参照してください。

カーネルがロードされると最初のプロセスとして /sbin/initが起動されます。/sbin/initは inittabを読み各くスクリプトが実行されます。

それでは、inittabの中を順に見ていきます。 (Plamo Linuxでは、/etc/inittab)

#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
# Default runlevel.
id:3:initdefault:

id:3:initdefault:で、デフォルトのランレベルを設定しています。ランレベルとは、OSの 動作の状態を示すもので、シングルユーザーやマルチユーザーなどを示します。

この場合、デフォルトのランレベル3で動作するということになります。

# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S

デフォルトのランレベル設定後、システムの初期化がrc.Sスクリプトによって実行されます。

PATHの設定やスワップを有効にしたり、ハードのチェック等を行います。

# Script to run when going single user (runlevel 1).
su:1S:wait:/etc/rc.d/rc.K

su:1S:wait:/etc/rc.d/rc.Kは、シングルユーザモードでの動作を決定するスクリプトです。

# Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M

次は、ランレベルが2,3,4,5(マルチユーザ)の時に初期化すべきスクリプトrc.Mが実行されます。

rc.Mでネットワークの設定などが行われrc.locaが呼ばれます。

# What to do at the "Three Finger Salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -rf now

# Runlevel 0 halts the system.
l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system.
l6:6:wait:/etc/rc.d/rc.6

# What to do when power fails (shutdown to single user).
pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"

# If power is back before shutdown, cancel the running shutdown.
pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"

# If power comes back in single user mode, return to multi user mode.
ps:S:powerokwait:/sbin/init 5

次に、[Ctrl]+[Alt]+[Delete]キーが押された場合のスクリプトや電源オンオフ時の 動作などが指定されています。

c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux

getty(agetty)が 6 個起動しコンソールが使用可能になり、login: プロンプトを表示します。

/sbin/agettyは、/etc/issueを読みコンソールにその内容を表示しlogin: プロンプトで入力を 待ちます。ログイン名が入力されると/bin/loginを実行します。