データの問題

データの問題とは、コンピュータが正常に起動するかしないかに関係なく、システム上でデータが壊れており、システムの修復が必要な場合を言います。このような状況では、システムに障害が発生する前の状態にシステムを復元するために、重要なデータをバックアップする必要があります。SUSE Linux Enterprise Serverには、システムのバックアップ/復元や、救済システム(壊れたシステムを外部から復元するのに使用できる)用に、専用のYaSTモジュールが用意されています。

パーティションイメージの管理

パーティション全体、さらにはハードディスク全体からバックアップを実行することが必要になる場合があります。Linuxには、ディスクの正確なコピーを作成できるddツールが付属しています。gzipと組み合わせることで、若干の領域の節約になります。

手順32.7 ハードディスクのバックアップおよび復元

  1. ユーザrootとしてシェルを起動します。

  2. ソースデバイスを選択します。これは、/dev/sdaなどが一般的です(SOURCEというラベルが付きます)。

  3. イメージを保存する場所を決めます(BACKUP_PATHというラベルが付きます)。これは、ソースデバイスとは異なる場所にする必要があります。つまり、/dev/sdaからバックアップを作成した場合、イメージファイルは/dev/sdaに保存しないということです。

  4. コマンドを実行して圧縮イメージファイルを作成します。

    dd if=/dev/SOURCE | gzip > /BACKUP_PATH/image.gz 
  5. 次のコマンドによりハードディスクを復元します。

    gzip -dc /BACKUP_PATH/image.gz | dd of=/dev/SOURCE

バックアップするパーティションのみが必要な場合は、SOURCEプレースホールダーを対応するパーティションに置き換えます。この場合、イメージファイルを同じハードディスクにおくことができます。ただし、パーティションは異なります。

重要なデータのバックアップ

YaSTシステムバックアップモジュールを使用すれば、システムのバックアップは簡単に管理できます。

  1. rootユーザでYaSTを開始し、システム+システムバックアップを順に選択します。

  2. バックアップに必要な詳細のすべて、アーカイブファイルのファイル名、スコープ、およびバックアップタイプを含むバックアッププロファイルを作成します。

    1. プロファイル管理+追加の順にクリックします。

    2. アーカイブの名前を入力します。

    3. ローカルバックアップをしたい場合は、そのバックアップの場所へのパスを入力します。ネットワークサーバ上にバックアップをアーカイブしたい場合は、IPアドレスまたはサーバの名前、およびアーカイブを保存するディレクトリを入力します。

    4. アーカイブタイプを決め次へをクリックします。

    5. どのパッケージにも属さないファイルをバックアップするか、アーカイブ作成の前にファイルのリストを表示させるかなど、使用するバックアップオプションを決定します。また、変更されたファイルが、時間のかかるMD5メカニズムを使用して識別されるようにするのかも決定します。

      エキスパートを使用して、ハードディスク領域全体のバックアップのためのダイアログに入ります。現在、このオプションはExt2ファイルシステムのみに適用されます。

    6. 最後に、ロックファイルまたはキャッシュファイルなど、バックアップの必要のない一部のシステム領域を、バックアップ領域から除外するための検索条件を設定します。項目を追加、編集、または削除して、必要にあった条件を設定し、OKを押して終了します。

  3. プロファイル設定を終了したら、Create Backup (バックアップの作成)を使用した即時バックアップの開始、または自動バックアップの設定ができます。他のさまざまな目的のために設定されたプロファイルも作成できます。

特定のプロファイル用に自動バックアップを設定するには、以下の手順に従います。

  1. プロファイル管理メニューから、自動バックアップを選択します。

  2. バックアップの自動開始を選択します。

  3. バックアップの頻度を決定します。毎日毎週、または毎月を選択します。

  4. バックアップの開始時間を決定します。これらの設定は選択されたバックアップの頻度に依存します。

  5. 古いバックアップを保存するか、保存する場合は何世代にするかを決定します。バックアッププロセスの自動的に生成されたステータスメッセージを受け取るには、rootユーザにサマリメールを送信するにチェックを入れます。

  6. 設定内容を適用し、指定した時刻にバックアップを開始するには、OKをクリックします。

システムバックアップの復元

