速さこそ正義

調べたことを書いていきます。

VirtualBox COMオブジェクトの作成に失敗しました。の対応

MacでVirtualBoxを起動したときエラーが出て起動できなかった。 対応策をメモ。

環境

  • macOS Sierra(バージョン10.12.5)
  • VirtualBox(バージョン10.1.22)

エラー内容

f:id:cyamax:20170624194952p:plain

VirtualBox COMオブジェクトの作成に失敗しました。

アプリケーションを終了します。

The reason for this error are most likely wrong permissions of the IPC daemon socket due to an installation problem. Please check the permissions of ‘/tmp’ and ‘/tmp/.vbox-*-ipc/’

呼び出し先 RC: NS_ERROR_SOCKET_FAIL (0xC1F30200)

事象

  1. A(既存アカウント)がVirtualBoxをインストール
  2. Aアカウントで上で新規ユーザBを作成
  3. Bアカウントでログイン ※Aはログアウト
  4. BアカウントでVirtualBoxを起動するとエラー

※A,Bともに管理者権限を持っている

解決策

エラーメッセージ通り/tmp内のVirtualBoxフォルダがおかしくなっている。

# /tmpの中身
MacBook-Pro:tmp $ ls -al
drwxrwxrwt  13 root               wheel  442  6 24 17:19 .
drwxr-xr-x@  6 root               wheel  204  6 18 20:44 ..
drwx------   4 UserA  wheel  136  6 24 08:49 .vbox-UserA-ipc
drwx------   4 UserA  wheel  136  6 24 08:44 .vbox-UserB-ipc

BがVirtualBoxを起動するとき、/tmp配下に.vbox-UserB-ipcのフォルダが参照・作成されるが、 .vbox-UserB-ipcの所有者がなぜかAになっていたためアクセスできずにエラーになっていた。

解決策

sudo chown -R 実行したいユーザ名 .vbox-実行したいユーザ名フォルダ-ipc

これで解決。

その他

なぜ所有者がAになっていたかは不明。 これをユーザが追加される度にやる必要があるのかは未検証。 ただ対処はそんなに手間ではないのと、PC内にユーザをたくさん作ることも、そのユーザでVirtualBoxを触ることもないので深堀しないでおこう。