Cisco設備(路由器)IOS的升級、恢復方法

来源:百度文库 编辑:神马文学网 时间:2024/04/29 11:44:17

                        Cisco設備(路由器)IOS的升級、恢復方法

由于本人曾多次对实验室路由器IOS的恢复、备份(之前更得到了前辈同仁的细心指点),为此对CISCO路由器的日常维护和管理实践中积累了一定的经验。现总结归纳出CISCO路由器IOS映像升级的几种方法,供各位同仁参考。
在介绍CISCO路由器IOS升级方法前,有必要对Cisco路由器的存储器的相关知识作以简单介绍。路由器与计算机相似,它也有内存和操作系统。在Cisco路由器中,其操作系统叫做互连网操作系统(Internetwork Operating System),常简称为IOS。路由器的存储器主要有:
ROM:相当于PC的BIOS(基本输入输出系统)。它主要存放引导程序(相关微操作指令,其目的为检查路由器的硬件信息),其次还存放着IOS的一个最小子集(或者说包含路由器正在使用的IOS的一份副本),它是只读存储器,系统掉电,程序不会丢失;
补充:ROM主要有以下四部分:
加电自检程序(POSTower-on self-test);
启动程序(Bootstrap Program),即Bootstrap码;
ROM monitor,对路由器硬件操作的机器语言代码,当路由器加电后60秒之内按[Break]键或[Ctrl]+ [Break]键,可以进入该命令模式,提示符为 “>”;
Mini IOS,一个简单的IOS,主要在设备没有IOS时起作用,即无法使用Flash中的IOS时,路由器引导启动模式,从而可对路由器进行处理或故障排除,其提示符为“hostname(boot)>”。
RAM/DRAM(Random Access Memory/ Dynamic Random Access Memory):
相当于PC机的内存。它是路由器主要的存储部件。RAM也叫做工作存储器,IOS将随机访问存储器分成共享和主存。主要用来存储运行中的{即为动态的(Running-config) }配置信息(如路由表)及与路由协议有关的IOS数据结构。系统掉电,其内容会丢失;
FLASH (闪存):相当于PC机的硬盘。包含路由器的操作系统(Internetwork Operating System)软件映像文件和其它微代码。由Intel创造的EEPROM,它是一种可擦写、可编程的存储器,它能够用IOS的新版本覆写,IOS升级主要是闪存中的IOS映像文件的更换(升级)。系统掉电,程序不会丢失;
NVRAM(No-Voliate RAM):非易失性随机访问存储器相当于PC的第二硬盘。专门存放路由器的配置文件{ 固定配置文件(Startup-config)}。系统掉电,程序不会丢失。
IOS升级方法一
在对能够正常启动的CISCO路由器的IOS进行升级时,比较简单。具体步骤如下:
1、寻找一种TFTP服务器软件(有CISCO公司的TFTP Server或3COM公司的3Cdaemon等,在升级较大IOS映象文件时,建议用3Cdaemon),安装在一台计算机上,将要升级的IOS映象文件拷贝到相关的目录中(例:D:\),并运行TFTP服务器软件,通过菜单设置Root目录为拷贝IOS映象文件所在目录(如D:\)。假设该计算机的IP地址为192.168.0.1;
2、使用反转线(亦叫控制台线缆)连接路由器的console口与PC机的COM口,并用交叉线连接路由器的以太口和PC的网络接口,使用PC的超级终端软件访问路由器,将路由器以太口的地址设为192.168.0.2(与PC的IP地址同网段即可)。建议在进行IOS升级前将原有IOS文件备份下来,防止待升级的IOS文件存在问题而不可用;
其中备份IOS 有:在此我们对IOS的备份就用命令copy flash tftp 实施,其主要操作如下(操作之前一定要在PC上打开TFTP Server软件,并有以上步骤1的配置):
Router# dir flash: /*查看目前IOS映象文件名,也可用Show version */
Directory of flash:/
1 -rw- 5998292 C2600-I-MZ.122-11.BIN
8388608 bytes total (2390252 bytes free)
Router# copy flash tftp /*备份IOS文件*/
Source filename [] ? c2600-i-mz.122-11.bin
Address or name of remote host [] ? 192.168.0.1 /*TFTP服务器地址*/
Destination filename [c2600-i-mz.122-11.bin] ? /*回车*/
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5998292 bytes copied in 324.071 secs (18509 bytes/sec)
Router#
由此有IOS的升级方法:
首先,如上我们需要在PC上打开TFTP Server软件(同样此软件有以上步骤1的配置),这里我所用的软件是CISCO公司的TFTP Server(如果升级的IOS映象文件较大时,建议用3Cdaemon);
在做完上述工作后,下面是我们开始软件的升级,具体如下:
(1).在路由器的Router# 模式下,输入“copy tftp flash:”命令;
Router# copy tftp flash:
(2).在接下来的“Address or name of remote host []?”提示符中输入安装tftp server的PC的IP地址(即TFTP服务器地址),这里是“192.168.0.1”:
Address or name of remote host []? 192.168.0.1 /*TFTP服务器地址*/
(3).在接下來的“ Source filename []?”提示符,輸入要升級的軟件名,這裡是“c2600-i-mz.122-11.bin”:
Source filename []? c2600-i-mz.122-11.bin /*需升级的新IOS映象文件名*/
(4).在接下來的“Destination filename [c2600-i-mz.122-11.bin]?”提示符中輸入要升級的軟件名(這裡是“c2600-i-mz.122-11.bin”)并回車或不輸軟件名而直接回車以確定。
(5).在接下來的“ Do you want to over write? [confirm]”回車確定。
(6).在接下來的“ Erase flash: before copying? [confirm]”提示符,如果FLASH的空間足夠,我們就可以輸入“n”或“no”即不用刪除原來的IOS系統軟件,若FLASH的空間不夠,那麽我們就可以直接回車或輸入“y”或“yes”后回車以確定,從而刪除原來的軟件,這裡選擇删除原来的软件,直接回车后,升级过程即开始,“eeeeee”表示系统正在删除原有的软件,“!!!!!!!!!”表示系统正在将IOS系统软件从TFTP Server复制到FLASH中。
以上6个步骤在PC超级终端程序上显示的具体操作信息为:
Router#copy tftp flash
Address or name of remote host []? 192.168.0.1 /*TFTP服务器地址*/
Source filename []? c2600-i-mz.122-11.bin / *需升级的新IOS映象文件名*/
Destination filename [c2600-i-mz.122-11.bin]? /*回车即可*/
Do you want to over write? [confirm]
Accessing tftp:// 192.168.0.1/c2600-i-mz.122-11.bin...
Erase flash: before copying? [confirm]
Erasing the flash filesystem will remove all files! Continue? [confirm]
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ...erasedee
Erase of flash: complete
Loading c2600-i-mz.122-11.bin from 192.168.0.1 (via FastEthernet0/0): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 5998292 bytes]
Verifying checksum... OK (0xA0C0)
5998292 bytes copied in 318.282 secs (18846 bytes/sec)
Router#
IOS升级方法二
由于升级失败后或者路由器的config-register寄存器值为0x2101时,开启路由器时、或者在开启(某些型号)Cisco路由器的电源开关后60秒按下[Break]键或[Ctrl]+ [Break]键,中断路由器的正常启动,路由器都会进入ROM的RXBoot 模式即Router(boot)>,在这种情形下,对路由器的IOS进行升级,也比较简单。首先进入特权模式下,即:
Router(boot)>en
Router(boot)#
其他升级步骤同方法一,即:执行copy tftp flash命令,对IOS进行升级。升级完成后,还得修改其配置注册码(Configuration register), config-register默认值为一般为0x2102(即恢复正常值)。
具体操作信息为:
Router(boot)>en
Router(boot)#conf t
Router(boot)(config)# config-register 0x2102 /* configuration register:用来控制router如何启动,这个值可以使用show version来查看,一般为0x2102(16进制),含义是告诉router从闪存里加载IOS和从NVRAM里加载配置文件*/
Router(boot)(config)#exit
Router(boot)#wr /*copy run start(write memory):保存配置文件到NVRAM*/
Router(boot)#reload /*重启即可*/
IOS升级方法三
由于不小心使用了命令erase flash或升级失败后或在开启(某些型号)Cisco路由器的电源开关后60秒内按下[Break]键或[Ctrl]+ [Break]键,中断路由器的正常启动,路由器都会进入ROM监视模式,即 rommon 1>,在这种情形下,对路由器的IOS进行升级,情况要稍微复杂一点。在rommon 1>状态下,可键?请求帮助。(1为命令行序号,每执行1条命令自动加1)
具體操作及顯示的相關幫助信息如下:
rommon 1 > ?
alias set and display aliases command
boot boot up an external process
break set/show/clear the breakpoint
confreg configuration register utility
cont continue executing a downloaded image
context display the context of a loaded image
cookie display contents of cookie PROM in hex
dev list the device table
dir list files in file system
dis display instruction stream
dnld serial download a program module
frame print out a selected stack frame
help monitor builtin command help history monitor command history meminfo main memory information repeat repeat a monitor command reset system reset
set display the monitor variables stack produce a stack trace sync write monitor environment to NVRAM sysret print out info from last system return tftpdnld tftp image download
- 4 -
Written by Strongtzq.唐 (E-mail:Strongtzq@163.com QQ:21033068)
unalias unset an alias unset unset a monitor variable xmodem x/ymodem image download
rommon 2 >
在此监控模式(rommon)下有如下两种方法恢复IOS或对IOS进行升级:
方法1:
使用tftpdnld命令,从TFTP服务器上通过以太口将IOS软件灌进路由器。由此需要TFTP Server软件的配合使用,此方法速度快,一般在低端的路由器上有此命令。具体步骤:
(1).将计算机COM口和路由器的Console口相连,并用交叉线将计算机的网络接口与路由器的以太口(注意:一定是路由器的第一个以太口)相连。之后启动计算机超级终端;
(2). 运行TFTP服务器软件,将要升级的IOS映象文件拷贝到指定的目录(通过菜单设置Root目录为拷贝IOS映象文件所在目录)下;
(3).開啓路由器电源,由于没有有效的版本,路由器会直接进入监控模式(如果路由器内还有损坏的IOS,我们需要按[Break]键或[Ctrl]+ [Break]键进入监控模式)。其中超级终端的提示为“rommon 1 >”而不是我们平常见到的主机名;
(4).按如下命令设置相关配置参数:
假定计算机的IP地址为192.168.0.1(即TFTP服务器的地址),而Router的以太口IP地址为192.168.0.2,其子网掩码为255.255.255.0,在监控模式下将IP地址192.168.0.2配置到Router的第一个以太口,从而建立起Router与TFTP服务器之间的连接。具体操作如下:
通过set 命令查看配置参数
rommon1 > set PS1=rommon ! > BOOT= BSI=0 RET_2_RTS= ?=0
在 rommon 状态下输入:(注意大小写):
rommon2 >IP_ADDRESS=192.168.0.2 /*路由器的IP地址*/
rommon3 >IP_SUBNET_MASK=255.255.255.0 /*路由器的掩码*/
rommon4 >DEFAULT_GATEWAY=192.168.0.1 /*缺省网关,是PC机的IP地址*/
rommon5 >TFTP_SERVER=192.168.0.1 /*PC机的IP地址*/
rommon6 >TFTP_FILE=c2600-i-mz.122-11.bin /*上传ios文件的名称*/
rommon7 >sync /*保存参数配置*/
rommon8 >set /*查看配置参数*/
PS1=rommon ! > BOOT= IP_ADDRESS=192.168.0.2