YaSTシステムリストアモジュールを使用して、バックアップからシステム設定を復元します。バックアップの全体を復元するか、壊れたために古い状態にリセットする必要のある、特定のコンポーネントのみを選択します。

  1. YaST+システム+システムの復元の順にクリックします。

  2. バックアップファイルの場所を入力します。ローカルファイル、ネットワーク上でマウントされたファイル、またはフロッピーディスクおよびDVDなどの取り外し可能なデバイス上のファイルなどがあります。次に、次へをクリックします。

    次のダイアログでは、ファイル名、作成日、バックアップのタイプ、およびオプションのコメントなどのアーカイブプロパティのサマリが表示されます。

  3. アーカイブの内容をクリックして、アーカイブされた内容を参照します。OKをクリックすると、アーカイブプロパティダイアログに戻ります。

  4. エキスパート用オプションでは、復元プロセスを微調整するダイアログが開きます。OKをクリックすると、アーカイブプロパティダイアログに戻ります。

  5. 次へをクリックすると、復元するパッケージのビューが開きます。[承認]を押して、アーカイブ内のすべてのファイルを復元するか、[Select All][Deselect All]、および[Select Files]ボタンを使って、選択内容の微調整をします。RPMデータベースが壊れているか削除され、バックアップにこのファイルが含まれている場合にのみ、RPMデータベースの復元オプションを使用します。

  6. 承認をクリックすると、バックアップが復元されます。完了をクリックして、復元プロセスが完了したあと、モジュールを終了します。

壊れたシステムの復旧

システムが起動し正常に稼動するのに失敗する理由はいくつか考えられます。最も一般的な理由としては、システムクラッシュによるファイルシステムの破損や、ブートローダ設定の破損があります。

これらの状況を解決するため、SUSE Linux Enterprise Serverでは、2種類の方法を用意してます。それらは、YaSTシステム修復機能の使用、またはレスキューシステムの起動です。以降のセクションでは、両方のタイプのシステム修復について説明します。

YaSTシステム修復の使用

[Note]キーボードと言語設定

ブート後に言語設定を変更すると、キーボードの設定もそれに応じて変更されます。

YaSTシステム修復モジュールを起動する前に、お客さまのニーズを一番満たすように、モジュールを起動するモードを決めます。システム障害の重大度と原因(および担当者の専門知識)に応じて、3つのモードから選択できます。

自動修復

不明な原因でシステムに障害が起こった場合で、そもそもシステムのどの部分が失敗の原因となっているか分からない場合は、自動修復を使用します。広範囲に及ぶ自動化されたチェックがお使いのシステム上のすべてのコンポーネントで実行されます。この手順の詳細な説明については、32.6.4.1.1項 「自動修復」を参照してください。

カスタム修復

システムに障害が発生し、その原因がどのコンポーネントにあるか分かっている場合、カスタム修復を使用して、コンポーネントに対して行うシステム分析の範囲を限定することにより、冗長なシステムチェックを短縮できます。例えば、障害の前のシステムメッセージに、パッケージデータベースのエラーの可能性を示唆する記述があれば、分析と修復手順を、システムのこの側面の検査および復元に限定できます。この手順の詳細な説明については、32.6.4.1.2項 「カスタム修復」を参照してください。

エキスパート設定用ツール

障害が発生したコンポーネントとその修復方法がはっきりわかっている場合は、分析を実行せずに、直接、該当するコンポーネントの修復に必要なツールを適用できます。詳細については、32.6.4.1.3項 「エキスパート設定用ツール」を参照してください。

前で説明した修復モードから1つを選択し、以下で概説するようにシステム修復を続行します。

自動修復

