検索
連載

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

本連載は、Linux 認定試験 LPICに対応しています。一般的なLinuxユーザーレベルのトピックは省略し、システム管理とサーバ管理の内容を取り上げています。また、LPIC対策だけでなく、関連するトピックについて系統的な理解を問う問題も出題しています。連載の特徴は、対象となるプログラムのバージョンを可能な限り明記していること、比較的新しくまとまった解説がまだ少ないトピック、重要だが理解しにくいトピックを優先して取り上げていることです。問題を解き、その解説を読むことにより実践でLinuxを活用できる力を身に付けます。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

今回のディストリビューション:CentOS 4.4

問題を解く鍵 【1】【2】【3】

 このトピックに関連した設定や試験問題を解く際には、以下の項目がポイントになります。

【1】システムの起動シーケンスの概要を把握しておく

 システムの起動シーケンスを把握するとLinuxの仕組みや設定方法が分かり、システムトラブルへの対処もできるようになります。

 以下は一般的なLinuxの起動シーケンスです。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


【2】代表的なブートローダ GRUBとLILOの仕組みを把握しておく

 ブートローダはディスクの先頭ブロック(MBR:Master Boot Record)に書き込まれています。PCのマザーボード上のICに書き込まれたプログラムBIOS(Basic Input Output System)から呼び出されて実行され、カーネルをメモリにロードするプログラムです。Linuxの代表的なブートローダにはLILO(LInux LOader)とGRUB(GRand Unified Bootloader)があります。

LILOについて

 LILOはGRUBが開発される前まで、Linuxの標準のブートローダとして使用されてきました。設定ファイル/etc/lilo.confにカーネルとinitrdのファイル名、カーネルオプションなどを記述し、/sbin/liloコマンドにより設定を行います。

/etc/lilo.confの例

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


図1 LILO によるブート
図1 LILO によるブート

 設定ファイル/etc/lilo/confで指定したカーネルとinitrdの位置情報は、/boot/mapにディスクのセクタ番号で記録されます。カーネルとinitrdを再構成した場合は、たとえファイル名に変更がなくても、/sin/liloコマンドを実行して/boot/mapファイルの情報を更新する必要があります。

GRUBについて

 GRUBはGNUによって開発された高機能なブートローダです。現在は多くのLinuxディストリビューションでGRUBが使用されています。設定ファイル/boot/grub/grub.conf(CentOS 4.4の場合/boot/grub/menu.lstはgrub.confへのシンボリックリンク)にカーネルとinitrdのファイル名、カーネルオプションなどを記述し、/sbin/grubコマンドあるいはシェルスクリプト/sbin/grub-installにより設定を行います。

/boot/grub/grub.conf の例

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


図2 GRUBによるブート
図2 GRUBによるブート

 ブートローダによってカーネルや、カーネルを経由してinitに渡すオプションを指定できます。

 CentOS 4.4のgrub.confでは次のオプションが指定されています。

rhgb Red Hat Graphical Boot。システムのブートプロセスをグラフィカルに表示するオプションです。カーネルを経由してinitに渡され、シェルスクリプト/etc/rc.sysinitの中で実行されます
quiet ほとんどのカーネルメッセージを抑制し、表示を行わないオプションです

 また、次のようなオプション指定もできます。

init=/bin/bash カーネルが生成する1番目のプロセスをinitではなくbashに設定します。/etc/inittabの記述ミスでシステムが立ち上がらないときなど、この方法で立ち上げ、シェルから回復作業ができます

 現在立ち上がっているカーネルにどのようなオプションが指定されているかは/proc/cmdlineファイルで確認できます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


【3】initrdの役割と仕組みを把握しておく

 initrd(initial ram disk)はブートローダによってメモリにロードされる小さなルートファイルシステムです。カーネルは起動時にこのinitrdをマウントし、initrdの中のプログラムやモジュールを利用してディスク上の本来のルートファイルシステムをマウントします。

 initrdの中にはext2ファイルシステムモジュールext3.ko、Journaling Block Deviceモジュールjbd.koが含まれていて、インタプリタnashがinitスクリプトを実行することにより本来のルートファイルシステムがマウントされます。initrdの中のローダブルモジュールのバージョンはカーネルバージョンと同一である必要があるので、カーネルを再構築したときはmkinitrdコマンドによりinitrdを作り直す必要があります。

(実行例)

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 initrdにはcpio形式とファイルシステム形式があります。CentOS 4.4ではcpio形式です。gzipで圧縮されたinitrdを解凍した後、それぞれのinitrdに次のようにしてアクセスします。

 cpio形式のinitrdを展開する

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 ファイルシステム形式のinitrdをマウントする

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る