介紹
通常所說的“系統崩潰”是指系統檢測到無法恢復的錯誤並重新啟動的情況。
引起崩潰的錯誤通常是由處理器硬件檢測的,處理器硬件在 ROM 監視器中自動派生出特殊的錯誤處理代碼。ROM 監視器可以識別錯誤,打印消息,保存故障信息並重新啟動系統。
開始之前
e=conv>規則
有關文件規則的更多信息,請參閱 Cisco Technical Tips Conventions.
前提條件
本文沒有任何特定的前提條件。
所使用組件
本文不限於任何特定的軟硬件版本。
獲得有關崩潰的信息
在路由器崩潰的情況下,最重要的工作是在對路由器進行人工重載或重新加電啟動之前盡可能多地收集有關崩潰的信息。人工重載或重新加電啟動之後,除 crashinfo 文件中成功保存的信息外,有關崩潰的所有其他信息都將丟失。下面的輸出內容顯示了有關崩潰的一些信息。
若您可以通過Cisco設備獲得show version、show stacks、show context或show tech support命令輸出,則可通過這些輸出來顯示潛在的問題和修補方法。若要使用這些信息,登錄並啟用 ,但您必須是注冊 用戶。
命令
說明
show version
最早在Cisco IOS(r)軟件版本10.0中出現的命令。Show version EXEC命令顯示系統硬件配置、軟件版本、配置文件與軟件鏡像的名稱和來源、路由器運行時間和有關系統重啟過程的信息。
重要提示:若路由器在崩潰後重載(例如加電重啟或使用reload命令),該信息將會丟失。因此,設法在重載前收集有關信息!!!
show stacks
最早在Cisco IOS軟件版本10.0中出現的命令。show stacks EXEC命令用來監視程序和中斷程序的堆棧使用情況。在路由器崩潰的情況下,show stacks命令輸出是信息的最重要來源之一。
重要提示: 若路由器在崩潰後重載(例如加電重啟或使用reload命令),該信息將會丟失。因此,設法在重載前收集有關信息!
show context
最早在Cisco IOS軟件版本10.3中出現的命令。show context EXEC命令用來在發生意外事件時顯示非易失性RAM(NVRAM)中保存的信息。上下文信息是處理器和基礎結構所特定的,而軟件版本和運行時間信息則不是。不同路由器類型的上下文信息因此各不相同。show context命令的顯示內容包括以下方面:
系統重啟原因
堆棧記錄
軟件版本
信號編號、代碼和路由運行時間信息
崩潰時的所有注冊內容
show tech-support
最早出現在Cisco IOS軟件版本11.2中。在報告問題時,此命令非常有助於收集有關路由器的基本信息。此命令包括:
show version
show running-config
show stacks
show interface
show controller
show process cpu
show process memory
show buffers
console log
若在崩潰時與路由器控制面板相連,您會在崩潰期間看到類似以下信息的顯示內容:
*** System received a Software forced crash ***
signal= 0x17, code= 0x24, context= 0x619978a0
PC = 0x602e59dc, Cause = 0x4020, Status Reg = 0x34008002
DCL Masked Interrupt Register = 0x000000f7
DCL Interrupt Value Register = 0x00000010
MEMD Int 6 Status Register = 0x00000000
保存這些信息以及此前的日志。路由器恢復運行時一定要獲得show stacks命令輸出。
syslog
若路由器設置為向syslog服務器發送日志,則可在syslog服務器上顯示崩潰前所發生的事件。但是,在路由器崩潰的情況下,可能不會將最有用的信息發送到syslog服務器上。因此,通常情況下,syslog輸出對於排除崩潰故障不是很有用。
crashinfo
crashinfo文件包含有關當前崩潰的許多有用信息,這些信息保存在bootflash或flash存儲器中。當數據或堆棧損壞引起路由器崩潰時,除了常用的show stacks命令輸出外,還需要更多的重載信息來排除這類崩潰故障。
在Cisco 12000千兆位路由器處理器(GRP)、Cisco 7000和7500路由交換處理器 (RSP)以及Cisco 7200系列路由器上,缺省情況下crashinfo被寫入到bootflash:crashinfo中。對於Cisco 7500通用接口處理器2(VIP2),缺省情況下此文件被保存到bootflash:vip2_slot_no_crashinfo中,其中,slot_no為VIP2插槽號碼。對於Cisco 7000路由處理器(RP),缺省情況下此文件被保存到flash:crashinfo中。
有關更多信息,請參閱 從Crashinfo文件中獲取信息。
core dump
core dump是路由器內存鏡像的全面拷貝。這種信息對於解決大多數類型的崩潰問題是不必要的,但在記錄新的故障時,最好使用這些信息。若要將 debug sanity、scheduler heapcheck process和memory check-interval 1等更多信息添加到core dump 中,則可能需要啟用某些調試工具。
有關詳細信息請參閱 創建Core Dumps。
rom monitor
若路由器的config-register設置以0為結尾,則崩潰後,路由器可能在ROM監視器中終止。若路由器為68k,則提示符為">"。您可通過k命令來獲取堆棧記錄。 若處理器為精簡指令集計算機構(RISC),則提示符將為"rommon 1>"。獲取stack 50和show context的輸出。
[page]
崩潰類型
show version和show stacks命令輸出可顯示所發生崩潰的類型,如:總線錯誤或軟件強制崩潰。您還可以通過crashinfo和show context命令來獲取有關崩潰類型的信息。對於某些較新的Cisco IOS軟件版本,沒有明確顯示崩潰原因(例如,顯示內容為"Signal = x",其中x是一個數字)。若要了解這些數字所表示的意義,請參照通用接口處理器崩潰原因代碼例如:"Signal = 23"是指軟件強制崩潰。根據下面的鏈接來解決路由器上所發生的特定類型的崩潰:
中斷
地址錯誤
總線錯誤
緩存器異常錯誤
錯誤 - 級別
格式錯誤
非法指令
非法Opcode異常
跳到零錯誤
線路仿真器陷阱
加電
處理器內存奇偶校驗錯誤
保留異常
錯誤重新啟動
分段違例異常
共享存儲器奇偶校驗錯誤
SIGTRAP
軟件強制崩潰
跟蹤陷阱
未定義陷阱
意外硬件運行中斷
未知故障
未知重新裝載原因
監視器超時
寫總線錯誤中斷