
Windowsの復元ポイントには、いつも救われる
こんにちは。大和です。
最近、Unityのプロジェクトデータを誤って上書きしてしまい、絶望していたところ、Windowsの復元機能によって復元できたため、それについて書いていきたいと思います。
Unityのシーンファイルを上書きしてしまい絶望
最近、VRChatワールド制作で、Unityパッケージの再インポートミスにより、シーンファイルが上書きされ、これまでの作業が水の泡になってしまい、絶望的な気持ちになっていました。
そこで、何とか上書きする前に戻せないか情報収集をしていたのですが、結果解決策は見つからず…
最後の希望として、ダメもとでUnityプロジェクトのフォルダのプロパティから「以前のバージョン」画面を開いてみたところ…


ありがとうWindows。愛してる。

もうほんとにそんな気持ちでした。
しかも、このバックアップが作成された日時が、今日(2025年1月12日)の10時33分で、間違えて上書きしてしまったのが2025年1月12日の1時27分でした。約3時間前に復元ポイントを作ってくれていました。
以前もWindowsの復元ポイントに救われた
以前も知識がないくせにWindowsのレジストリをいじくりまわした結果、Windows起動時にブルスクが表示され、起動しなくなって絶望したことがありました。その時にも奇跡的に一週間前の復元ポイントが作成されていたおかげで、復元することができました。
本当に復元ポイントにはいつもお世話になっています。
Windowsはどんな時に復元ポイントを作成してくれているのだろう
Microsoftの公式情報によると以下のタイミングで復元ポイントを自動作成しているみたいです。
システム復元に準拠したインストーラーを使用するアプリケーションアプリケーションのインストール
Windows Updateまたは AutoUpdate のインストール
システムの復元時
私の場合、WindowsやUnityプロジェクトを破壊前にWindows UpdateでWindowsが更新されていたので、その時に復元ポイントが作成されたのだと思います。
バックアップの仕組み
なるほど、復元ポイントが任意のタイミングで自動的に作成されていることはわかりました。しかし、私にはある疑問が浮かびました。

どうして復元ポイントは数多くのファイルを非常に速くバックアップできるんだろう?
そして、どうしてドライブのスペースをあまり使用していないように見えるのだろう?

というのも、先ほどの「以前のバージョン」の画面にそのバックアップを開くことができるボタンがあります。

開くと、「\localhost\C$@GMT-2025.01.12-01.33.18\Users\{ユーザー名}\Documents\Unity」という見たことのないパスで開かれました。


Microsoft communityによると、「\localhost\C$」というのは、「C:\」の別名らしいので、置いておいて、「\localhost\C$@GMT-2025.01.12-01.33.18」とはどこのことなのでしょうか…?
そこで、試しに「\localhost\C$@GMT-2025.01.12-01.33.18」とエクスプローラーのアドレス入力欄に入れてみたところCドライブのすべてがバックアップされているように見えました。

一体、どうやってCドライブ全体をバックアップしているのでしょうか…?
そこで、少し調べてみたところ、同様の疑問を持つユーザーの投稿をredditで見つけました。
その投稿の返信によると、
原文:
It does use up space - it's allocated a certain percentage and you can configure this in the settings for system protection, default is only 10% of the drive space.
As for the speed, it just uses volume shadow copy process to maintain file level data, it's not actually making exact replicas/copies of the files in most instances.
日本語訳:
確かにストレージのスペースを消費します。一定の割合が割り当てられており、システム保護の設定でこれを構成できます。デフォルトではドライブ スペースの10%を使用します。
速度に関しては、ファイルレベルのデータを維持するためにボリューム シャドウコピープロセスを使用するだけで、ほとんどの場合、ファイルの正確なレプリカ/コピーは実際には作成されません。
とのこと。
また、ほかにも同様の疑問を持つユーザーによる投稿を発見し、Stack Exchangeでの投稿によると、
原文:
These are shadow copies. You can use vssadmin to list them, for example:
vssadmin list shadows
You will see the date, and you can put the date in the needed format to create the link. Instead of the \\localhost\C$\@GMT... links, you can also use the links shown in the vssadmin output, like \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy41, but Explorer won't let you browse them (unfortunately). I usually use Far Manager to browse them. But if you know what file you need, you can directly access it, e.g. \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy41\Windows\System32\explorer.exe.
You can read more about how shadow copies work here.
日本語訳:
これらはシャドウ コピーです。vssadminを使ってこれらを一覧表示できます。
vssadmin list shadows
日付が表示され、必要な形式で日付を入力してリンクを作成できます。リンクの代わりに、出力\\localhost\C$\@GMT...に表示される のようなリンクを使用することもできますが、エクスプローラーではそれらを参照できません (残念ながら)。私は通常、 Far Manager を使用してそれらを参照します。ただし、必要なファイルがわかっている場合は、 「\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy41\Windows\System32\explorer.exe」のように直接アクセスできます。
シャドウ コピーの仕組みの詳細については、こちらをご覧ください。
とのこと。
どうやら「シャドウコピー」というものを使ってバックアップをしていたみたいです。
シャドウコピーに関する説明は先ほどの投稿にあった通り、Microsoftの公式ページでも解説されています。
どのような仕組みか理解して、解説を書きたかったのですが、まだ説明できるまで理解できていないので、もし機会があればこれについては書きたいと思います。
とにかくバックアップは大事!
思っていたよりも長くなってしまいましたが、とにかくバックアップは大事です。
今回はたまたま復元ポイントのおかげで復元できましたが、あまりこれに頼りすぎずに、ちゃんとほかのディスクなどにコピーを作成しておくことが大切だなと思いました。
それでは。