Windows のクライアント PC をバックアップするための覚え書き(理論編)

仕事でもプライベートでも Windows を使っていて、何度かバックアップのお世話になっているので、良い機会だし Windows PC のバックアップについて書いてみる。

二部構成で行く。本記事は前編として理論編を。

後編はこちら: Windows のクライアント PC をバックアップするための覚え書き(実践編)

前提

  • 個人の Windows PC をバックアップする

バックアップとは

帰るまでが遠足です、ではないが「リストアするまでがバックアップ」。リストア手順も確認しておくこと。

そもそもバックアップは必要?

コンテキスト次第だが、私の場合は以下のとおりなので必要。

  • 毎日使用(基本的に電源入れっぱなし)
  • 4-5 年に一度くらい、PC の寿命が来る
  • 1年に一回は PJ や所属が変わる(変わると使う PC も切り替わる)
  • 2-5 年に一度くらい、会社全体で Windows アップグレードが入って PC 切り替えが入る

バックアップとリストアとエクスポートとインポート

  • バックアップ …… データの予備を確保すること。
  • リストア …… バックアップしたデータを復旧すること。
  • エクスポート …… 環境やアプリの設定を外部ファイル化すること
  • インポート …… エクスポートしたファイルを読み込んで当該環境やアプリの設定を復元すること

エクスポートは単に設定をファイル化しただけ。バックアップはエクスポート + エクスポートしたファイルを別ディスクに保存、までやる。

インポートはリストアの一種。リストアにはインポート以外にも「手作業で設定画面や設定ファイルを巡って頑張って復旧する」などがある。

バックアップ対象

バックアップ対象は以下に大別できる。

  • 環境(Windowsそのものの設定)
  • アプリ
  • ファイル

環境 は OS そのものの設定のこと。Windows で言えばコントロールパネルから辿れる設定項目全般である。設定値の実体はレジストリやシステムファイルとして散財しており、バックアップは簡単ではない。

アプリ はアプリケーション、ツール、ソフトウェア全般のこと。さらに以下に分類できる。

  • アプリ
    • 環境系 …… RubyPython、Node、Cygwin など言語系や処理系全般。とにかくファイル数ファイルサイズが桁違いでバックアップするのは非現実的。
    • インストール系 …… C:\Program files にインストールされるようなやつ。設定は %appdata% やレジストリに保存する。バックアップは割としんどい。
    • 解凍系 …… zip 解凍すれば使えるようなやつ。設定は同フォルダの ini や xml に保存する。フォルダ丸ごとバックアップするだけでいいから楽。

ファイル はデータファイル全般のこと。たとえば文書、コード、メモ、設定ファイル、ドキュメント、動画像など。バックアップ難度はファイル次第だが、一般的にはファイル数ファイルサイズが大きいとか、機密性が高いとかすると高くなる。

バックアップの難度

バックアップの難易度は以下パラメータに依存している。

  • Time バックアップ時間(≒コピー時間)
  • Difficuly 実現難易度
  • Manual Cost 手作業量
  • Security Cost セキュリティコスト

バックアップ時間 はバックアップに要する時間。コピー完了までの時間と考えて良い。ファイル数が大きい、ファイルサイズが大きいと肥大化する。

実現難易度 はバックアップ(特にリストア)を実現するのがどれだけ難しいかということ。難易度が低いとは、たとえばフォルダ毎コピペするだけで完了するくらい。難易度が高いとは、たとえばコピペだけでは完了せず多数の設定ファイルやシステム設定をいじらねばならない(たとえばエクスポート/インポートに対応してなくて手動でメモ&再設定するしかないとか)ケース。

手作業量 はバックアップ実行時にどれだけ手作業が必要かということ。手作業量が多いとは、たとえばファイルシステムGUI を辿って手を動かさないと完了できないようなケース。逆に手作業量が小さいとは、たとえばコマンド一発で完了できるケース。

セキュリティコスト はバックアップ対象のセキュリティ担保に要するコストのこと。個人データや業務データなどはこのコストが高く、バックアップ先やら暗号化やら色々考える必要がある。

バックアップ頻度

バックアップを実行する頻度はどうするかという話。

毎日、週一、月一などがある。

実施タイミングはタスク管理やリマインダなどで制御したい(頭だけだと忘れる)。

より確実なのはタスクスケジューラ等でスケジュール登録を行い、自動で実行されるようにすること。しかしこれは技術的ハードルも設定の手間の大きい。が、業務レベルのバックアップでは当たり前に行われていることでもある。個人でここまで頑張るのはしんどい。

バックアップ先

バックアップ先としても多数の選択肢がある。

  • ローカル
    • 外付けHDD 一番速いが、高価。
    • USBメモリ そこそこ速く、小さく、安価でバランス良い。
    • CD/DVD 使ってないからよくわからん。音がうるさい。
  • リモート
    • LAN 業務だと大体これ。いわゆる共有フォルダ。
    • クラウド 複数環境から扱うのに便利だが、遅い、あと業務利用NGが多い

ミラーリング

ミラーリングとはバックアップの一種で、バックアップ先をバックアップ元と全く同じ構成にすることである。バックアップ先をバックアップ元と同じ構成に保てるのが特徴。

Ans: ただのコピーだとミラーリングにならない。なので「(バックアップ元では)もう使ってない不要ファイル」がバックアップ先に残ったままとなり無駄である。

Backup などのツールを使うのがベター。バッチファイルで頑張るなら「いったんバックアップ先を全部消す」→「バックアップ元をコピーする」の二段階を行うといい。

ミラーリング設定にしくじるとバックアップ先とバックアップ元の両方からファイルを消しちゃって涙を見る(私は何回かやらかしたことがある)。ミラーリング設定が整うまでは、ただのコピーで全データをどこかに退避しておくなど保険をかけるのが吉。

おわりに

以上、雑多だがまとめてみた。

後編 Windows のクライアント PC をバックアップするための覚え書き(実践編) に続く。