LPIC-2 - 201試験 - 202:システムの起動 - 202.2 システムを回復する

Last Update : September 18 2014 21:34:18

     

a. initの概要

プログラムinitは、プロセスID 1のプロセスであり、必要な方法でシステムの初期化を実行します。init は特別な役割を果たします。 initはカーネルによって直接起動され、通常はプロセスを強制終了するシグナル9が使えないようにします。 他のすべてのプログラムは、initまたは子プロセスのいずれかによって直接起動されます。

initの中心的な設定は、/etc/inittabファイルで行われています。このファイルはランレベルを定義しています。 このファイルはまた、各レベルで利用可能なサービスとデーモンを指定しています。 /etc/inittabのエントリに応じて、initが複数のスクリプトを実行します。 わかりやすくするために、initスクリプトと呼ばれるこれらのスクリプトはすべて、ディレクトリ/etc/init.dにあります。

システムを起動し、シャットダウンするプロセス全体は、initによって管理されます。 この点から見ると、カーネルは、他のプログラムからの要求に従って、他のすべてのプロセスとCPU時間やハードウェアアクセスを管理するバックグラウンドプロセスと考えることができます。


b. リカバリモードの操作(レスキューモード)

1. シングルユーザモード

ここでいうシングルユーザーモードとはランレベルで説明しているシングルユーザーモードと同じものです。

シングルユーザーモードは必要最小限の デーモン 以外は起動しませんし、パスワード不要で自動的に "root" アカウントで ログイン することになります。
つまりシングルユーザーモードで起動すれば、 ログ ファイルを解析したり ntsysv コマンド でデーモンの起動情報を変更するなりして問題の対処に当たることが出来るわけです。テキスト エディタで設定ファイルを修正することもできます。

また起動後に passwd コマンドでそのまま "root" アカウント のパスワードを再設定できますから、"root"のパスワードを忘れてしまったときなども簡単に対処することができます。

システムをシングルユーザーモードで起動するには "/etc/inittab" を書き換えて再起動するか ログインシステムの変更方法について(WBEL4) ログインシステムの変更方法について(CentOS4) ログインシステムの変更方法について(CentOS5) 、別のランレベルで稼働中に telinit コマンドで切り替えるのが普通です。

しかし既にシステムが起動できない状態にあるときにはこういった方法は使えませんので強制的にシングルユーザーモードで起動することになります。
シングルユーザーモードではネットワークが利用できませんから、リモートではなく直接操作することになります。

  1. まず コンピュータ の電源を入れたら、画面上に Linux OS の最初の起動画面、が出たときに e キーを押します。すると以下のような カーネル バージョンの選択画面になります。
  2. このリストでハイライトしているカーネルバージョンが現在使用中のものですから、ここでもそのまま e キーを押します。
  3. すると以下のような OS の起動選択画面になりますから、ここで "kernel~" で始まる行をカーソルキーで選び、もう一度 e を押します。
  4. すると、以下のようなコマンド入力画面になります。

    grub edit> kernel /vmlinuz-・・・crashkernel=auto

    ここで "[スペース]single" とタイプして Enter を押します。

    grub edit> kernel /vmlinuz-・・・crashkernel=auto  single

  5. すると" single"が追加された起動コマンドラインが起動選択画面にリストされます。
  6. ここでこれを選択して b キーを押します。するとシステムがシングルユーザーモードで起動します。

ここで実施したシングルユーザーモードでの強制起動は一時的なものですので、 reboot コマンドなどで再起動すると強制起動前のランレベルで起動するようになります。


2. レスキューモード

サーバー構成するハードディスクに障害が起こったようなケースでは、起動時に必要なデバイスがマウントできず、起動できなくなることがあります。
シングルユーザーモードはハードディスクにインストールされているシステムから起動しなければなりませんから、こういう場合には当然役に立ちません。
そこで Linux OS では、インストール CD から起動して、インストールCD内の起動システムとメモリ空間だけを利用して起動させる レスキューモード が準備されています。

レスキューモードを利用しなければならないときというのはシステム上にかなり深刻な事態が起こったときに限られるはずで、何の前触れもなくシステムが不調になってレスキューモードのお世話になるようなケースでは、ある程度のデータの喪失は覚悟する必要はありますし、 ハードウェア の交換なども必要になるかもしれません。

レスキューモードは、稼働中のものと同じ ディストリビューション のインストールCDから起動して呼び出します。
インストールCDからコンピュータが起動したら一番最初の画面ですぐに、

Boot: linux rescue [Enter]

通常はこのあと、操作言語の指定とキーボード種別の指定のダイアログが呼び出されますので、順に "Japanese" 、 "jp106" を選択すればOKです。

このあと、Linux OSのインストーラから提供されるデバイスドライバで利用可能な NIC が検出されると、ネットワークの設定を行うか否かのダイアログが表示されます。

ここで 「はい」 を選択するとここからネットワーク設定のダイアログに移りますので、お使いのネットワーク環境に合わせて各パラメータを設定していきます。もちろん一時的に設定するだけのものですから、利用可能であれば DHCP に設定しても構わないでしょう。

ネットワークの設定が終わったら、既存のファイルシステムの読み込みを行うかどうかのダイアログが表示されます

ここではひとまず 「続行」 を選択して先へ進みます。

もしも既存のファイルシステムに問題がない場合はここで自動的に読み込まれて以下のようなダイアログが表示されます。

ここで 「OK」 ボタンを押すと既存のファイルシステムが "/mnt/sysimage/" 以下にマウントされてレスキューモードが起動します。
このあと、ダイアログの説明のとおり

sh-2.05b # chroot /mnt/sysimage [Enter]

を実行すると、CDから起動したシステムではなく既存のシステムがルートディレクトリとなって後の操作を行うことができるようになります。

"chroot" による作業を終了したい場合は exit Enter とタイプします。

そしてレスキューモードを終了して再起動するには、chrootを抜けた後にもう一度 exit Enter とタイプします。

もしも既存システムのマウントがうまくいかないときは、前のダイアログで 「読み取りのみ」 あるいは 「スキップ」 を選択して先に進みます。
「スキップ」 を選択した場合、現在起動中のファイルシステム上に mkdir コマンド で適当なディレクトリを作成し、既存のデバイス名に対して個別に mount コマンドの実行を試みることになります。


z. 出題範囲概要

●主要な知識範囲
inittab
GRUB
grub shell
●重要なファイル、用語、ユーティリティ
init mount fsck telinit


  [ 例題 ] 
  1. 201:202.2 問01  起動時のシステム回復


     

www.it-shikaku.jp