運用
システム・クラッシュからの復活

1.「システムの復元」とは?

泉祐介+デジタルアドバンテージ
2002/04/03


 「システムの復元」とは、簡単にいえば、システムが正常に動作している時点の状態(レジストリや各種システム・ファイルなど)を保存しておき、万一システムが正常に動作しなくなったときに、保存された状態に戻すことで、以前の正常な状態を取り戻せるようにするという機能である。すでに述べた通り、この「システムの復元」の機能はWindows Meで初めて搭載され、その大幅な改良版がWindows XPに搭載された。

 「システムの復元」の大きな特徴は、「システムの復元」のためのサービスがバックグラウンドで常に実行されており、一定の時間間隔ごと、あるいはドライバを更新するなど、システム構成が変更されようとしているときに、システムの状態が自動的に保存されることだ(希望するなら、マニュアルで状態保存を指示することも可能)。「システムの復元」はデフォルトで有効になっており、ユーザーが意識しないところで常に状態が保存され、万一のときに備えている。

 「システムの復元」によって保存されたシステムの状態は、「復元ポイント(restore point)」と呼ばれる。最初の復元ポイントは、Windows XPをインストールしたときに保存される。つまりこの復元ポイントを使えば、Windows XPのインストール直後の状態にシステムを戻すことが可能である。「システムの復元」でシステムを以前状態に戻すように指示すると、復元ポイントに保存されている情報を書き戻すと同時に、復元ポイントの作成時以降に作成されたファイルなどは削除される(ただし、「システムの復元」が対象とするもののみ)。

「システムの復元」のはたらき
「システムの復元」では、システムが正常に稼働している状態を保存しておき、万一システムが正常に稼働できなくなったら、過去に保存した状態のデータを書き戻すことで、システムを復元する。

 ただしここで注意点を1つ。以下で詳しく述べる通り、「システムの復元」はシステムの起動などに関連する一部のファイルを保存するだけで、基本的にユーザーが作成したデータ・ファイルなどは保存しない。従って、データ・バックアップの代わりとして使えるものではない。貴重なデータについては、ユーザー自身がしかるべき方法でバックアップをとる必要がある。

「システムの復元」のしくみ:システム・ファイルの操作の監視

 Windows XPでは、デフォルトで「システムの復元」用のサービスがバックグラウンドで実行されている。

コントロール・パネルの[管理ツール]−[サービス]から表示した「システムの復元」用のサービス
このサービスは、デフォルトではバックグラウンドで常時実行されており、ディスク・アクセスを監視し、システム状態の変更を検出すると、その内容をログに記録する。そして復元ポイントの作成時には、このログなどを元に、必要なデータが保存される。
  「システムの復元」用のサービス。デフォルトでは、システム起動時にこのサービスも開始され、常にバックグラウンドで実行される。

 このサービスは、ファイル・システム・フィルタ・ドライバと呼ばれるカーネル・レベルのドライバを利用して、Windowsの中核となるシステム・ファイルやアプリケーション・ファイルに対する操作を監視している。そして、それらのファイルに対する変更処理を検出すると、変更処理を実行する以前のファイルの状態を記録し、ファイルをコピーまたは移動する。例えばファイルの削除が実行されたら、フィルタによって削除処理に割り込み、当該ファイルを別の場所にコピーし、削除処理によってファイルがコピーされたことをログに記録しておく。このようにして「システムの復元」では、システム・ファイルに加えられた変更内容を逐一追跡し、復元ポイントを保存できるようにしている。

 「システムの復元」で変更の監視対象となるディレクトリやファイルの拡張子(あるいは逆に、監視の除外対象となるディレクトリやファイル)の情報は、%SystemRoot%\system32\Restore\Filelist.xmlというXML形式のファイルに記録されている。ただしこのファイルには、システム・ファイル属性が付けられており、標準状態のエクスプローラでは表示されない。ファイルを表示させる方法については、以下のコラム「Filelist.xml、System Volume Informationを表示する」を参照のこと。

Filelist.xmlファイルの内容
「システムの復元」で監視対象、あるいは監視除外対象となるファイルやディレクトリ、ファイルの拡張子などの情報は、XML形式でファイルに記述されている。

 詳細はご自分でFilelist.xmlファイルの中身をご覧いただくとして、「システムの復元」によって監視・復元の対象となる主要なデータを挙げると次のようになる。

  • レジストリ
  • 各ユーザーのデスクトップや[スタート]メニューの内容など(ローミング・ユーザー・プロファイルを使用している場合は対象外)
  • .dll/.exe/.inf/.ini/.sys/.vxdなどの拡張子を持つシステム関連ファイル(具体的な拡張子の一覧は、Filelist.xmlの<EXTENSIONS>セクションで指定されている)
  • IIS(Internet Information Server)の設定

 一方、監視・復元の除外対象となるデータは次の通り。

  • ページ・ファイル(仮想メモリ用のスワップ・ファイル)やハイバネーション関連のファイル
  • ごみ箱
  • 各ユーザーのプロファイル・フォルダ以下のデータのうち、My Documentsフォルダ、Tempフォルダ、インターネット関連のフォルダ(お気に入り、履歴、Cookies、インターネット一時ファイル)など
  • 文書ファイルや画像ファイルなどのデータ・ファイル(例えば、.txt/.doc/.xls/.pdf/.bmp/.jpeg/.gif/.png/.eps/.html/.cssなどの拡張子を持つファイル)
  • Microsoft OutlookやOutlook Expressによるメール・データなどを保存するストレージ・ファイル

