2008年11月13日 星期四

如何分析系統自動重新啟動的原因




 最近公司有一台 Server 常發生莫名自動重新開機,請原廠工程師來檢測硬體也沒有任何問題,原廠工程師在 Server 收集 Log 帶回分析。



 過了幾天原廠工程師打來,告知他們分析的結果,說他們根據下面圖示的錯誤訊息(STOP 0x0000003f),在 Microsoft 的 Knowledge Base 得知應該是驅動程式移除不完全,所造成系統自動會重新開機,並建議我們依照 Microsoft KB 修改機碼,重新開機啟動 Stack Traces 機制。








 在事件檢視器會出現下圖錯誤訊息,顯示系統發生意外自動重新開機的時間。







 機碼修改內容如下,修改完成後,記得要重新開機讓它生效。

Microsoft KB:http://support.microsoft.com/kb/256004/en-us

Use Registry Editor (Regedt32.exe) to view the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Modify the following registry value, and then restart your computer:

Value Name: TrackPtes
Value Type: REG_DWORD
Value Data: 1
Radix: Hex
 
 記得確認有「啟用錯誤報告功能」,在「系統內容 / 進階 / 錯誤報告」,此功能會在系統發生自動重新開機時,將 Memory 內的資料 Dump 出來以便分析原因。








 當下次發生再度發生自動重新開機時,便可以根據「系統內容 / 進階 / 啟動及修復 / 設定」內的「傾印檔案」進行分析自動重新開機的原因,但由於 Memory.dmp 的內容太過複雜不是一般人能夠解讀的。







 於是我們必須借助其它工具來幫我們分析-「Windbg」,此工具可以在 Microsoft 下載

http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.6.07.5.exe

1. 當系統發生藍底白字並開始 dump Memory 的資料後重新開機。
2. 正常開機後,在 Windows 目錄下會有一個 MEMORY.DMP 的檔案。
3. 安裝 Windbg,並執行 Windbg。
4. 選擇「File / symbol file path」輸入下列內容:



 SRV*c:\temp*http://msdl.microsoft.com/download/symbols



5. 然後再選擇「File / open crash dump」,開啟 Windows 目錄下的 MEMORY.DMP
6. 在”Probably caused by”顯示是什麼檔案可能造成發生此問題。






7. 出現”Use !analyze -v to get detailed debugging information.”,輸入「!analyze -v」有更詳細的分析。

注意:1. Windbg 在使用中會需要連上網路。
   2. 有關 Windbg 的詳細操作我也不是很懂,所以不用發問任何有關 Windbg 的問題。



參考文件:
http://forum.fdzone.org/archiver/?tid-1739313.html

 

沒有留言: