(via CC license from http://www.flickr.com/photos/valeriebb/3006348550/)
在 Win XP SP3 安裝VirtualBox 4.2時我所遇到的問題,集中整理於此篇文章。VirtualbBox 的安裝記錄請參考之前的文章:
2012/12/4 更新:新增『升級 4.2.4 之後,出現 [Cannot access the kernel driver] 錯誤』
建立 VirtualBox COM 物件時失敗
安裝完成後,我把VirtualBox虛擬機器關閉後,卻無法再次打開,出現了下面這個錯誤畫面。
標題是:『VirtualBox - 嚴重錯誤』。
內容是:『建立 VirtualBox COM 物件時失敗。應用程式現在將終止』
詳細資料是:被呼叫端RC: CO_E_SERVER_EXEC_FAILURE (0x80080005)
host OS: Win XP SP3
guest OS: All
我找到一個 blog,也下載了微軟的 hotfix Windows6.0-KB949700-x86.msu,但是.mus 檔案室給Vista 使用的,在 XP根本打不開。而且仔細跟著該blog 裡面的連結去追尋,理論上,這個問題應該是發生在四年前 VirtualBox 2.0 的時代,為什麼我現在已經安裝 4.2 了,還會有問題?
又再花了很多時間嘗試過網路上所能夠找到的其他方法,卻都無法解決我的問題。後來才想起,安裝完VirtualBox之後,我還沒有重開過 Windows。雖然VirtualBox並沒有在安裝完成後要求重新開機,但是很有可能某些部分的設定並沒有完成,必須重開機才能完成。果然重新開機後,這個問題就不再發生了。
結論:結論很簡單,在 Win XP 下,安裝完 VritualBox 之後,重新開機。
開啟虛擬機器 <VM_name> 的工作階段失敗
成功開啟虛擬機器後,關閉虛擬機器 後再打開,就會出現以下這個錯誤畫面。
標題是:『VirtualBox - 錯誤』。
內容是:
開啟虛擬機器 Ubuntu_12.04 的工作階段失敗。
Failed to open release log (could not open file ‘…….\VBox.log’
(fOpen=0x332), VERR_SHARING_VIOLATION).
(Ubuntu_12.04 是我的虛擬機器名稱)
詳細資料是:E_FAIL (0X80004005) …
host OS: Win XP SP3
guest OS: All (Ubuntu as an example)
分析:
這個問題牽扯到檔案開啟(fOpen)的錯誤,而且是一個分享的錯誤 (VERR_SHARING_VIOLATION),先打開 Unlocker 這款專門解決檔案被佔用的問題的免費軟體來看看:
果然VBox.log 被佔用了,而且是被 VirtualBox.exe 給佔用。VirtualBox.exe 正是我們要執行的檔案,所以有可能是之前的 VirtualBox.exe 沒有關閉嗎?
打開工作管理員來看,可以發現有好幾個VirtualBox.exe 沒有關閉:
一旦把之前遺留下來的 VirtualBox.exe 程序結束之後,這個問題自然就解決了。
這個問題不是偶爾才發生一次,而是每次都發生。沒有意外的話,應該也會有別人遇到相同的問題。果然,在 VirtualBox 的 Bugtracker 上面有人反映了這個問題 Ticket #10784。
已經反映了三個月,還沒有答案。
既然是一個已知的問題,在還沒有解答之前,可以用以下的DOS命令把殘存的VirtualBox.exe 結束。
taskkill /F /IM VirtualBox.exe |
(注意:以上命令會結束所有的 VirtualBox.exe,如果同時開啟幾個不同的虛擬機器時,所有的虛擬機器都會結束,使用上請小心。)
結論:Failed to open release log (VBox.log) 是因為之前的 VirtualBox.exe 沒有結束造成的,看起來是一個VirtualBox 的bug,目前尚沒有解決(Ticket #10784)。可以手動刪除process 或者用DOS命令刪除之。
升級 4.2.4 之後,出現 [Cannot access the kernel driver] 錯誤
我原本的VirtualBox 版本是 4.2.0,最近打開VirtualBox 都會看到升級4.2.4的提示。升級的過程一切正常,甚至,Extension Pack 也會很貼心的一起升級。只是沒想到,升級後卻沒辦法啟動 host System,錯誤畫面如下(當初沒抓到圖,圖片來源在此):
訊息如下:Cannot access the kernel driver! Make sure the module has been loaded successfully.
接著會出現一個詳細的訊息:
Result Code:
E_FAIL (0x80004005)
Component:
Machine
Interface:
IMachine {22781af3-1c96-4126-9edf-67a020e0e858}
請教Google大神之後,解法如下:
找到 VirtualBox 安裝目錄底下的 drivers\vboxdrv\VBoxDrv.inf 檔案(通常是 C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv\VBoxDrv.inf ,但如果你跟我一樣安裝時換過目錄的話,就從VirtualBox 執行檔按右鍵,從內容去找吧),按右鍵選擇安裝:
如此,就解決了!
有興趣瞭解始末者,可參考這篇文章。
VirtualBox 系列文章
留言列表