YaSTシステム修復の自動修復モードを起動するには、次の手順に従います。

  1. SUSE Linux Enterprise ServerのインストールメディアをDVDドライブに挿入します。

  2. システムを再起動します。

  3. ブート画面で、インストール済みシステムの修復を選択します。

  4. 使用許諾契約に同意したら、次へをクリックします。

  5. [自動修復]を選択します

    YaSTは、ここでインストールされたシステムの広範囲に及ぶ分析を起動します。このプロシージャの進捗状況は、画面下部にある2つの進捗バーで表示されます。上のバーは現在実行中のテストの進捗状況を示します。下のバーは解析の全体の進捗状況を示します。上部のログウィンドウで、現在実行中のテストおよび結果を追跡することができます。詳細については、図32.4「自動修復モード」を参照してください。

    図32.4 自動修復モード

    自動修復モード

    以下のメインテストは、自動修復を実行すると毎回実行されます。さらに、それらには、多数のサブテストが含まれています。

    パーティションテーブルのチェック

    検出された全ハードディスクのパーティションテーブルの妥当性と一貫性が検査されます。

    スワップエリアのチェック

    インストール済みのシステムのスワップパーティションが検出およびテストされ、適用可能な場合は、それらのパーティションをアクティブにすることができます。システム修復の速度を上げるには、このアクティベーションを承諾する必要があります。

    ファイルシステムのチェック

    検出されたすべてのファイルシステムがファイルシステム固有の検査の対象となります。

    fstabエントリのチェック

    このファイルのエントリの完全性と一貫性が検査されます。有効なパーティションは、すべてマウントされます。

    パッケージデータベースのチェック

    最小構成のインストールの運用に必要なすべてのパッケージが存在しているか、検査されます。基本パッケージの解析もオプションとして可能ですが、基本パッケージの数が多いので、これは長時間かかります。

    ブートローダの設定のチェック

    インストールされているシステムのブートローダ設定(GRUBかLILO)の完全性と一貫性が検査されます。ブートデバイスとrootデバイスが調べられ、initrdモジュールの可用性が検査されます。

  6. エラーを検出するたびに、プロシージャが一時停止し、エラーの詳細および可能な解決策を提示するダイアログが表示されます。

    提案された修復を承認する前に、画面のメッセージを注意深く読みます。提案された修復を断る場合、システムは修復なしの状態のままになります。

  7. 修復プロセスが正常に終了した後に、OKおよび完了をクリックし、インストールメディアを取り出します。システムは自動的に再起動します。

カスタム修復

カスタム修復モードを起動し、システムのコンポーネントの一部を選択的に検査するには、次の手順に従います。

  1. SUSE Linux Enterprise ServerのインストールメディアをDVDドライブに挿入します。

  2. システムを再起動します。

  3. ブート画面で、インストール済みシステムの修復を選択します。

  4. 使用許諾契約に同意したら、次へをクリックします。

  5. カスタム修復を選択します。

    カスタム修復では、実行可能なテストのリストが、最初は、すべて実行対象として選択された状態で表示されます。全部のテスト範囲は、自動修復と合致します。損傷が存在していない個所が、既に判明している場合、対応するテストのチェックマークを消します。続行をクリックすると、より狭い範囲のテストプロシージャが開始され、実行時間が大幅に短縮されます。

    すべてのテストグループを個別に実行できるわけではありません。fstab エントリの解析は常に、既存のスワップパーティションも含めたファイルシステムの検証と結び付いています。YaSTでは、このような依存性の条件が自動的に満たされ、必要なテストが最少数で実行されます。

  6. エラーを検出するたびに、プロシージャが一時停止し、エラーの詳細および可能な解決策を提示するダイアログが表示されます。

    提案された修復を承認する前に、画面のメッセージを注意深く読みます。提案された修復を断る場合、システムは修復なしの状態のままになります。

  7. 修復プロセスが正常に終了した後に、OKおよび完了をクリックし、インストールメディアを取り出します。システムは自動的に再起動します。

エキスパート設定用ツール

SUSE Linux Enterprise Serverについて十分な知識があり、システム内の修復の対象が明確にわかっている場合は、システム分析をスキップして、直接、ツールを適用します。

YaSTシステム修復のエキスパート設定用ツールの機能を使用するには、以下の手順に従います。

  1. SUSE Linux Enterprise ServerのインストールメディアをDVDドライブに挿入します。

  2. システムを再起動します。

  3. ブート画面で、インストール済みシステムの修復を選択します。

  4. 使用許諾契約に同意したら、次へをクリックします。

  5. エキスパート設定用ツールをクリックし、修復オプションを選択します。

  6. 修復プロセスが正常に終了した後に、OKおよび完了をクリックし、インストールメディアを取り出します。システムは自動的に再起動します。

エキスパート設定用ツールでは、次のオプションで、障害の発生したシステムを修復できます。

新しいブートローダをインストールする

YaSTのブートローダの設定モジュールを起動します。詳細については、8.2項 「YaSTによるブートローダの設定」を参照してください。

インストールしたシステムをブートする

すでにインストールされているLinuxシステムのブートを試行します。

パーティションツールの起動

YaSTのパーティションのエキスパート設定ツールが起動します。

ファイルシステムの修復

インストール済みのシステムのファイルシステムを検査します。はじめに、検出された全パーティションの中から1つを選択するダイアログが表示され、検査対象を選択することができます。

