Virtualboxが消えた??

Vagrant could not detect VirtualBox!

* 本ページはプロモーションが含まれています

不具合症状 

Mac上のvagrantで、dockerコンテナでいくつかのサーバを稼働させているのですが、vagrantで起動したゲストOSが起動しなくなり、vagrant sshでもvagrant haltも出来なくなった。

$ vagrant halt
The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:

Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
Vagrant uses the `VBoxManage` binary that ships with VirtualBox, and requires
this to be available on the PATH. If VirtualBox is installed, please find the
`VBoxManage` binary and add it to the PATH environmental variable.

virtualboxが見つからない? 消えた?

Virtualboxが消えた原因 

おそらく、定期的にHomebrewで更新をかけたのが原因ではないかと推測。
brew update;brew upgradeでVirtualboxに更新があった場合に、アンインストールのスクリプトが実行され、インストールが正常にできなかったので、消失したままなのではないかと。

virtualboxを再インストールしてみる 

$ brew reinstall virtualbox

...
(kernel) Kext org.virtualbox.kext.VBoxNetFlt did not stop (return code 0x5).
(kernel) Kext org.virtualbox.kext.VBoxNetFlt can't unload - module stop returned 0xdc008017.
Failed to unload org.virtualbox.kext.VBoxNetFlt - (libkern/kext) kext (kmod) start/stop routine failed.
An error occurred durning 'sudo /sbin/kextunload -m org.virtualbox.kext.VBoxNetFlt', there should be a message above. (rc=3)
unloading org.virtualbox.kext.VBoxDrv
(kernel) Can't remove kext org.virtualbox.kext.VBoxDrv; services failed to terminate - 0xdc008018.
Failed to unload org.virtualbox.kext.VBoxDrv - (libkern/kext) kext is in use or retained (cannot unload).

再インストールも失敗してますね。
どうやら、VBox関連のプロセスが起動したままなのでインストール出来ないようです。

VBox関連のプロセスを停止 

$ ps aux|grep VBox
user             1053   4.9 16.9 10433224 5664640   ??  S    27 421  1198:10.06 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment vagrant_default_1617775585834_25189 --startvm 92f812c7-e002-4915-a44e-37f956c82adc --vrde config
user            86410   0.2  0.0  4399028    792 s000  R+   10:36AM   0:00.00 grep VBox
user              925   0.0  0.1  4876816  18988   ??  S    27 421   15:23.36 /Applications/VirtualBox.app/Contents/MacOS/VBoxSVC --auto-shutdown
user              923   0.0  0.0  4427532  11152   ??  S    27 421    2:34.08 /Applications/VirtualBox.app/Contents/MacOS/VBoxXPCOMIPCD

VBOX関連のプロセスが起動していたため、再インストールに失敗しているので、VBOX関連のプロセスをkill
上記の場合だとkill 923 925 1053

この後、再度、Virtualboxをインストールしたところ、無事インストールが完了し、vagrant upで正常に起動した

補足 

なんだかんだ、Virtualbox+vagrantは不具合に遭う機会が多いように感じます
今後もVirtualboxの更新が入ると、同症状の問題が起きる可能性が高いので、homebrewでvirtualboxを除外しておいた方が無難かもしれませんね。

指定したフォーミュラを除外 

brew pin フォーミュラ名

除外を解除(元に戻す) 

brew unpin フォーミュラ名

除外設定したフォーミュラの一覧表示 

brew list --pinned