IP_SUBNET_MASK=255.255.255.0 DEFAULT_GATEWAY=192.168.0.1
TFTP_SERVER=192.168.0.1
TFTP_FILE=c2600-i-mz.122-11.bin BSI=0 RET_2_RTS= ?=0
rommon9 >tftpdnld /*传送文件|出现提示选择y*/
注意:以上的rommon1 >set,Rommon7 >sync,Rommon8 >set这三步可以省略,从而在 rommon 状态下键入关键步骤(仍然得注意大小写):
rommon1 >IP_ADDRESS=192.168.0.2 /*路由器的IP地址*/
rommon2 >IP_SUBNET_MASK=255.255.255.0 /*路由器的掩码*/
rommon3 >DEFAULT_GATEWAY=192.168.0.1 /*缺省网关,是PC机的IP地址*/
rommon4 >TFTP_SERVER=192.168.0.1 /*PC机的IP地址*/
rommon5 >TFTP_FILE=c2600-i-mz.122-11.bin /*上传ios文件的名称*/
rommon6 >tftpdnld /*传送文件|出现提示选择y*/
通过上述命令,在Router监控模式下将IP地址192.168.0.2配置到Router的第一个以太口下,从而建立起路由器与TFTP服务器之间的连接,并将IOS相应版本文件下载到Router的闪存(FLASH)中。
(5).配置寄存器值(即修改配置注册码),将IOS重新写入寄存器:
rommon6 >confreg
当出现提示:do you wish to change the configuration ?y/n 选择y
其他选n
当出现提示:change the boot characterist ?y/n 选y
再选择参数2。
由此(此时)Router的寄存器中会恢复原来的或更高版本。
(6).重启Router:
rommon7 >reset
Router重新启动后,正常状态得以恢复。
提示:执行tftpdnld命令进行IOS升级,有时可能会报错或命令不执行,这时只要用sync命令保存配置后,重新启动路由器(最好关掉电源再开机)后,再执行tftpdnld命令就可以了。
方法2:
使用xmodem命令,通过PC的串口和Router的console口将IOS软件灌进路由器。这种方式的特点是不需要使用网线,只要计算机的串口与Router的console口相连就可以。Xmodem(注:Xmodem与实际的modem没有任何联系)是计算机通信中广泛使用的异步文件传输协议,其以128字节块的形式传输数据,并且每个块都进行相应的校验,如果接收方校验正确,则发送认可信息,发送方即发送下一字块。
具体步骤如下:

