この記事では、任意のタイミングで Windows のフルバックアップを NAS や共有フォルダなどリモートストレージに保存し、そこからリカバリする方法を紹介します。実際にバックアップとリカバリを試しながら進めます。いざというときに焦らないように、同じ方法で試しておかれるとよいと思います。
本記事では、コマンドラインを利用してバックアップとリカバリを行います。使うのは wbadmin というコマンドです。Windows なので当然 GUI がありますが、なぜコマンドラインから実行しようと思ったかというと、「自由度が低い気がする(気のせい?)」、「定期ではなく”任意のタイミング”で自動的に実行したかった」、「イレギュラーの発生時、コマンドを知っておいて損はない」の理由からです。いろいろ言いましたが、ほぼ知的好奇心からのスタートです。
ディスク交換やパーティション変更など、より実践的なリカバリは、次回とその次で紹介しています。こちらも併せてみてみてください。(実際には2回目、3回目の状態になることが多いと思います。知っておけば実行時に焦らないでしょう。)
私が動作確認したのは、Windows 10 Pro のみです。(一部 Window 7)
どのように試すのか
スクショがきれいに撮れるので、ホスト型のヴァーチャルマシン(以下、VM )上で試しました(VirtualBoxを利用)。一部は物理マシンでも実行しましたが、基本的には VirtualBox 上の Windows 10 Pro に対して実験しています。「物理マシン特有の何かで同じようにしてもうまくいかない」ってことは無いとは思いますが、念のため注意してください。構成は以下の通りです。
リモートにフルバックアップ
本題に入る前に VM の構成を紹介しておきます。
VM のディスクは64Gを一つです。
64Gの物理ディスクにパーティションは3つ(多分デフォルト構成)です。
Windows 10 のバージョンは 1809
事前準備
管理者モードでコマンドプロンプトを立ち上げます。また、そのコマンドプロンプトでリモートストレージにアクセスできるようにしておきます。net use コマンドで共有フォルダへのアクセスをしておくか、cmdkey で資格情報に登録しておくのが良いです。
(※ ユーザ名 と パスワードを入力)
バックアップ実行
リモートストレージにアクセスできる状態で、以下のコマンドを実行すれば完了です。なんとも簡単ですね。(容量により完了までに時間がかかります。1時間くらい?)
参考URLにすべて書いてありますが、利用したオプションについて解説しておくと:
-allcritical することで全ての重要なボリュームがバックアップ対象になります。
-include はバックアップするドライブを選択します。-allcritical しているので、c:ドライブのみの時は、include いらないです。しかし、複数のドライブをバックアップする場合に備えて入れています。その場合、-include:c:,d:,e: の様に利用します。
-quiet とつけることで、本当に実行するか?という質問を飛ばせます。bat で自動的に処理させる場合は必須のオプションになります。
結果確認
さて、バックアップはどのように取れているか確認していきます。共有フォルダにアクセスします。
WindowsImageBackupというフォルダが作られていますね。
マシン名フォルダができています。複数のマシンをバックアップする場合も同じパスを指定して問題ないようです。
マシン名フォルダの中に入るとさらに以下の様な構成になっています。あとで出てきますが、Backup 2019-03-28 034434 というフォルダが、バージョン管理するフォルダの様です。(ただし、リモートでのバックアップは1世代しか取れません。)
中を開けるとやっと、ディスクイメージが出てきました。最初に見せた3つのパーティションがイメージ化されているのがわかります。
バックアップは簡単でしたね。しかし、いざというとき戻せないバックアップほど意味もなく悲しいものはありません。リカバリも試しておきましょう。
リカバリ
リカバリを実施する前に、リカバリが成功したことを確かめるために C: ドライブにあるフォルダをいくつか消します(念のためVMはバックアップしてください)。致命的にしてもかまいませんし、怖ければデスクトップのショートカットを消す程度でもいいでしょう。デスクトップに何かをダウンロードしておくでも構いません。バックアップする前から変化があればいいです。
リモート利用法:
https://blogs.technet.microsoft.com/askcorejp/2018/02/20/image-restore-using-share-folder-on-windows10/
リカバリコマンド:
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/wbadmin-start-sysrecovery
事前準備
Windows のインストールメディアか、Windows RE(PEでも可?) を準備します。該当するOSで、リカバリを作っておくなど、バージョンはリカバリーするものに揃えておいたほうがベターだと思いますが、実際そんなベストコンディションはまれだと思うので、この実験では手元にあった Windows 10 の 1709 のインストールメディアを使っています。(特に問題はありませんでした。)
※ 別途 RE や PE の環境でSMB1.0を有効にする方法を検証中です。
リカバリの実行
Windows のインストールメディア (iso) を VirtualBox に挿入し、インストールメディアを立ち上げ、「次へ」をクリック
左下のコンピュータを修復する(R) をクリックします。
トラブルシューティングを選択します。(※ インストールメディアではなく、Windows RE を使った場合は、このあたりから始まると思います。<未検証>)
みんな大好きコマンドプロンプトを選択します。
コマンドプロンプトが起動します。1709 のインストールメディアなので、コマンドプロンプトに出力されているバージョンが違いますね。気にせず進めます。
以下のとおりにコマンドを実行していきます。まずはネットワークの設定をします。wpeinitは不要かもしれません。おまじない程度に実行しておきます。
netsh interface ipv4 set address “イーサネット” static 192.168.56.10 255.255.255.0
netsh interface ipv4 show address
net use \\192.168.56.30\union\test02
一度、コマンドをミスります。
マウスで選択してコピーすればOKです。
さて、これでネットワークが使えるようになりました。以下のコマンドでリカバリに必要な情報を取得します。-backuptarget には、前述の WindowsImageBackup が配置されているフォルダまでのパスを記載します。
取得できた 03/28/2019-03:44 というのが、バックアップのバージョンです。先ほどバックアップで見たフォルダの名前に似ていますね。
このバージョンを使ってリカバリを行います。以下のコマンドを実行するだけです。とっても簡単です。
exit でコマンドプロンプト抜けて、「続行」をクリックします。
問題なく Windows が立ち上がり、先ほどバックアップ後に加えた、変更はバックアップ時の状態に戻っているはずです。
このバックアップとリカバリってなにやら、VM のスナップショットみたいですね。通常物理マシンでバックアップ・リカバリを利用する場合は、ディスク交換をしていたりすると思うので、次回はディスクが壊れた場合を想定した検証をしています。