VirtualBoxのスナップショットが削除できないとき
VirtualBoxのスナップショットを削除しようとするとエラーになり削除できない場合があります。主な原因は2つです。
- 分岐が2つ以上ある
- リンククローンがある
それぞれの場合について説明します。
分岐が2つ以上ある
スナップショット削除しょうとすると、以下のエラーになり削除できない場合があります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
仮想マシン"TEST-CLONE-A"のスナップショット"Snapshot-1"の削除に失敗しました。 | |
Snapshot 'Snapshot-1' of the machine 'TEST-CLONE-A' cannot be deleted, because it has 2 child snapshots, which is more than the one snapshot allowed for deletion. | |
終了コード : VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) | |
コンポーネント: SessionMachine | |
インターフェース: IMachine {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} |

スナップショットは分岐が2つ以上ある場合は、その分岐元を削除することはできません。直接分岐していなければ削除することができます。下の例では、Snapshot-1の子供はSnapshot-2だけなので削除できます。しかし、Snapshot-2の子供はSnapshot-2-1とSnapshot-2-2の二つなので削除できません。

分岐の親(上の例では Snapshot-2)を削除したいけれど、分岐(上の例では、Snapshot-2-1とSnapshot-2-2)も残したい場合は、分岐をひとつ残してそれ以外はすべてクローンを作成してから削除します。例えば、上の例ではSnapshot-2-1を残して、Snapshot-2-2のクローンを作成し、それからSnapshot-2-2を削除します。もちろん、反対でもかまいません。
クローンを作成するときは、「すべてをクローン」で作成します。また「スナップショット」の項目は「現在のマシンの状態」や「すべて」を指定しても削除には影響はありませんが、「現在のスナップショットのツリーブランチ」を指定しておいたほうが無難です。

リンククローンがある
スナップショット削除しょうとすると、以下のエラーになり削除できない場合があります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
仮想マシン"TEST-CLONE-A のクローン"のスナップショット"Snapshot-2-2"の削除に失敗しました。 | |
Hard disk 'C:\xxx\VirtualBox VMs\TEST-CLONE-A のクローン\Snapshots\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.vdi' has more than one child hard disk (2). | |
終了コード : E_FAIL (0x80004005) | |
コンポーネント: SessionMachine | |
インターフェース: IMachine {YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY} |

リンククローンを作成しているスナップショットは、リンククローンがそのスナップショットを使っている間は削除することができません。下の例ではSnapshot-2(link clone)からリンククローンを作成しています。この場合、Snapshot-1とSnapshot-3は削除できますが、Snapshot-2(link clone)は削除できません。

リンククローンを作成したスナップショットを削除したい場合は、そのスナップショットから作成してる仮想マシンを削除する必要があります。
削除したいスナップショットからリンククローンで作成した仮想マシンも残したい場合は、先にクローンを作成してください。
例えば、下の例でSnapshot-2(link clone)を削除したいとします。

最初に「仮想マシン X」のクローンを作成します。それから「仮想マシン X」を削除します。その後、Snapshot-2を削除します。

クローンを作成(上の例では「仮想マシン Y」の作成)する場合は「すべてをクローン」で作成します。また「スナップショット」の項目は「現在のマシンの状態」でクローンを作成しても削除には影響はありませんが、「すべて」を指定しておいたほうが無難です。
