GURU_MEDITATIONエラー状態のVirtualBoxマシンを削除するにはどうすればよいですか? VirtualBoxが実行されていないときにディレクトリを削除するだけで十分ですか?
編集:投稿後、「ファイルマネージャーで表示」が移動するディレクトリ全体を削除しました。
次のようになります。
電源がオフにならないことに注意してください。削除もグレー表示されます。これは、ディレクトリを削除する前でも見た目とまったく同じだと思います。
編集2:ファイルを削除した後、コマンドラインのpoweroffを試しました。ハングします:
vboxmanage controlvm wmf-vagrant_1354733432 poweroff 0%... 10%... 20%...
編集3:コマンドラインからの登録解除も失敗します:
VBoxManage unregistervm wmf-vagrant_1354733432 --delete VBoxManage:error:マシン「wmf-vagrant_1354733432」のロックを解除できないfDelete?(CleanupMode_T)CleanupMode_DetachAllReturnHardDisksOnly:(CleanupMode_T)CleanupMode_DetachAllReturnNone、ComSafeArrayAsOutParam(aMedia)) "ファイルVBoxManageMisc.cppの160行目
VBoxHeadlessプロセスを強制終了し、「 vagrant destroy 」を実行します
「killall」コマンドを使用して、Vagrantを破棄し、killシグナルを送信すると次のようになります。
killall -9 VBoxHeadless && vagrant destroy
私はこの問題にぶつかりました。私が読んだすべてのものは、ファイルに直接アクセスするのではなく、常に仮想ボックスを介してボックスを管理することをお勧めします。しかし、無効なボックスがあった場合、unregistervmコマンドは削除を拒否し、Vagrant destroyは機能しませんでした。最終的に、次のプロセスが機能しました。
次に、このコマンドを実行して、ボックスがなくなったことを確認しました。
VBoxManage list vms
その後、同じ名前の新しいvmを作成できました。
VirtualBox GUIからマシンの電源をオフにできない場合は、vboxmanage
コマンド(OS XではVBoxManage
)を使用してコマンドラインから試してください。例:
vboxmanage controlvm NAMEOFVM poweroff
NAMEOFVM
をvboxmanage list vms
コマンドの名前に変更します。
次に、VMを登録解除して削除します。
vboxmanage unregistervm NAMEOFVM --delete
または、手動で削除します。
rm -fr ~/"VirtualBox VMs/NAMEOFVM"
私はVMが同様の状態になった
$ vagrant up
Bringing machine 'tempu' up with 'virtualbox' provider...
==> mms: Checking if box 'hashicorp/precise64' is up to date...
==> mms: Resuming suspended VM...
==> mms: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "9fcf2203-d4b3-47a1-a307-61bfa580bd28", "--type", "headless"]
Stderr: VBoxManage: error: The machine 'temp-ubuntu' is already locked by a session (or being locked or unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component Machine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LaunchVMProcess(a->session, sessionType.raw(), env.raw(), progress.asOutParam())" at line 592 of file VBoxManageMisc.cpp
VBoxHeadless
というプロセスを探しましたが、実行されていませんでした。
次にps
を実行し、同じvm idでこのプロセスを見つけました。
$ ps aux | grep -i virtualbox
user 63466 0.0 0.1 2523608 8396 ?? S 9:36am 0:02.67 /Applications/VirtualBox.app/Contents/MacOS/VBoxManage showvminfo 9fcf2203-d4b3-47a1-a307-61bfa580bd28 --machinereadable
そのプロセスを強制終了すると問題が修正され、VMを実行した後に正しく開始されましたvagrant up
これは、必死になったときに使用するスクリプトです。私が見つけることができる限り、マシンからのすべてのVM
VBoxManage list runningvms | awk '{print $2}' | xargs --no-run-if-empty -t -n1 -IXXX VBoxManage controlvm XXX poweroff
VBoxManage list vms | awk '{print $2}' | xargs --no-run-if-empty -t -n1 VBoxManage unregistervm
killall -9 VBoxHeadless
rm -rf ~/Virtualbox\ VMs/*
64ビットのマルチプロセッサホストでDebian Wheezyを使用しています。最終的にVirtualBoxのすべてのデータを削除する(Vagrantベースボックスを削除する必要はありませんでした)によってそれを解決することができました:
混乱の少ない方法(たとえば、これらのディレクトリの一部のみを削除する)があります。私の場合、幸いなことにVMを1つだけ使用していました。
Windows 10では、デフォルトのファイアウォール設定を元に戻すこの問題を解決しました。
それが役に立てば幸い...
私の場合、現在システムにあるすべてのVagrantボックスをコマンドラインで削除したいので、次の方法で削除しました。
$ vagrant box list | cut -f 1 -d ' ' | xargs -L 1 vagrant box remove -f --all
もちろん、これ以上プロセスが接続されていないことを確認した後:
killall -9 VBoxHeadless && vagrant destroy
No matching processes belonging to you were found