今天本來想打開筆電內的虛擬機來做一下 LAB,沒想到 Virtualbox 內的 guest 全部沒辦法開啟
error 訊息是
Result Code: E_FAIL (0x80004005)
Component: Machine
Interface: IMachine {480cf695-2d8d-4256-9c7c-cce4184fa048}
並且在詳細報告中有提到在 \WINDOWS\System32\ntdll.dll different
當下直覺可能是 ntdll.dll 這隻檔案有問題,下載了正常版的回來複製卻被 Lock,即使重開機也是一樣,可想而知有可能是 Windows OS 的 dll 檔
之後也嘗試過重裝 Virtualbox、新建 VM,也都是一樣的錯誤訊息
在幾分鐘後終於在 Virtualbox 的論壇找到最近才發生的相同案件
在發生錯誤 VM 的 VBox.log 關鍵訊息也是在 ntdll.dll
Log file 1fd0.1fcc: Log file opened: 4.3.26r98988 g_hStartupLog=0000000000000014 g_uNtVerCombined=0x6223f000 1fd0.1fcc: \SystemRoot\System32\ntdll.dll: .. 中間省略 .. VBoxDrvStub error: ntdll.dll: 7981 differences between 0x300c and 0x4fff in #1 (.text), first: 4c != 1f
在近期中微軟發佈了一個更新 KB3045999 是造成此一事件的主因
這是一個安全性更新,但影響的範圍似乎不只是 Virtualbox,也造成了許多 Windows 無法開機的狀況
解決方式
到 Windows 的已更新項目中找到 KB3045999 並將它解除安裝,重開機後即可恢復正常
對於系統來說,不更新是一件違背資安的事情,但更新 Windows Update 更是拿自己的專業在拚,畢竟微軟在今年實在是出太多包了
參考資料
Virtualbox fatal error following Windows updates