2017年8月19日土曜日

Windowsのバックアップ機能に関する備忘録

Windowsには、ファイル履歴、Windowsバックアップ、システムイメージの作成の3種類のバックアップ方法がある。
それらの違いについてちょっと調べてみたけれどすぐに忘れてしまいそうなので(というか、きっと忘れる)、メモを残しておく。間違っているかもしれないけれど。

  • ファイル履歴
    基本的には単純なファイルコピー。指定ドライブのFileHistoryディレクトリにコピーされる。ファイル名の末尾にタイムスタンプが付加されるので古いファイルも残せて、このFileHistoryディレクトリをどこかにコピーしておけば最悪の場合でもユーザーファイルを取り出すことは容易(単なるコピーなので)
  • Windowsバックアップ
    ユーザーファイル(ライブラリおよび個人フォルダー)と、システムイメージの両方をバックアップでき、履歴も残せる。
    ユーザーファイルは、指定ドライブのルートディレクトリにそのPCに付けた「名前」のディレクトリを作成し、その中にzip形式として保存される。ディレクトリ単位で適当なサイズに分割されるようだ。差分ファイルは、日時を元にした新しいディレクトリに、変更されたファイルのあるディレクトリ毎、やはりzipファイルに保存される。zipファイルから直接バックアップファイルを取り出すこともできそうだ。
    一方、システムイメージの方は、「システムイメージの作成」と同様に、指定ドライブのWindowsImageBackupというディレクトリ内にVHD形式でパーティション単位で保存されているようだ。ユーザーファイルとは別ディレクトリになっているのがややこしいところ。
  • システムイメージの作成
    上で書いたように、指定ドライブのWindowsImageBackupというシステムディレクトリの中に、パーティション単位でVHD形式で保存される。


これらの機能は正常に動作している限りは非常に頼もしい機能なのだけれど、経験上、よく分からないエラーが出てバックアップが出来なかったり、復元ができないことがある。そして、ネットで検索しても、これといった解決策が見つからないか、やってみても全く解決しないことが多いように思う。
そこで、トラブって復元できないとき、上記のまとめを利用して少しでも多くのファイル・環境を復元する方法を考えてみる。

まず、「ファイル履歴」については、単純なファイルコピーなので個々のファイルを取り出すのは難しくない。ただし、ファイル名の末尾についた日付・時間を取り除くのは厄介だ。一つ二つのファイルなら良いのだが・・・。

「Windowsバックアップ」でファイルだけ取り出したいのであれば、zipファイルを順次展開すれば良いと思う。何処に入っているのかを探すのは大変かもしれないが、zipファイル内にはフルパスで記録されてるので、とりあえずzipファイルをまとめて適当な作業ディレクトリに解凍してから必要なファイルを探すのが良さそう。コマンドプロンプト上で、7z.exeにワイルドカードを渡せばまとめて展開してくれるようだ。

「Windowsバックアップ」のシステムイメージと、「システムイメージの作成」で作成したシステムイメージはVHD形式なので、とりあえずマウントすれば中のファイルを取り出すのは容易。
一方、ファイルだけでなく起動環境として復元したいがWindowsの復元機能ではエラーが出てどうしようもない場合はどうすればよいのか?基本的にはVHDの中身をまるごと所定のパーティションにクローンできればよい。あとは、起動パーティションやBCDを調整or再生成すれば起動環境としてほぼ復元できるはずだけれど、これがなかなかややこしい(というか、Windowsの起動の仕組みをよく理解しないと難しい)。まず、VHDの中身をそのまま物理ディスク(上のパーティション)に直接クローンする方法が見つからなかった。EASEUSとか使えばできるのかな?
VHDを物理ディスクにクローンする別の方法としては、マウントしてからVHD仮想ディスクに対してdismの/Capture-Imageを使っていったんwim形式にキャプチャする。そのwimを今度はdismの/Apply-Imageを使って物理ディスクに展開する方法がある。実際、DELLのPCがおかしくなったときはこの方法で復旧させたことがある。しかし、この方法はいかんせん時間がかかる。dismが遅すぎるのです。wim形式ファイルとdismは、WindowsのインストールやPCメーカーの出荷時イメージの復元に使われている(と思われる)ことが多いという点で動作が安定していて、まさに「神ツール」だと思うのですが・・・・。

0 件のコメント:

コメントを投稿