前天提起勇氣把OSX 升級到Mavericks ,果然免費的最貴....陸陸續續開始有災情出現。
今天要解決的問題是使用Virtualbox (4.2.18)出現的問題(包含使用Vagrant),主要是在啟動VM得時候會出現類似的錯誤如下:
Command: ["hostonlyif", "create"] Failed to create the host-only network interface. VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory
上網查了一下,看到這兩篇文章 Vagrant on Mavericks 和First Thoughts Developing on Mavericks都是使用臨時性解法,就是利用指令重新啟動VirtualBox,不過重開機以後仍然會有問題...
$ sudo /Library/StartupItems/VirtualBox/VirtualBox restart
最後再Virtaulbox 的討論區 Network Error... was working yesterday 這篇文章確認這是升級新版的後所產生的問題:,
OS X 10.9 Mavericks has deprecated the StartupItems mechanism for starting services on boot.Until this is fixed it looks like VirtualBox's host-only networking is broken as per ticket: #8940.This also means if you use Vagrant it will complain that it can't start boxes.The temporary workaround is to create a Launch Daemon yourself. This Launch Daemon will call the old StartupItems script.
目前建議的work around方式如下:
1. 建立 'virtualbox.plist' 這個檔案在這個目錄 '/Library/LaunchDaemons' (Note: 必須使用 sudo 才能建立).
2. 檔案內容如下:
<plist version="1.0"> <dict> <key>Label</key> <string>virtualbox</string> <key>ProgramArguments</key> <array> <string>sh</string> <string>/Library/StartupItems/VirtualBox/VirtualBox</string> <string>restart</string> </array> <key>KeepAlive</key> <false> <key>RunAtLoad</key> <true> </true></false></dict> </plist>
3. 執行以下兩個指令,讓機器重開後會自動執行
$ sudo chown root /Library/LaunchDaemons/virtualbox.plist $ sudo launchctl load -w /Library/LaunchDaemons/virtualbox.plist
4. 最後重開機測試看看
Ps. 根據#8940的最新訊息,這個問題在Virtualbox 4.3版仍會有問題
Pss. 就算這個問題解決,另外會有關機後,virtualbox 的icon仍然會在dock 上面砍不掉
Update [2013.10.28]
已經升級到VirtualBox 4.3 開啟win7 的vm 會出現這個問題:Kernel fail on Mavericks OS