vssadmin コマンドでシャドウ コピーが削除できない場合の対処方法について

Last Update: feedback 共有

※ 本記事は弊社の Technet から移行した記事です。
いつも弊社製品をご利用いただきまして誠にありがとうございます。日本マイクロソフトの Windows サポートチームです。

最近、ローカル ドライブに保存されているシャドウ コピーのデータを削除したいが行えないというお問い合わせをいただきました。実は、シャドウコピーにはいくつかの種類があり、特定のシャドウ コピーに対しては特定のツールを使わないと削除できない場合があります。いただいたお問い合わせの現象や背景を踏まえて解説します。

現象

Windows Server OS にて、ローカル ドライブにバックアップデータを保管している。共有フォルダへのバックアップとは異なり、複数のバージョンのバックアップ データが保管されていることを確認した。空き領域の確保のため古いシャドウ コピーを vssadmin delete shadows コマンドで削除しようとしたが、バックアップにより作成されたシャドウ コピーは削除されなかった。まずはじめに、シャドウ コピーの種類と vssadmin delete shadows コマンドにてシャドウ コピーが削除されなかった理由について説明します。

シャドウ コピーの種類について

vssadmin list shadows コマンドにて確認できるシャドウ コピーには大きく分けて以下の 2 つの種類があります。

a. 共有フォルダーのシャドウ コピー機能の利用により作成されるシャドウ コピー
b. アプリケーションなどからの要求で作成されるシャドウ コピー

※ Windows Server バックアップで作成されるシャドウ コピーは b. に分類されます。

vssadmin delete shadows にて、削除可能なのは、a. のシャドウ コピーです。一方、 b. のアプリケーションなどからの要求にて作成されるシャドウ コピーを明示的に削除するには、diskshadow ユーティリティを利用します。

シャドウ コピーが残る理由について

Windows Server バックアップにて、ローカル ドライブにバックアップを取得すると最新の世代は VHD ファイルとして保存されます。この時、バックアップ データの世代管理のために、バックアップの保存先にシャドウ コピーが作成されます。こちらは、世代管理に使用されており、バックアップ後に削除されないためにこの現象が発生します。

バックアップの保存先の違いについては、以下の参考資料を参照してください。

– 参考情報
Windows Server バックアップの概要

保管されるシャドウ コピーの合計サイズは、シャドウ コピー記憶域の最大サイズの設定により異なります。この現象を回避するには、最大サイズの設定を “制限なし” から ”制限値” に変更し、任意のサイズを設定することにより、空き領域を確保することが可能です。

但し、シャドウ コピー記憶域の最大サイズの設定をする際には、運用にあわせた見積もりが必要なため、何か他に対応はないか。という疑問が発生します。そのため、一時的に diskshadow コマンドにてシャドウ コピーを削除して空き領域を確保する方法をご紹介します。

シャドウ コピー削除手順について

diskshadow ユーティリティは Windows Server 2008 以降に標準で実装されています。Windows Server 2003 や Windows 7 ではこの方法は利用できません。

  1. 管理者権限にてコマンド プロンプトを起動します。
  2. diskshadow と入力し diskshadow ユーティリティを起動します。
  3. 削除したいシャドウ コピーにあわせ delete shadows コマンドを実行します。

以下に削除の実行例をご案内します。

実行例 1)
S ドライブの一番古いシャドウ コピーから 1 世代ずつ削除する場合は delete shadows oldest コマンドを実行します。

>diskshadow  
>delete shadows oldest S:  


実行例 2)
S ドライブの全てのシャドウ コピーを削除する場合には delete shadows volumeコマンドを実行します。

>diskshadow  
>delete shadows volume S:  

]
実行例 3)
特定のシャドウ コピーを削除するには delete shadows SET <セット ID> や delete shadows ID <シャドウ ID> コマンドを利用します。
<セット ID> や <シャドウ ID> に指定する値は list shadows all コマンドにて確認が可能です。

各コマンドの詳細については、delete /? にてヘルプを参照するか、以下の参考情報を参照してください。

– 参考情報
Delete shadows

Diskshadow