連載
» 2008年09月30日 00時00分 公開

Linuxシステムの起動と停止の手順実践でも役立つLPICドリル(6)(2/4 ページ)

[大竹龍史,ナレッジデザイン]

今回のディストリビューション: CentOS4.4、Fedora8

問題を解く鍵 【4】【5】

【4】initがランレベルに対応して起動するrcスクリプトとサービスの仕組みを把握しておく

 カーネルがinitを起動した後のシーケンスは次のようになります。

init
initは起動すると/etc/inittabを読む
 
/etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l3:3:wait:/etc/rc.d/rc 3
システムのランレベルは第3フィールド(アクションフィールド)がinitdefaultと指定のあるエントリの第2フィールドで指定する。この例ではシステムのランレベルとして3が指定されている
 
/etc/rc.d/rc.sysinit
最初にrc.sysinitが実行される
/etc/rc.d/rc 3
ランレベル3が指定された場合、3を第2フィールドに含むエントリの第4フィールドのコマンド、/etc/rc.d/rc 3が実行される
 
/etc/rc.d/rc3.d/K*
/etc/rc.d/rc3.d/S*
ランレベル3が指定された場合は/etc/rc.d   /rc3.dの下のシェルスクリプトが実行される


 ランレベル3の場合は/etc/rc.d/rc3.dの下のKとSで始まるシェルスクリプトが実行されます。

 ランレベル5の場合は/etc/rc.d/rc5.dの下のKとSで始まるシェルスクリプトが実行されます。

 Kで始まるスクリプトはプロセスをkillするスクリプト、Sで始まるスクリプトはプロセスをStartするスクリプトで、いずれも/etc/init.dの下のスクリプトへのシンボリックリンクです。Sで始まるシンボリックリンクを作ることにより、システムの立ち上げ時にサービスを起動する設定ができます。

(例)システムのランレベルが3の場合、システムの立ち上げ時にnamedを起動するには次のシンボリックリンクを作ります。
/etc/rc.d/rc3.d/S13named -> /etc/init.d/named


【5】システム起動時の出力メッセージを把握しておく

 システム起動時の出力メッセージや画面表示を把握することにより、起動シーケンスの進行状態を知ることができ、トラブルが発生したときに、どの部位に問題があるのかを推測できます。

grubの出力メッセージ:

メニュー画面表示の前

Booting from Hard Disk...
GRUB Loading stage2..


図3 grubのメニュー画面 図3 grubのメニュー画面

grubの出力メッセージ:

メニュー画面表示の後

 Booting 'CentOS-4 i386 (2.6.9-42.EL)' 
root (hd0,0) 
 Filesystem type is ext2fs partition type 0x83 
kernel /boot/vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb 
  [Linux-bzImage setup=0x1400 size=0x16dd65] 
initrd /boot/initrd-2.6.9-42.EL.img 
  [Linux-initrd @ 0x17f89000 0x61615 bytes] 
Uncompressing Linux...Ok booting the kernel.


カーネルの出力メッセージ(抜粋):

カーネルオプションにquietを指定すると立ち上げ時には表示されませんが、立ち上げ後にdmesgコマンドで確認できます

Linux version 2.6.9-42.EL (buildcentos@build-i386) (gcc version 
3.4.6 20060404 (Red Hat 3.4.6-3)) #1 Sat Aug 12 09:17:58 CDT 2006 
............................................
Kernel command line: ro root=LABEL=/ rhgb 
.........................................
Memory: 385212k/393192k available (2150k kernel code 7416k reserved 
712k data 164k init 0k highmem) 
Detected 1596.513 MHz processor.
.........................................
Probing IDE interface ide0...
hda: QEMU HARDDISK ATA DISK drive 
Using cfq io scheduler 
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14


initrdの出力メッセージ:

カーネルオプションにquietを指定すると立ち上げ時には表示されません

Red Hat nash version 4.2.1.8 starting
Mounted /proc filesystem
Mounting sysfs
Creating /dev
Starting udev
Loading jbd.ko module
Loading ext3.ko module
Creating root device
Mounting root filesystem


init、シェルスクリプトの出力メッセージ(抜粋):

カーネルオプションにrhgbを指定した場合は、rhgbの「詳細の表示」を選択したときのみ表示されます

INIT: version 2.85 booting
        Welcome to CentOS release 4.4 (Final) 
        Press 'I' to enter interactive startup.
Starting udev:                                        [ OK ]
Initializing hardware...storage network audio done    [ OK ]
...............................
Starting sshd:                                        [ OK ]
Starting xinetd:                                      [ OK ]


rhgbによる立ち上げの画面表示:

システムのランレベルを5に指定し、かつカーネルオプションにrhgbを指定したときに、シェルスクリプトの出力メッセージの代わりに表示されます(図4

図4 図4

 上記の各メッセージのうち、カーネルの出力メッセージはカーネルメモリ内のリングバッファ(ring buffer:循環バッファ)に格納されます。システムが立ち上がって、立ち上げメッセージが画面から消えた後でも、ログインすればdmesgコマンドで表示できます。

 また/var/log/dmesgファイルにも格納されるので、catコマンドなどで表示できます。

(例)
# dmesg
Linux version 2.6.9-42.EL (buildcentos@build-i386) (gcc version 3.4.6 20060404 (
Red Hat 3.4.6-3)) #1 Sat Aug 12 09:17:58 CDT 2006


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。