Filelist.xml、System Volume Informationを表示する

 監視/非監視対象のファイル一覧を記録したFilelist.xmlや、「システムの復元」によってシステム情報が保存されるSystem Volume Informationフォルダ(各ドライブの「System Volume Information」フォルダ、詳細は後述)にはシステム・ファイル属性が付けられており、標準設定のエクスプローラでは表示できない。これらのファイル/フォルダを表示したければ、エクスプローラの[ツール]−[フォルダ オプション]から表示されるダイアログの[表示]タブ−[詳細設定]リストボックスにある[保護されたオペレーティング システム ファイルを表示しない]チェック・ボックスをオフにする(デフォルトではこれがオンになっている)。

 さらに、System Volume InformationフォルダがNTFSボリュームに存在するときには、Administratorsグループに所属するアカウント(管理者権限を持つアカウント)でログオンし、フォルダに対する読み取り権限をユーザーに明示的に与えなければ、内容を見ることはできない。ただし、このフォルダの内容をうっかり消したりすると、復元ポイントが失われてしまうので操作する場合には十分注意されたい。

「システムの復元」のしくみ:復元ポイント作成のタイミング

 システム・ファイルの変更によって記録された監視ログなどの情報を元に、復元ポイントが作成される。復元ポイントは、次のタイミングで作成される。ただし復元ポイントの作成は、コンピュータがアイドルの状態でなければ開始されない。

作成のタイミング 詳細
インストール時 Windows XPへのアップグレード時、またはWindows XP搭載コンピュータを初めて起動したとき
アプリケーションのインストール 「システムの復元」に対応したインストーラ(Windows InstallerやInstallShield)を使ってアプリケーションをインストールしたとき
Windows Update Windows Update(Windowsの自動更新機能)を使ってシステムを更新したとき
署名されていないデバイス・ドライバのインストール Windows Hardware Quality Lab(WHQL)によって保証されておらず、デジタル署名されていないデバイス・ドライバをインストールしたとき
バックアップ・ユーティリティによる回復 Windows XPに付属するバックアップ・ユーティリティを使って回復処理を実行すると、回復処理を実行する直前の復元ポイントが作成される
タイマ レジストリに設定されたタイマの時間(デフォルトでは24時間)が経過したとき。コンピュータを通電したままにすると、24時間ごとに復元ポイントが作成される
復元の実行 「システムの復元」を使って過去の状態を復元したとき。復元を実行する直前の状態の復元ポイントが作成される
マニュアル指定 マニュアル(手動)で復元ポイントの作成を指示したとき
復元ポイントの作成タイミング

「システムの復元」のしくみ:情報の保存先

 復元ポイントの作成が開始されると、前出の監視対象ファイルに加え、ユーザー・アカウント情報やハードウェア/ソフトウェア設定、システム起動用のファイルなど、システムの状態を保存するために必要な情報が各ドライブの\System Volume Informationフォルダ以下にフォルダが作成されて保存される。具体的には、「_restore」にマシン名を追加した名前のフォルダが作られ、その下に「RP」+「(番号)」(RP0、RP1、RP2…。RPはRestore Pointの略だと思われる)というフォルダが作成され、これ以下に、監視によって得られた情報に基づいて、必要なファイルのバックアップやレジストリのスナップショットなどが保存される。

 このとき、保存先となるシステム・ドライブがNTFSボリュームなら、NTFSのファイル圧縮機能を使って保存データが圧縮される。またコラム「Filelist.xml、System Volume Informationを表示する」で述べた通り、保存先がNTFSボリュームの場合には、特殊なファイル属性が設定されており、明示的に設定を変えなければ、復元ポイントのデータを参照したり、削除したりすることはできない。一方、保存先ボリュームがFAT32の場合には、データは圧縮されない。また特別なアクセス保護もないので、誤って復元ポイントを削除してしまう危険などがある。やはり特別な理由がなければ、Windows XPのシステム・ボリュームなどにはNTFSボリュームを利用すべきだろう。

 各復元ポイントにおけるフォルダの容量は、それぞれの使用環境や、前回の復元ポイントを作成した時点から何を変更したかによって大きく変化する。ほぼWindows XP Professionalをインストールした直後の状態で手元で実験してみたところ、システム・ドライブがNTFSボリュームの場合で、レジストリのスナップショットはおよそ20〜25Mbytesぐらいで、通常はそれに数Mbytes〜10Mbytes程度を加えたサイズだった。

 しかし大規模なアプリケーションをインストールした直後に作成した復元ポイントのフォルダ・サイズは、100Mbytesを超える場合もあった。このような挙動から考えて、「システムの復元」では、システムに対して加えられた変更点だけを累積的にバックアップしており、復元時には、必要に応じてバックアップを必要な数だけさかのぼっていきながら、復元処理を実行するものと予想される。

 なお、復元ポイント用の領域としては、標準設定の場合、各ドライブ容量の12%までとなっている(ただしドライブが4Gbytes未満なら400Mbytes、400Mbytes未満ならドライブの全容量が最大保存サイズの標準設定となっている)。復元ポイントの作成によって、保存領域のサイズがこれを超えてしまう場合は、古い復元ポイントから順に削除される。また、作成してから90日間が経過した復元ポイントについても削除されることになっている(保存日数はカスタマイズ可能、詳細は後編で述べる)。

 後編では、「システムの復元」による復元ポイントの作成と、復元処理を実際に行い、注意点や「システムの復元」の各種カスタマイズ方法などについて解説する


 INDEX
  [運用]システム・クラッシュからの復活
  1.「システムの復元」とは?
    2.「システムの復元」を起動し、復元ポイントの状況を確認する
    3.システムを復元する
    4.復元ポイントの自動作成間隔、復元ポイントの保存期間を変更する
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間