【Vagrant】destroy時の「Cannot unregister the machine~」の対処方法


この記事はプロモーションを含みます。

vagrant destroyコマンドの実行時に発生する「Cannot unregister the machine~」の対処方法について解説します。

事象

Vagrant環境で、VirtualBoxプロバイダーを使用して「vagrant destroy」コマンドを実行した際、下記のエラーが出力されます。
また、VirtualBoxマネージャーがロックされて使用出来なくなりました。

PS C:\VM\Vagrant\Test01> vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying VM and associated drives...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["unregistervm", "78bac5fd-2755-46d9-a0b8-20262604ea83", "--delete"]

Stderr: VBoxManage.exe: error: Cannot unregister the machine 'Test01' while it is locked
VBoxManage.exe: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee IUnknown
VBoxManage.exe: error: Context: "Unregister(CleanupMode_DetachAllReturnHardDisksOnly, ComSafeArrayAsOutParam(aMedia))" at line 228 of file VBoxManageMisc.cpp

対処方法

今回の事象が発生した原因は不明ですが、VirtualBoxマネージャーが使用出来なくなり(仮想マシンの起動や停止が出来ない)、すごく困ったため、その対処方法(VirtualBoxマネージャーを使えるようにする方法)を説明します。

この事象が発生すると、VirtualBoxマネージャーの一部項目がグレーアウトされ、押せなくなってしまいます。

まずは、VirtualBoxマネージャーが起動している場合は、閉じます。

次に、タスクマネージャーなどで以下のプロセスをキルします。
コマンドプロンプトなどを使用しても構いません。

環境によっては、プロセスキル時起動中の仮想マシンが落ちる可能性があるので、可能であれば事前に停止(シャットダウン)しておいて下さい。

  • VirtualBox Interface
  • VirtualBox Global Interface(必須ではないけどキルした方がいいかも)

以下はタスクマネージャーでの表示です(赤枠が対象のプロセスです)

プロセスのキルが難しい場合、OSの再起動でも問題は解消されました。

再度、VirtualBoxマネージャーを起動し、操作が出来るようになっていれば、作業は完了です。

コメント

タイトルとURLをコピーしました