(1).用反转线缆(亦叫控制台线缆)连接路由器的console口与PC机的COM
口,使用PC的超级终端软件访问Router(此处无需要对PC和Router配置任何地址),进入Router的监控模式状态:
rommon1 >
(2).输入xmodem命令:
rommon1 >xmodem -c c2600-i-mz.122-11.bin
/*-c是带校验,c2600-i-mz.122-11.bin为存放在PC机上的IOS映像文件*/
此时会提示如下警告:
WARNING: All existing data in bootflash will be lost! Invoke this application only for disaster recovery. Do you wish to continue? y/n [n]: y
此时选择y
Ready to receive file?………
到此即为Router的flash进入接收数据状态。
(3).打开超级终端程序,点击“传送”菜单的“发送文件”项,选择要传送的版本文件:c2600-i-mz.122-11.bin,并选择xmodem的传送协议并确认后(主要是指明IOS映像文件所在的路径),经过几秒的校验,校验完成后即开始上传IOS文件,其IOS文件会以xmodem的方式从PC经反转线拷贝到Router中,由IOS文件大小不同而起传输时间会有所不同,但一般需用时半小时以上(甚至几个小时)才能将文件传完。
(3).配置寄存器值(即修改配置注册码),将IOS重新写入寄存器:
rommon6 >confreg
当出现提示:do you wish to change the configuration ?y/n 选择y
其他选n
当出现提示:change the boot characterist ?y/n 选y
再选择参数2
由此(此时)Router的寄存器中会恢复原来的或更高版本。
(6).重启Router:
rommon7 >reset
Router重新启动后,正常状态得以恢复。
注意:
采用这种方法时,由于使用console口来传送,而xmodem默認的傳輸速率為9600bps,需要时间较长。因此可修改console口的傳輸速率(我們可以設置console口的傳輸速率為115200bps,从而提高xmodem的传输速率),利用xmodem命令实现快速升级IOS。具体方法如下:
rommon1 > confreg
当出现“do you wish to change the configuration? y/n [n]:”时选择y
当出现“change console baud rate? y/n [n]:”时选择y /*选择 yes*/
当出现“enter rate: 0 = 9600,1 = 4800,2 = 1200,3 = 2400,4 = 19200,
5 = 38400,6 = 57600,7 = 115200 [0]:”时选择“7” /*选择7,即选用最大的115200bps速率的xmodem传输*/
其他的都选择n,即no;
而当再次出现“do you wish to change the configuration? y/n [n]:”时选择n;
随即出现 You must reset or power cycle for new config to take effect。
即有操作:
rommon2 >reset
提示:在按reset键前,需要修改串口速度(我的电脑---属性---设备管理器---端口属性---串口速度,将其調為115200bps),然后再修改超级终端里设置速率为115200bps,记住,一定要这么做,否则会出现乱码!然后关闭这个超级终端,重新建立一个超级终端连接,重新启动系统后,出现提示符:
rommon1 >
即可按上述xmodem方法进行传输,此时的速度会快很多。一般等待10-20分钟左右就可升级完3M到6M的IOS文件!待升级完成后,还得记住将计算机串口与超级终端、路由器confreg下的xmodem等传输速率改回原来的默认速率9600bps(其修改方法如上所述)。
另外,如果在路由器的配置里,line con 0 下面存在speed XXX命令,此时还得需要将其去掉,否则终端速率改不过来。
补充:IOS文件的定位
当我们在Router出现诸多故障的时候,前提是能对Router行进相应的简单操作(能正常进入Router的相应配置模式),如对Router相应端口IP地址的分配等,而不能对Router进行复杂的配置,如建立路由协议等操作,而往往出现这些情况就是因为原有Router的IOS文件、系统出现问题,比如当设备没有IOS时,即无法使用Flash中的IOS时,路由器引导启动模式(此时Mini IOS就起作用了,其提示符为“hostname(boot)>”),此时我们便可以在Router中引导其他地方的IOS(从其他地方启动我们的Router的网络操作系统IOS),如:从TFTP服务器上启动。其具体操作步骤:
Router(boot)# configure terminal
Router(boot)(config)# boot system flash IOS_filename
Router(boot)(config)# boot system tftp IOS_filename tftp_address
Router(boot)(config)# boot system ram tftp_address
Router(boot)# copy running-config startup-config/write
在做这些之前必须要先用交叉线连接Router的以太口与PC的网络接口,并配置IP地址于二者之上,且在进行如上操作之前还得开启我们的TFTP Server软件,使得Router能从TFTP服务器上能正常的启动。