2008年2月7日 星期四

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

 最近公司有一台 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 下載
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 的問題。

 



沒有留言:

張貼留言