◆WindowsBackUpの話
今を去ること三年とちょっと前、新しいマシンをSSDに換装してからずーーーーと頭を悩ませることになっていた、WindowsBackupが正常に働かない問題。
こことか
ここに、その辺の経緯がツラツラと書いてあるのだけど、先日(とは言え一ヶ月前ですが)、やっとこ正常にバックアップできる方法を発見したので、その辺りを書いてみようかと。
で、自分の環境での原因は
RAMドライブとWindowsの環境変数でした。
自分の環境では、SSDを使ってて既に割と早いのですが、RAMディスクならもっと快適なんじゃないかということで、RAMドライブソフト(
DataramのRAMDisk)を利用していたり。
RAMドライブは、ブラウザや他のアプリのテンポラリファイルとして使うように設定。かなり快適なのですが、それはここでは置いておいて、このRAMドライブのドライブレターがデフォルトで「
R:」となっています。Windowsのドライブは何の変哲もない「
C:」ドライブ。
さて、半年に一度くらい発作的にどうやってかバックアップ出来ないか色々設定を変えてたりして、結構前に
「ドライブのシステムイメージを含めない設定、つまりマイドキュメントとかユーザーライブラリだけをバックアップすると成功する」ことに気が付いた。
もちろんこの状態では一番必要になるシステムのバックアップが出来ないという欠点はあるのだけど、それでも全部のデータが根こそぎなくなるよりは、とこの設定で運用していた。
んでもって、半年ぶりくらいにWindowsBackupの設定をいろいろ見返していて、「バックアップの設定」画面を開いてふと気がついた。
 |
