Windowsのバックアップとして重要なフォルダのFreeFileSyncによる手動/自動バックアップ(to Portable SSD, OneDrive, G Drive)、 ほぼ全体のファイル履歴(6時間おき, to Portable SSD)、 システムイメージの作成(数か月おき, to Portable HDD)をしている1

システムイメージの作成には20時間ほどかかり、その間パソコンをあまり移動させることができない上に、負荷がかかって重くなるので、あまり行っていなかったが、 前回の実行が5月だったので久しぶりに行った。 しかし、エラーが出て2その対処に難儀したのでメモしておく。

エラーの症状(見た目)

実行開始数分で失敗する。 対処しようにも設定を変える程度のことしか出てこない。 古いバックアップを削除したり、要らないファイルを消して空き容量を前回のバックアップより多く作っても出来ない。

エラーの症状(イベントビューア)

次にイベントビューアを見た3

LevelDisplayName TimeCreated         ProviderName                                                          Id Message
---------------- -----------         ------------                                                          -- -------
エラー           2022/08/31 1:33:55  Windows Backup                                                      4104 バックアップは成功しませんでした。エラー: STATUS_WAIT_2 (0x80070002)。
エラー           2022/08/31 1:33:45  Service Control Manager                                             7031 Block Level Backup Engine Service サービスは予期せぬ原因により終了しました。このサービスの終了は 1 回目です。次の修正操作が 120000 ミリ秒以内に実行されます: サービスの再開。
エラー           2022/08/31 1:33:43  Application Error                                                   1000 障害が発生しているアプリケーション名: wbengine.exe、バージョン: 10.0.19041.746、タイム スタンプ: 0x176385c2…
エラー           2022/08/31 1:31:24  Volsnap                                                               36 ユーザーが設定した制限値のためにシャドウ コピーの記憶域を拡張できなかったためにボリューム C: のシャドウ コピーが中止しました。

何かわからないけど容量が足りなさそう?

解決法

まず検索した4。 普通に調べてもセーフモードがうんたらとかいう在り来たりな奴ばかり出てくるのでイベントビューアで得られた最も根源的な感じのエラーの文句を入れて検索する。

volsnap error & backup failing - Microsoft Q&A

これがよさそう。 ボリューム シャドウ コピー サービス | Microsoft Docsのための容量が足りてないらしい。

vssadmin list shadowstorage

でボリュームの一覧を見られる。 以下ヘルプ。

> vssadmin.exe
vssadmin 1.1 - ボリューム シャドウ コピー サービス管理コマンド ライン ツール
(C) Copyright 2001-2013 Microsoft Corp.

エラー: コマンドが無効です。

---- サポートされるコマンド ----

Delete Shadows        - ボリューム シャドウ コピーを削除します。
List Providers        - 登録されているボリューム シャドウ コピーのプロバイダーの
                        一覧を表示します。
List Shadows          - 既存のボリューム シャドウ コピーの一覧を表示します。
List ShadowStorage    - ボリューム シャドウ コピーの記憶域関連付けの一覧を表示
                        します。
List Volumes          - シャドウ コピーで利用できるボリュームの一覧を表示します
List Writers          - ボリューム シャドウ コピーのサブスクライブ ライターの一
                        覧を表示します。
Resize ShadowStorage  - ボリューム シャドウ コピーの記憶域関連付けのサイズを変
                        更します。
> vssadmin.exe Resize shadowStorage
vssadmin 1.1 - ボリューム シャドウ コピー サービス管理コマンド ライン ツール
(C) Copyright 2001-2013 Microsoft Corp.

エラー: 必要なオプションが見つかりません。

Resize ShadowStorage /For=ForVolumeSpec /On=OnVolumeSpec /MaxSize=MaxSizeSpec
    - ForVolumeSpec と OnVolumeSpec との間のシャドウ コピーの記憶域関連付けの
    最大サイズを変更します。記憶域の関連付けのサイズを変更すると、シャドウ
    コピーが消失することがあります。シャドウ コピーが削除されると、シャドウ
    コピーの記憶域の領域が小さくなります。MaxSizeSpec に値 UNBOUNDED を設定
    すると、シャドウ コピー記憶域容量が無制限になります。MaxSizeSpec はバイト
    単位または ForVolumeSpec 記憶域容量に対する比率で指定できます。バイト単位
    で指定する場合、MaxSizeSpec は 320 MB 以上にする必要があり、次の単位を
    サフィックスとして使用できます:
    KB、MB、GB、TB、PB および EB。さらに、B、K、M、G、T、P、 E もサフィッ
    クスとして使用できます。MaxSizeSpec を比率で指定するには、数値の前に
    サフィックスとして % を使用する必要があります。サフィックスを指定しない
    場合は、MaxSizeSpec はバイト単位です。

     使用例:  vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=900MB
              vssadmin Resize ShadowStorage /For=C: /On=D: /MaxSize=UNBOUNDED
              vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=20%

結局

> vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=UNBOUNDED

をしたら無事にバックアップできた。


 PCが2台にふえる予定なので、持ち出す予定があるときでもシステムイメージの作成ができるようになりそう。


  1. こんなに厳重なのは悲惨な事故があったから。 ↩︎

  2. 毎度出ている気がする ↩︎

  3. これはPowerShellで見たときの ↩︎

  4. DuckDuckGoで ↩︎