失われたパーティションの復旧

損傷したパーティションテーブルの再構築を試みることができます。はじめに、検出されたハードディスクのリストが表示され、対象を選択します。OKをクリックすると検証が開始されます。コンピュータの速度およびハードディスクのサイズと速度によっては、このプロセスにしばらく時間がかかることがあります。

[Important]パーティションテーブルの再構築

パーティションテーブルの再構築は、難しい処理です。YaSTでは、ハードディスクのデータセクタを解析することにより、失われたパーティションの認識が試みられます。認識が成功すると、失われたパーティションが再構築したパーティションテーブルに追加されます。ただし、これは予想可能なすべての事例で成功するわけではありません。

システム設定のフロッピーへの保存

このオプションは、重要なシステムファイルをフロッピーディスクに保存します。それらのファイルの1つが損傷した場合は、ディスクから復元できます

インストールされたソフトウェアの確認

パッケージデータベースの整合性と、最も重要なパッケージの可用性を検査します。このツールを使うと、損傷しているインストールパッケージを再インストールできます。

レスキューシステムの使用

SUSE Linux Enterprise Serverは、レスキューシステムを装備しています。レスキューシステムは、RAMディスクにロードして、ルートファイルシステムとしてマウントできる小さなLinuxシステムで、これを利用して外部からLinuxパーティションにアクセスすることができます。レスキューシステムを使用して、システムの重要な部分を復元したり、適切な変更を行ったりできます。

  • 任意の種類の設定ファイルを操作できます。

  • ファイルシステムの欠陥をチェックして、自動修復プロセスを開始することができます。

  • インストールされているシステムを、他のルート環境内からアクセスすることができます。

  • ブートローダーの設定を確認、変更、および再インストールできます。

  • partedコマンドを使って、パーティションサイズを変更できます。このツールの詳細については、GNU PartedのWebサイト(http://www.gnu.org/software/parted/parted.html)を参照してください。

レスキューシステムは、さまざまなソースや場所からロードすることができます。一番簡単な方法は、オリジナルのインストールメディアからレスキューシステムをブートすることです。

  1. インストールメディアをDVDドライブに挿入します。

  2. システムを再起動します。

  3. ブート画面で、<F4>を押し、DVD-ROMを選択します。次に、メインメニューからレスキューシステムを選択します。

  4. Rescue:プロンプトに「root」と入力します。パスワードは必要ありません。

ハードウェア設定にDVDドライブが含まれていない場合は、ネットワークソースからレスキューシステムをブートできます。次の例は、リモートブートの場合です。DVDなど、他のブートメディアを使用する場合は、infoファイルを適宜変更し、通常のインストールと同様にブートします。

  1. PXEブートセットアップの設定を入力し、install=protocol://instsource行とrescue=1行を追加します。修復システムを起動する必要がある場合は、代わりにrepair=1を使用します。通常のインストールと同様に、protocolはサポートする任意のネットワークプロトコル(NFS、HTTP、FTPなど)を表しています。また、instsourceは、ネットワークインストールソースへのパスを表します。

  2. 項 「Wake on LAN」 (第14章 リモートインストール, ↑導入ガイド)に説明したように、Wake on LANを使用してシステムをブートします。

  3. Rescue:プロンプトに「root」と入力します。パスワードは必要ありません。

レスキューシステムが起動したら、Alt+F1Alt+F6を使って、仮想コンソールを使用することができます。

シェルおよび他の多くの便利なユーティリティ(マウントプログラムなど)は、/binディレクトリにあります。sbinディレクトリには、 ファイルシステムを検討し、修復するための重要なファイルおよびネットワークユーティリティが入っています。このディレクトリには、最も重要なバイナリも入っています。 たとえばステムメンテナンス用にはfdisk、mkfs、mkswap、mount、mount、init、およびshutdownがあり、ネットワークメンテナンス用にはifconfig、ip、route、およびnetstatがあります。/usr/binディレクトリには、vi editor、find、less、およびsshがあります。

システムメッセージを表示するには、dmesgコマンドを使用するか、または/var/log/messagesファイルを参照してください。

設定ファイルの確認と修正

レスキューシステムを使った環境設定情報の修正例として、環境設定ファイルが壊れたためシステムが正常にブートできなくなった場合を考えてみましょう。このような場合は、レスキューシステムを使って設定ファイルを修復します。

環境設定ファイルを修正するには、以下の手順に従ってください。

  1. 前述のいずれかの方法を使って、レスキューシステムを起動します。

  2. /dev/sda6下にあるルートファイルシステムをレスキューシステムにマウントするには、以下のコマンドを使用します。

    mount /dev/sda6 /mnt

    システム中のすべてのディレクトリが、/mnt下に配置されます。

  3. マウントしたルートファイルシステムのディレクトリに移動します。

    cd /mnt
  4. 問題の発生している設定ファイルを、viエディタで開きます。次に、設定内容を修正して、ファイルを保存します。

  5. レスキューシステムから、ルートファイルシステムをアンマウントします。

    umount /mnt
  6. コンピュータを再起動します。

ファイルシステムの修復と確認

一般的に、稼動システムではファイルシステムを修復できません。重大な問題が見つかった場合、ルートファイルシステムをブートできなくなることさえあります。この場合、システムブートはカーネルパニックで終了します。この場合、外部からシステムを修復するしか方法はありません。この作業には、YaSTシステム修復の使用を強くお勧めします(詳細は32.6.4.1項 「YaSTシステム修復の使用」参照)。ただし、手動でファイルシステムを確認、修復する必要がある場合は、レスキューシステムを起動します。レスキューシステムには、ext2ext3ext4reiserfsxfsdosfs、およびvfatの各ファイルシステムをチェックし、修復するユーティリティが用意されています。

インストール済みシステムへのアクセス

レスキューシステムからインストール済みのシステムにアクセスすることが必要な場合は、ルート変更環境でそれを行う必要があります。これは、たとえば、ブートローダの設定を変更したり、ハードウェア設定ユーティリティを実行するために行います。

インストール済みシステムに基づいたchange root(ルート変更)環境を設定するには、以下の手順に従ってください。

  1. まず、インストールしたシステムからのルートパーティションとデバイスファイルシステムをマウントします(デバイス名を現在の設定に変更します)。

    mount /dev/sda6 /mnt
    mount --bind /dev /mnt/dev
  2. 新しい環境にchange root(ルート変更)します。

    chroot /mnt
  3. /procおよび/sysをマウントします。

    mount /proc
    mount /sys
  4. 最後に、インストール済みシステムから、残りのパーティションをマウントします。

    mount -a
  5. これで、インストール済みシステムにアクセスできるようになります。システムを再起動する前に、umount -aを使ってパーティションをアンマウントし、exitコマンドを実行してchange root(ルート変更)環境を終了してください。

[Warning]制限

インストール済みシステムのファイルやアプリケーションにフルアクセスできますが、いくつかの制限事項もあります。実行中のカーネルは、レスキューシステムでブートされたカーネルであり、ルート変更環境でブートされたカーネルではありません。このカーネルは、必要最低限のハードウェアしかサポートしておらず、カーネルのバージョンが完全に一致していない限り(完全一致する場合ほとんどなし)、インストール済みシステムからカーネルモジュールを追加することはできません。そのため、たとえばサウンドカードなどにはアクセスできません。また、GUIも利用できません。

また、Alt+F1からAlt+F6を使ってコンソールを切り替えると、change root(ルート変更)環境は終了することに注意してください。

ブートローダの変更と再インストール

場合によっては、ブートローダが壊れてしまい、システムをブートできなくなることもあります。たとえば、ブートローダが正常に機能しないと、起動ルーチンは物理ドライブとそのLinuxファイルシステム中の場所とを関連付けられず、正常な処理を行うことができません。

ブートロードの設定を確認し、ブートロードを再インストールするには、以下の手順に従ってください。

  1. の説明に従って、インストール済みシステムにアクセスするための適切な作業を行います。32.6.4.2.3項 「インストール済みシステムへのアクセス」

  2. 次のファイルが第8章 ブートローダGRUBに示されているGRUBの設定ルールに従って正しく設定されているかどうかチェックし、必要に応じて修正します。

    • /etc/grub.conf

    • /boot/grub/device.map

    • /boot/grub/menu.lst

    • /etc/sysconfig/bootloader

  3. 以下のコマンドシーケンスを使って、ブートローダを再インストールします。

    grub --batch < /etc/grub.conf
  4. パーティションをアンマウントして、change root(ルート変更)環境からログアウトします。次に、システムを再起動します。

    umount -a
    exit
    reboot