赤線部分に、RAMドライブ(R:)が混ざっている |
……そういや、なんでシステムイメージに、RAMドライブ(R:)が混ざってるのん?
本来ここはWindowsがインストールされたドライブ(この場合はCドライブ)だけが表示されているはず。
なんでこんな設定になってるんだろうと思って思い返してみたら、そういえば、様々なアプリの一時ファイルとか展開するためのフォルダとしてRAMドライブを指定していたのを思い出す。
ここでふと気がつく。
VSSだのSPPだのがズッ転けてたのはこれが原因なんじゃ?
つまりはRAMドライブを導入して(単に導入しただけでは問題は起きない)、システムのテンポラリをRAMドライブ側に置いてからVSSとSPPがコケて、そこからWindowsBackupがコケたという予想。
そこで試してみる。
システムの一時ファイルの場所は環境変数を書き換えることで指定できる。
それを元の値に書き戻してみる。
環境変数は、書き換えたら再起動する必要があるのでまず再起動。
んでもって、WindowsBackupの設定を一旦デフォルト状態(バックアップ先以外は全て自動選択)にしてバックアップ開始……
BackUpできた。
今までの苦労は何だったんだ、ってくらいあっさり。
んでもって、自分の環境での原因と対策がわかったので、まとめて見る感じで。
★状況:
WindowsBackupを実行しようとするとBackupが正常に完了しない。
詳細情報を見ると「
シャドウコピーが作成できない」というメッセージが出てくる。
★今回の自分の環境における原因:
RAMドライブを導入した際、システム環境変数and/orユーザー環境変数を書き換え、一時ファイルをRAMドライブ側(R:ドライブ)に設定した。
WindowsBackupは何らかの原因でRAMドライブをドライブとして認識することが出来ないと思われる。そのため、WindowsBackupはシステムのシャドーコピーを作成できず、エラーが発生する。
★対策:
WindowsBackupを実行する時に、システム環境変数を元の値に書き戻し、一度再起動することでWindowsBackupは正常に動作するようになる。
書き戻した環境変数は、バックアップ終了後にまたRAMドライブへのパスを指定すれば良い。
●んなわけで
今回の作業を順番に(ここまでの説明が分かる方には蛇足かもしれないけど)。
(1)確認の方法
まずはWindowsBackupのバックアップ元ドライブの確認。
・「コントロールパネル」から「バックアップと回復」を開く
・「(盾)設定の変更(C)」をクリック。
・「次へ」をクリック
・「バックアップの対象」で「自分で選択する」を選ぶ→「次へ」
・赤線部
「次のドライブのシステムイメージを含める(S):」に、システムドライブ(C:)以外が含まれていないか確かめる。
システムドライブ(画像ではCドライブ)以外が含まれていた場合、WindowsBackupは失敗する可能性が高い。
次に環境変数のチェック。
・「コンピュータ」を開く
・メニューバー(ファイル(F) 編集(E)…)の下にある
「システムのプロパティ」をクリック
・「(盾)システムの詳細設定」をクリック
・「環境変数(N)」をクリック
・「ユーザー環境変数」の「TEMP」または「TMP」を指定、「編集(E)」ボタンを押して修正する。
・この部分の元の(デフォルト)値は
%USERPROFILE%\AppData\Local\TEMP
これ以外の値になっている場合、WindowsBackupは失敗する可能性が高い(TEMPがデフォルト値以外の場合はほぼ確実に失敗する。TMPだけがデフォルト値以外の場合は、成功する場合も多
いけど、両方直しておいたほうがいい)。
環境変数の直し方はこの「ユーザー変数の編集」ダイアログの「変数値(V):」に、上にある元の値を入れて「OK」をクリック。ダイアログを閉じて、再起動してやれば良い。
ところで、自分はユーザー環境変数のみを書き換えてたのだけど、人によっては、システム環境変数側も書き換えている可能性がある(そしてそのことをよく忘れている……)
なもんで
システム環境変数の「TMP」の値も確かめてみるのが吉。
システム環境変数のTMPのデフォルトの値は
%SystemRoot%\TEMP
になっています。
※注意!
環境変数に%USERPROFILE%とか%SystemoRoot%とか入ってないんですけど!?
という方も多いかもしれませんが、これはWindows側が勝手に「ああ、これはこういう意味だよね」って解釈してくれるキーワード(特殊フォルダ)です
%USERPROFILE%は、Windows内部で「システムドライブ\Users\(ユーザー名)\…」と解釈されます(例えば、C:\Users\バンテリン\…)。
同様に
%SystemRoot%も、Windows内部で「システムドライブ…」と解釈されます(例えば、C:\Windows\…)
さて、再起動後は、上に述べた手順で再び「バックアップと復元」コンパネを開き、今度はバックアップ対象を自動選択にする。
これで「次へ(N)」を選んで「バックアップ設定の確認」で「設定を保存して終了(S)」。
その後、「(盾)今すぐバックアップ(B)」でバックアップ開始となる。
正常にバックアップできてしまえばしめたもの、後は環境変数を今説明してきた方法で元の値(RAMドライブなど)に戻して再起動すれば作業終了。
バックアップしたい時に環境変数を書き換えるのは多少面倒ですが、高速性とバックアップのある心理的な安心感が両立できると考えれば、それほど手間じゃないのではないかと。
しかしWindows10が出ても、このあたり多分解決されていないんだろうなぁ……対処としては大したことないように思えるのだけど……ううむ、ううむ
●他にもありそうな原因
さて、ここまでは自分の環境での原因と対処方法を説明してきたのですが、似たような状況でWindowsBackupが動作しなくなる理由として、レジストリの方が悪さをしている場合もあるようです。
これはここまで説明してきた環境変数ではなく、レジストリ側にテンポラリとなるフォルダが指定されていて、それがシステムドライブ以外のドライブを示している、という状況のようです。
レジストリによる問題に関してはここでは対処などは説明しませんが、やはりシステムドライブ以外に指定されているテンポラリをシステムドライブに戻すことが基本的な対処になるんじゃないかと。
あとは自前で調べてGO!
ここまでの色々が解決の手助けになればいい感じで。