Cisco ROMMON狀態(tài)下,恢復路由器的IOS
本文主要給大家詳細的介紹了對于思科路由器ROMMON狀態(tài)下,如何恢復路由器的IOS,并且給大家詳細的介紹了使用TFTP恢復IOS;使用Xmodem恢復IOS這兩種方法。
不小心把IOS刪掉或者升級IOS失敗,重起后進入ROMMON(ROMMON狀態(tài)是ROM MONITOR的縮寫)狀態(tài),是比較常見的事,對一個新手而言,前者的可能要大些。兩者都可能使路由器進入ROMMON狀態(tài),不能進行正常的路由轉發(fā)功能和軟件配置,在這種模式下,原IOS中的大部分命令都無法使用。那怎么辦呢?根據Cisco網站的資料,我翻譯整理了兩種常用的方法:1.使用TFTP恢復IOS;2.使用Xmodem恢復IOS。不同的路由器的命令有些不一樣,這里以2600和3600系列路由為例,但是思路應該是差不多的,下面分開講一下這兩種方法:
在進行恢復之前,可以先看一下路由器的Flash里文件,用命令:dir flash:;注意命令中flash后面跟冒號(:),執(zhí)行命令后會顯示flash現存的IOS大小和文件名,如下面:1. rommon 1 > dir flash:
File size Checksum File name
2179331 bytes (0x214103) 0x7b95 c1600-nsy-mz_112-15a_p
如果File name和File size的兩項都是符合你的要求的,正確無誤,那么你就不必要進行升級。這樣也許是你的config-register的設置有問題,正常的一般 config-register應該是0x2102的。注意0x2102中的***一位值2, ***一位值在2到F都是正常的。注意config-register的值控制著路由器的啟動!如果***一位數值不是在這個范圍內,可以使用confreg 命令來改變它的值。關于config-register的16bit的每bit的含意,可以看一下cisco的技術資料,這里就不多說了。如果File name和File size的兩項有一項是錯的,那就進行
下面的升級步驟:
一、 使用TFTP恢復IOS
使用交叉的網線連接你的路由器以太口和裝有TFTP Server軟件的PC機,在PC機上啟動TFTP Server軟件,并把新的IOS文件放在TFTP server所在目錄的根目錄下,如:你的TFTP Server軟件在機器裝的是Cisco TFTP Server目錄,那么就把新的IOS文件放在Cisco TFTP Server目錄下就可以了。用控制線將調試機器與路由器連接起來。(一定要與***個以太口)
接下來的事就是在路由器進行操作了,在路由器上首先要設置一下ROMMON狀態(tài)的環(huán)境變量,注意所有的環(huán)境變量都是大小寫敏感的,一定要注意了!往往出錯就是因為這個原因。具體下面設置如下:
打開機器的超級終端工具,連接上ROUTER,此時窗口中出現
的命令行提示符為: ROMMON 1 > (其中"1"代表命令行的行數)。在提示符后輸入命令:
ROMMON 1 >IP_ADDRESS= ROUTER的IP地址(要和TFTP軟件所在的機器在同一網段內)
ROMMON 2 >IP_SUBNET_MASK= ROUTER的子網掩碼
ROMMON 3 >DEFAUT_GATEWAY= 默認網關地址 (可以沒有,也可以是TFTP服務器)
ROMMON 4 >TFTP_SERVER= TFTP 服務器IP地址
ROMMON 5 >TFTP_FILE= IOS文件名(只給出文件名,不需要路徑)
ROMMON 6 >tftpdnld 回車
注意:前面的幾條命令必須使用大寫,而***的tftpdnld則要用小寫。 設置完后要用sync命令保存環(huán)境變量到NVRAM,用set命令進行察看設置。
在tftpdnld命令執(zhí)行后,只要根據提示選擇,就可完成文件的傳輸。當文件傳輸完后,將自動回到命令行下,輸入reset重啟ROUTER,重啟后就又回到了熟悉的IOS模式下 甚至連以前配置的信息都不會丟失。
下面是具體的例子:
Example
rommon 16 > IP_ADDRESS=172.16.0.1
rommon 17 > IP_SUBNET_MASK=255.255.255.0
rommon 18 > DEFAULT_GATEWAY=172.16.0.2
rommon 19 > TFTP_SERVER=172.16.0.2
rommon 20 > TFTP_FILE=c2600-is-mz.113-2.0.3.Q
rommon 21 > tftpdnld
IP_ADDRESS: 172.16.0.1
IP_SUBNET_MASK: 255.255.255.0
DEFAULT_GATEWAY: 172.16.0.2
TFTP_SERVER: 172.16.0.2
TFTP_FILE: c2600-is-mz.113-2.0.3.Q
Invoke this command for disaster recovery only.
WARNING: all existing data in all partitions on flash will be lost!
Do you wish to continue? y/n: [n]: y
Receiving c2600-is-mz.113-2.0.3.Q from 172.16.0.2 !!!!!.!!!!!!!!!!!!!!!!!!!.!!
File reception completed.
Copying file c2600-is-mz.113-2.0.3.Q to flash.
Erasing flash at 0x607c0000
program flash location 0x60440000
rommon 22 >
二、 使用Xmodem恢復IOS
使用Xmodem和TFTP的主要區(qū)別就在于傳輸的途徑不一樣,TFTP的IOS傳輸必須經過以太網線,而Xmodem則是通過控制線來傳輸的,所以使用 Xmodem恢復IOS就不必進行PC機和路由器的網線連接,也不需要IP地址方面的設置,省了不少事。但是Xmodem是通過控制線(console)來進行傳輸的,一般和cisco路由器相連的控制線波特率是9600,就是9.6k/s,速度很慢傳輸一個幾M大小的文件需要比較長的時間,需要耐心的等待。等待總是讓人很焦慮,我就是一個不喜歡等待的人。幸好,還可以在路由器上更改波特率,***是115200,即115.2K/S,雖然相對100M/s 的快速以太網相差甚遠,但是比9.6k/S的蝸牛速度爽多了吧,所以先進行默認波特率的修改,可以用confreg命令來修改,如下:
rommon 2 > confreg
Configuration Summary
enabled are:
load rom after netboot fails
console baud: 9600
boot: image specified by the boot system commands
or default to: cisco2-C3600
do you wish to change the configuration? y/n [n]: y
enable "diagnostic mode"? y/n [n]: !--- pressing "Enter" accepts the
!--- default (value between the brackets)
enable "use net in IP bcast address"? y/n [n]:
disable "load rom after netboot fails"? y/n [n]:
enable "use all zero broadcast"? y/n [n]:
enable "break/abort has effect"? y/n [n]:
enable "ignore system config info"? y/n [n]:
change console baud rate? y/n [n]: y
enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400
4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [7]: 7
change the boot characteristics? y/n [n]:
Configuration Summary
enabled are:
load rom after netboot fails
console baud: 115200
boot: image specified by the boot system commands
or default to: cisco2-C3600
do you wish to change the configuration? y/n [n]:
You must reset or power cycle for new config to take effect
改完了,你需要重起一下,讓配置生效,注意,你的調試機器上的超級終端的連接波特率也要改為115200,不然你重起后你可能看見的就是一堆亂碼#^¥&%×^×^,呵呵。
接下就是用xmodem命令來做了,xmodem的使用方法如下:
rommon 1 > xmodem [-cyrx] <destination filename>
選項
功能
-c
傳輸過程中使用 CRC-16 檢查. 缺省的是 8-bit CRC.
-y
ymodem-batch 協議使用CRC-16錯誤檢查
-r
讓軟件傳到DRAM中,缺省的是Flash中。
注意: 不推薦!重起后,DRAM的文件會丟失,你還要進行一次恢復IOS.
-x
讓軟件傳到DRAM中,但是不執(zhí)行,除非使用launch 命令。
注意: 不推薦!同上一個參數-r
-f
擦除Flash里全部的文件
這個選項是1600系列路由器指定的;在其他平臺上是缺省項
Examples:
rommon 1 > xmodem -cf c1600-nsy-mz_112-15a_P
rommon 1 > xmodem -y c2500-js-mz_120-14
讓我們step by step來試試:
1. 來執(zhí)行xmodem命令:rommon 1 > xmodem c1600-nsy-mz_112-15a_P
c1600-nsy-mz_112-15a_P是我們打算在路由器中保存的文件名,你可以起自己想要的名字,不過***是按原文件的名字來。
2.等待ROMmon 提示信息,類似下面:
Ready to receive file c1600-nsy-mz_112-15a_P ...
3.ok,可以進行文件傳輸了,在超級終端界面,點擊鼠標右鍵,選擇發(fā)送文件,彈出的對話框,上面選擇你要傳送到路由器內的新的IOS,下面選擇Xmodem協議。然后點擊發(fā)送,就可以了。
4.接下來就是文件傳輸的界面了,耐心些等待吧......
5.當顯示:Download Complete!信息時,就差不多萬事大吉了,不過做為列行的檢查還是必要的,用命令:dir flash: 看看文件是不是已經正確無誤的傳過去了。
rommon 1 > dir flash:
File size Checksum File name
2179331 bytes (0x214103) 0x7b95 c1600-nsy-mz_112-15a_p
6.哈哈,到了***了:使用 reset或者 bootflash:[filename] 命令,如下顯示:
rommon 1 > reset或者rommon 1 > boot flash:c1600-nsy-mz_112-15a_P
重起路由器,ok了嗎?如果已經進入正常的界面了,那就恭喜你了,IOS恢復就成功了,你可以檢查一些看看:show version;show flash等。但是別忘了,剛才你把默認的控制線波特率9600改為115200了,現在要做就是改回來,命令:config t;config-register 0x2102;end。

















