本文档讨论在 Cisco 高端路由器上升级 Cisco IOS® 软件镜像的步骤。本文提供的示例基于7500路由器,但程序可应用到其他路由器。Cisco IOS 软件文件名可能根据所使用的产品类型不同而有所不同。
注:要使用本文档中介绍的故障排除工具,您必须是注册用户,并且必须登录。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
步骤 1:安装 TFTP 服务器
简单文件传输协议(TFTP)服务器、远程拷贝协议(RCP)服务器或者文件传输协议服务器(FTP)应用程序必须安装在TCP/IP就绪的工作站或PC上。一旦安装了应用程序,必须遵从下列步骤,执行最低级配置。
配置 TFTP 应用程序使其作为 TFTP 服务器运行,而不是作为 TFTP 客户端。
指定出站文件目录。这是将在其中存储 Cisco IOS 软件映像的目录。大多数TFTP应用程序提供安装例程序辅助这些配置任务。
注意:许多TFTP或RCP应用程序可从独立软件供应商处获得,或作为万维网上公共来源的共享软件提供。
注意:大多数TFTP应用程序无法传输大于16MB的文件。如果您安装的Cisco IOS软件大于16MB,您应该使用FTP或RCP服务器。
步骤 2:选择 Cisco IOS 软件映像
验证您下载的Cisco IOS软件镜像是否支持您的硬件以及所需的软件功能。使用 Cisco Software Advisor(仅限注册用户)可以找到这些信息。 切记,在下载您选中的软件版本之前,路由器必须拥有足够的动态RAM (DRAM)和闪存用于Cisco IOS软件镜像。您可以在每个特定 Cisco IOS 软件版本的发行版本注释中找到建议的最低 DRAM 和闪存要求,也可以在软件下载区中找到该要求。"关于如何选择正确的软件版本和特性集的更多信息,请参阅""如何选择Cisco IOS.软件版本""。"
步骤 3:下载 Cisco IOS 软件镜像
从软件下载区将 Cisco IOS 软件镜像下载到您的工作站或 PC 上。
本文档中的信息基于 Cisco IOS 软件版本 12.1 或更高版本。
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
将讨论以下 Cisco 系列路由器。
Cisco 7000 系列路由器(包括 RP & RSP7000)
Cisco 7100 系列路由器
Cisco 7200 系列路由器
Cisco 7300 系列路由器
Cisco 7400 系列路由器
Cisco 7500 系列路由器
Cisco 7600 系列路由器
Cisco 10000 系列 Internet 路由器 (ESR)
Cisco 12000 系列互联网路由器
Cisco uBR71xx、uBR 72xx、uBR10000 系列路由器
这可以通过直接控制台连接或虚拟Telnet连接执行。直接的控制台连接比Telnet连接更优先,因为多数故障恢复程序要求您提供实际在现场,但Telnet连接却容易在软件安装的重新启动阶段中断。控制台连接通过反转电缆(通常浅黑电缆)来实现,并将路由器的控制台端口连接到PC的COM端口上。在 PC 上打开 HyperTerminal,并使用以下设置:
Speed 9600 bits per second 8 databits 0 parity bits 1 stop bit No Flow Control
注意:如果您在超级终端中收到任何垃圾字符,这意味着您尚未正确设置超级终端属性,或者路由器的配置寄存器设置为控制台连接速度高于9600 bps的非标准值。使用show version命令(显示在输出的最后一行中)检查配置寄存器的值,并确保其设置为0x2102或0x102。必须重新加载路由器,配置寄存器更改才能生效。一旦您确信控制台速率在路由器端设定为9600 bps,您应该检查上述超级终端属性。
有关设置 Hyperterminal 属性的详细信息,请参阅为控制台连接应用正确的终端仿真器设置。
一旦连接到路由器控制台端口,您就会发现该路由器处于ROMmon或启动模式。如果路由器不能正确装载Cisco IOS软件镜像,请进入用于恢复过程和诊断过程的模式之一。如果您没看到通常的路由器提示,那么您应该遵从下面的建议,以便通过升级程序继续操作。
路由器在ROMmon模式或启动模式中启动,控制台出现于下列类似情况信息:
device does not contain a valid magic number boot: cannot open "slot0:" boot: cannot determine first file name on device "slot0:"
如果您正在使用ATA PCMCIA闪存盘,同一个问题看起来可能像这种情况:
device does not contain a valid magic number boot: cannot open "disk0:" boot: cannot determine first file name on device "disk0:"
如果您看到上述错误信息之一,这意味着闪存卡是空的,没有格式化,或没为该平台格式化;文件系统遭到损坏;或闪存卡上的第一个镜像不是一个可启动的Cisco IOS软件镜像。
如果路由器处于 ROMmon 模式,路由器提示如下所示:
rommon1>
如果路由器处于引导模式,路由器提示如下所示:
Router(boot)>
如需了解有关ROMmon恢复的更多信息,请参阅Cisco 7200,7300,7400,7500,RSP7000、Catalyst 5500 RSM,uBR7100、uBR7200、uBR10000和12000系列路由器的ROMmon恢复程序。
如果路由器处于引导模式,可以按照如下 Cisco IOS 软件升级说明继续操作。切记不要将您的配置保存为启动模式,因为引导镜像不包含全部路由功能。
检查并确保TFTP软件升级的TFTP服务器和路由器IP地址,确保这些地址处于同一网段。对路由器执行 Ping 操作以验证二者之间是否存在网络连接。要验证,请检查TFTP服务器的IP地址。如果路由器在启动模式,您可能需要按如下步骤设置默认网关:
Router(boot)> Router(boot)> enable Router(boot)# config terminal Router(boot)(config)# ip default-gateway n.n.n.n-+
如果PCMCIA卡是备用的,在出厂时就是空白的,必须格式化后方能使用。
您也可以使用另一个平台的PCMCIA卡,如果它与您的路由器平台兼容。有关各平台之间的闪存卡兼容性的详细信息,请参阅 PCMCIA 文件系统兼容性列表和文件系统信息。
注意:要从位于PCMCIA闪存卡或闪存盘上的Cisco IOS软件文件启动,闪存卡或磁盘必须在目标平台中格式化。
注意:格式化过程会清除闪存卡上的所有信息。如果要防止闪存卡上保存的存储镜像和配置文件丢失,请在格式化卡之前,将镜像和文件复制到TFTP服务器上:
按照以下说明操作。
将闪存卡插入到可用的 PCMCIA 插槽(slot0 或 slot1)。
按如下所示使用格式 slot0:(或者格式 slot1:)命令格式化闪存卡。
7500#format slot0: Format operation may take a while. Continue? [confirm]y Format operation will destroy all data in "slot0:". Continue? [confirm]y Formatting sector 160..... Format of slot0: complete
注意:ATA PCMCIA闪存磁盘在参考PCMCIA插槽时使用不同的命令语法。如果使用的是 ATA PCMCIA 闪存磁盘,替代为使用命令语法 disk0:,或 disk1:而不使用 slot0: 或 slot1:后者指代线性 PCMCIA 闪存卡。
有关ATA PCMCIA闪存盘和线性PCMCIA闪存卡之间的命令语法区别的更多信息,请见“PCMCIA文件系统兼容性表和文件系统信息”。
这时,您需要验证在闪存卡中您有足够的空间来复制新的镜像。如果没有足够的可用空间,您需要删除一些文件,腾出足够大的空间。在部分情况中,如果镜像非常大,您可能需要撤消闪存卡的当前镜像。
要确定可用空间量并显示当前加载在slot0:中的文件,请发出dir{device:}命令。
在下面的示例中,slot0 包含两个文件系统和 885756 字节的可用空间。该空间不足以用于加载新镜像。
7500#dir slot0: Directory of slot0:/ 1 -rw- 12531084 Jan 02 2000 00:00:20 rsp-jsv-mz.121-13.bin 2 -rw- 7161208 Jan 02 2000 00:14:33 rsp-jsv-mz.112-26.bin 20578304 bytes total (885756 bytes free)
注意:当您看到错误消息,如“%Error oping slot0:(Device not ready)”时,请尝试使用 dir disk0: 命令。
在下面的示例中,为让新的Cisco IOS软件镜像释放足够的空间,我们删除了第二个文件。
7500#delete slot0:rsp-jsv-mz.112-26.bin Delete filename [rsp-jsv-mz.112-26.bin]? [enter] Delete slot0:rsp-jsv-mz.112-26.bin? [confirm][enter] 7500#
删除文件后,使用 dir slot0: 命令检查可用空间。以下输出显示可用空间仍为885756。使用squeeze命令挤压闪存时,可用空间会增加:
7500#dir slot0: Directory of slot0: 1 -rw- 12531084 Jan 02 2000 00:00:20 rsp-jsv-mz.121-13.bin 20578304 bytes total (885756 bytes free)
删除文件后,操作系统将会标记该文件。要释放已删除文件的内存空间,您需要发出 squeeze{device:} 命令,该命令将永久移除已删除的文件。
7500#squeeze slot0: All deleted files will be removed. Continue? [confirm]y Squeeze operation may take a while. Continue? [confirm]y Squeezing... Squeeze of slot0 complete 7500#
删除并压缩文件后,该文件将被永久移除。要检查文件是否被删除,存储空间是否恢复,请发出 dir slot0 命令: 命令。
7500#dir slot0: Directory of slot0:/ 1 -rw- 12531084 Jan 02 2000 00:00:20 rsp-jsv-mz.121-13.bin 20578304 bytes total (8047092 bytes free)
在上述输出中,您会发现空闲闪存容量空间已从885756个字节增加到了8047092个字节。
注意:如果闪存卡上没有有效映像,请勿重新加载或重新启动路由器;这将导致路由器进入 ROMmon 或引导模式。
按照以下说明操作。
现在您已经拥有IP连接性,并且能在充当TFTP服务器的计算机和路由器之间ping通,可以将镜像从TFTP服务器复制到slot0上。
注意:在复制之前,请确保已在PC上启动TFTP服务器软件,并且TFTP服务器根目录中提及文件名。建议您在升级前保留路由器配置的副本。升级本身不影响配置(存储在非易失性RAM - NVRAM中)。 但是,如果没有正确执行操作步骤,则可能会产生影响。
对于RCP应用程序,将所出现的每一个TFTP替换为RCP。例如,用 copy rcp flash 命令代替 copy tftp flash 命令。
7500# copy tftp: slot0:
如果有必要,您可以将映像从一个设备复制到另一个设备。
指定 TFTP 服务器的 IP 地址。
当被提示时,输入TFTP服务器的IP地址,如下例所示:
Address or name of remote host []? 172.17.247.195
指定新Cisco IOS软件镜像的文件名称。
出现提示时,请按照下面的样例输入将要安装的Cisco IOS软件镜像的文件名称:
Source filename []? rsp-jsv-mz.122-6.bin
指定目的地文件名称。
这是新软件镜像加载至路由器时所具有的名称。镜像可以任意命名,但普遍做法是输入同一个镜像文件名。
7500#copy tftp slot0: Address or name of remote host []? 172.17.247.195 Source filename []? rsp-jsv-mz.122-6.bin Destination filename []?rsp-jsv-mz.122-6.bin Accessing tftp://10.1.1.1/rsp-jsv-mz.122-6.bin... Loading rsp-jsv-mz.122-6.bin from 10.1.1.1 (via Ethernet10/5): !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!! [OK - 12531084/25061376 bytes] 12531084 bytes copied in 641.540 secs (19549 bytes/sec) 7500#
成功传输文件后,应验证文件是否在slot0中。发出dir{device:}命令以显示当前位于slot0中的文件:
7500#dir slot0: Directory of slot0:/ 1 -rw- 12519472 Jan 02 2000 00:00:20 rsp-jsv-mz.121-13.bin 2 -rw- 12531084 Jan 02 2000 00:00:20 rsp-jsv-mz.122-6.bin
检验名称与文件大小是否正确。如果您具有一个标准PCMCIA闪存卡,您也可以从show slot0命令的输出中检验PCMCIA校验和是否正确。如果有 ATA 闪存盘,则可以使用 verify /md5 slot0: 命令获取镜像中的 MD5 散列,并将该散列与软件下载区中的散列进行比较。verify命令的MD5选项被引入Cisco IOS软件版本12.0(22)S,并将很快被引入最新的12.2T镜像。您可以在CSCdw84342的“First Fixed-in Version”字段中查看包含MD5验证选项的Cisco IOS软件版本(仅限于注册用户)。
在TFTP复制镜像以后,您需告诉路由器启动时应加载哪个镜像。
此时,新映像现在位于slot0中。您需要设置路由器以启动新映像。默认情况下,路由器将引导闪存中的第一个文件。搜索闪存的顺序是disk0:、disk1:、slot0:、slot1:和最终的bootflash:。当配置中没有boot命令,或者boot语句不准确时,将启用默认值。
可通过两种方法确定当前的引导参数设置:
选项 1:发出show running-config命令,检查您的配置中是否定义了任何引导命令。在下面的示例中,引导语句设置为 boot system flash slot0:rsp-jsv-mz.121-13.bin
7500#show running-config ! version 12.2 service timestamps debug uptime service timestamps log uptime no service password-encryption no service single-slot-reload-enable ! hostname 7500 ! boot system flash slot0:rsp-jsv-mz.121-13.bin ! ip subnet-zero
选项 2:发出 show bootvar 命令。
注意:show bootvar命令取代了show boot命令。请参阅 show bootvar 命令。
7500#show bootvar BOOT variable = slot0:rsp-jsv-mz.121-13.bin,12; CONFIG_FILE variable = BOOTLDR variable does not exist Configuration register is 0x102 7500#
上面的输出还显示引导变量为 slot0:rsp-jsv-mz.121-13.bin。如果在您的配置中有boot system命令条目,那么您应从配置中取消这些条目。有关删除引导项的详细信息,请参阅下一部分。
如果要去除这些命令,请进入配置终端模式。在配置模式中,您可在每个引导语句前面键入“no”,取消所有命令。以下示例说明了如何删除现有的引导语句:
7500#configure terminal Enter configuration commands, one per line. End with CNTL/Z. 7500(config)#no boot system flash slot0:rsp-jsv-mz.121-13.bin 7500(config)#^Z 7500#
将从配置中删除语句“boot system flash slot0:rsp-jsv-mz.121-13.bin”。请通过发出 show running-config 命令检验该命令是否已经去除。
现在设定路由器以新的镜像进行启动。请发出以下命令来设定引导系统参数:
boot system flash slot0:{imagename}(imagename = 新 IOS 镜像的名称)
7500#configure terminal Enter configuration commands, one per line. End with CNTL/Z. 7500(config)#boot system flash slot0:rsp-jsv-mz.122-6.bin 7500(config)#^Z 7500#write mem 3d01h: %SYS-5-CONFIG_I: Configured from console by vty0 Building configuration... 7500#
在配备有 ATA PCMCIA 闪存盘的平台上,该命令语法为:
boot system [device]:{imagename}
例如:
7500(config)#boot system disk0:rsp-jsv-mz.122-6.bin
请务必发出show bootvar或show version命令,验证您是否正在使用config-register 0x2102。如果是不同的设定,您可以通过在配置模式中发出以下命令进行改变:
7500#configure terminal Enter configuration commands, one per line. End with CNTL/Z. 7500(config)#config-register 0x2102 7500(config)#^Z 7500#write mem
通过发出 show bootvar 命令验证引导参数。
7500#show bootvar BOOT variable = slot0:rsp-jsv-mz.122-6.bin,12; CONFIG_FILE variable = BOOTLDR variable does not exist Configuration register is 0x102 (will be 0x2102 at next reload) 7500#
如上所述,在更改配置寄存器后,在下次重新加载时,更改才会生效。
为使路由器运行新的Cisco IOS软件镜像,您需要重新加载路由器。通过发出 copy run start 或 write mem 命令确保已保存相应配置。
7500#write mem 3d01h: %SYS-5-CONFIG_I: Configured from console by vty0 (127.0.0.11) Building configuration... 7500#reload
在路由器启动之后,通过发出show version命令,确定您当前正在运行新版本的编码:
7500#show version Cisco Internetwork Operating System Software IOS (tm) RSP Software (RSP-JSV-M), Version 12.2(6), RELEASE SOFTWARE (fc3) Copyright (c) 1986-2002 by cisco Systems, Inc. Compiled Wed 30-Jan-02 19:58 by kellythw Image text-base: 0x60010958, data-base: 0x6148A000 ROM: System Bootstrap, Version 11.1(8)CA1, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) BOOTLDR: RSP Software (RSP-BOOT-M), Version 12.2(6), RELEASE SOFTWARE (fc2) 7500-A uptime is 0 minutes System returned to ROM by reload at 00:05:37 PST Sat Jan 1 2000 System image file is "slot0:rsp-jsv-mz.122-6.bin" !-- you have booted the correct image cisco RSP4 (R5000) processor with 131072K/2072K bytes of memory. R5000 CPU at 200Mhz, Implementation 35, Rev 2.1, 512KB L2 Cache Last reset from power-on G.703/E1 software, Version 1.0. G.703/JT2 software, Version 1.0. Channelized E1, Version 1.0. X.25 software, Version 3.0.0. SuperLAT software (copyright 1990 by Meridian Technology Corp). Bridging software. TN3270 Emulation software. Primary Rate ISDN software, Version 1.1. Chassis Interface. 1 EIP controller (6 Ethernet). 1 AIP controller (1 ATM). 2 TRIP controllers (8 Token Ring). 2 MIP controllers (2 T1) (2 E1). 6 Ethernet/IEEE 802.3 interface(s) 8 Token Ring/IEEE 802.5 interface(s) 48 Serial network interface(s) 1 ATM network interface(s) 2 Channelized E1/PRI port(s) 2 Channelized T1/PRI port(s) 123K bytes of non-volatile configuration memory. 20480K bytes of Flash PCMCIA card at slot 0 (Sector size 128K). 16384K bytes of Flash PCMCIA card at slot 1 (Sector size 128K). 8192K bytes of Flash internal SIMM (Sector size 256K). No slave installed in slot 6. Configuration register is 0x2102
验证Cisco IOS软件版本12.2(6)是正确的,该配置寄存器设置为0x2102。