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を実行します。