此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍升级Catalyst 9000系列设备时发生的常见故障,并提供恢复步骤。
Cisco 建议您了解以下主题:
本文档基于以下硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
Catalyst 9000交换机使用Cisco IOS® XE软件,在两种模式(安装模式和捆绑模式)下运行。
安装模式是较新的且推荐使用的运行模式。 安装模式使用名为packages.conf的软件包调配文件来引导交换机。此外,闪存驱动器中packages.conf文件附带有许多.pkg文件。建议不要修改packages.conf和.pkg文件。
捆绑包模式使用单片Cisco IOS映像(.bin文件)来启动交换机。捆绑包模式比安装模式消耗更多内存,因为软件包是从捆绑包中提取并复制到RAM。 您可以在任一模式下运行Catalyst 9000交换机。
以下是一些命令的部分示例输出,用于检验操作模式。在INSTALL模式下:
Switch#show version | be Mode
Switch Ports Model SW Version SW Image Mode
------ ----- ----- ---------- ---------- ----
* 2 60 C9500-12Q 16.12.4 CAT9K_IOSXE INSTALL <-------
Switch#show run | inc boot system
boot system bootflash:packages.conf <-------
Switch#show boot
---------------------------
Switch 1
---------------------------
Current Boot Variables:
BOOT variable = flash:packages.conf; <-------
--snip--
以下是一些命令的部分示例输出,用于检验操作模式。 在BUNDLE模式下:
Switch#show version | be Mode
Switch Ports Model SW Version SW Image Mode
------ ----- ----- ---------- ---------- ----
* 2 60 C9500-12Q 16.12.4 CAT9K_IOSXE BUNDLE <-------
Switch#show run | inc boot system
boot system bootflash:cat9k_iosxe.16.12.04.SPA.bin <------- BUNDLE mode .bin image
Switch#show boot
---------------------------
Switch 1
---------------------------
Current Boot Variables:
BOOT variable = bootflash:cat9k_iosxe.16.12.04.SPA.bin; <------- switch set to boot from .bin image
--snip--
如果switch boot语句仍指向早期版本而不是新版本,则会发生这种情况。要验证这一点,可以执行以下步骤:
步骤1: 使用命令验证引导变量 show boot
.
Switch#show boot
---------------------------
Switch 1
---------------------------
Current Boot Variables:
BOOT variable = flash:packages.conf;
Boot Variables on next reload:
BOOT variable = flash:packages.conf;
Manual Boot = no
Enable Break = yes
Boot Mode = DEVICE
iPXE Timeout = 0
第二步: 使用命令验证当前.conf文件属于哪个版本 more flash:packages.conf | include pkg
.
Switch#more flash:packages.conf | in pkg
boot rp 0 0 rp_boot cat9k-rpboot.17.03.02a.SPA.pkg
iso rp 0 0 rp_base cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 0 0 rp_daemons cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 0 0 rp_iosd cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 0 0 rp_security cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 0 0 rp_wlc cat9k-wlc.17.03.02a.SPA.pkg
iso rp 0 0 rp_webui cat9k-webui.17.03.02a.SPA.pkg
iso rp 0 0 srdriver cat9k-srdriver.17.03.02a.SPA.pkg
iso rp 0 0 guestshell cat9k-guestshell.17.03.02a.SPA.pkg
boot rp 1 0 rp_boot cat9k-rpboot.17.03.02a.SPA.pkg
iso rp 1 0 rp_base cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 1 0 rp_daemons cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 1 0 rp_iosd cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 1 0 rp_security cat9k-rpbase.17.03.02a.SPA.pkg
iso rp 1 0 rp_wlc cat9k-wlc.17.03.02a.SPA.pkg
iso rp 1 0 rp_webui cat9k-webui.17.03.02a.SPA.pkg
iso rp 1 0 srdriver cat9k-srdriver.17.03.02a.SPA.pkg
iso rp 1 0 guestshell cat9k-guestshell.17.03.02a.SPA.pkg
第三步: 如果文件指向早期版本,请使用命令检查闪存中正确的.conf文件 dir flash: | include conf
和 more flash:
.
Switch#dir flash: | in conf
81132 -rw- 7773 Jan 5 2021 14:59:34 +00:00 packages.conf
第四步: 设置引导变量以更正.conf文件并重新启动交换机。
Switch(config)#boot system flash:packages.conf
Switch#copy run start
Switch#reload
步骤1: 通过控制台登录交换机。
第二步: 检查闪存中的.conf文件。
Switch:dir flash:
第三步: 确定正确的.conf文件。
Switch:more flash:packages.conf
第四步: 使用正确的.conf文件启动交换机
Switch:boot flash:packages.conf
提示:如果您找不到与正确的软件版本对应的.conf文件,请使用与以前的软件版本对应的.conf文件启动交换机。
在设备陷入没有有效映像的ROMMON中的情况下,您可以选择通过USB将文件复制到交换机或通过TFTP:
boot usbflash0:cat9k_iosxe.16.12.01.SPA.bin
提示:USB A型端口支持使用FAT文件系统格式化的USB闪存驱动器,容量从128 MB到8 GB(支持端口密度为128 MB、256 MB、1 GB、4 GB和8 GB的USB设备)
tftp-server flash:cat9k_iosxe.16.12.01.SPA.bin
DEFAULT_GATEWAY=172.16.0.1
IP_ADDRESS=172.16.0.10
IP_SUBNET_MASK=255.255.255.0
TFTP_SERVER=172.16.0.100
ping 172.16.0.100
boot tftp://172.16.0.100/cat9k_iosxe.16.12.01.SPA.bin
执行以下操作步骤将操作模式从捆绑包模式转换为安装模式:
步骤 | 命令或操作 | 目的 |
第 1 步 | enable 示例: switch#enable |
启用特权执行模式。
|
步骤 2 | show version 示例: switch#show version |
验证操作模式 |
步骤 3 | show boot 示例: switch#show boot |
显示BOOT变量的内容、CONFIG_FILE变量指向的配置文件名称、BOOTLDR变量的内容和配置寄存器 |
步骤 4 | no boot system 示例: switch(config)#no boot system |
删除启动系统映像规范。 注:在应用no boot system命令之前,请确保已加载要使用的Cisco IOS版本的.bin文件。 |
步骤 5 | boot system switch all flash 示例: switch(config)#boot system switch all flash:packages.conf |
更新堆栈中所有交换机的启动变量。 |
步骤 6 | 退出 示例: switch(config)#exit |
退出配置模式到层次结构中的下一个最高模式。 |
步骤 7 | 写存储器 示例: switch#write memory |
将文件从源复制到目标。 |
步骤 8 | install add file flash 示例: switch#install add file flash:cat9k_iosxe.16.12.04.SPA.bin activate commit 或 switch#install add file flash:cat9k_iosxe.16.12.04.SPA.bin activate switch#install commit |
将单个Cisco IOS XE软件包和调配文件从指定捆绑包扩展到特定目标目录。 注意:如果您不想在一个步骤中完成升级,可以将其分解为各个步骤 |
步骤 9 | reload 示例: 此操作可能需要重新加载系统。 是否要继续[y/n] |
它会要求您在系统重新加载设备之前确认是否要重新加载 |
步骤 10 | show version 示例: switch#show version |
验证操作模式 |
此示例说明如何使用旧版请求平台软件包扩展 指令:
Switch#request platform software package expand file flash:image_name.bin
注:在手动提取过程中,创建的配置文件可以命名为bin image file_name.conf。确定正确的配置文件并设置引导变量。
执行以下操作步骤将操作模式从安装模式转换为捆绑模式:
步骤 | 命令或操作 | 目的 |
第 1 步 | enable 示例: switch#enable |
启用特权执行模式。
|
步骤 2 | show version 示例: switch#show version |
验证操作模式 |
步骤 3 | show boot 示例: switch#show boot |
显示BOOT变量的内容、CONFIG_FILE变量指向的配置文件名称、BOOTLDR变量的内容和配置寄存器 |
步骤 4 | no boot system 示例: switch(config)#no boot system |
删除启动系统映像规范。 注:在应用no boot system命令之前,请确保已加载要使用的Cisco IOS版本的.bin文件。 |
步骤 5 | boot system switch all flash 示例: switch(config)#boot system switch all flash:cat9k_iosxe.16.12.04.SPA.bin |
更新堆栈中所有交换机的启动变量。 |
步骤 6 | 退出 示例: switch(config)#exit |
退出配置模式到层次结构中的下一个最高模式。 |
步骤 7 | 写存储器 示例: switch#write memory |
将文件从源复制到目标。 |
步骤 8 | ||
步骤 9 | reload 示例: switch#reload |
它会要求您在系统重新加载设备之前确认是否要重新加载 |
步骤 10 | show version 示例: switch#show version |
验证操作模式 |
为避免这种情况,请在执行软件安装操作之前验证md5校验和值。 如果md5校验和值不匹配,请再次将bin文件复制到闪存中。
Switch#verify /md5 flash:.bin
为避免这种情况,请在安装软件之前执行软件清理操作。软件清理的命令语法取决于交换机当前使用的代码版本。
对于16.6.3及更低版本:
Switch#request platform software package clean
对于16.6.4及更高版本:
Switch#install remove inactive
如果您获得V-mismatch,这意味着交换机上安装的软件不同于活动软件,如以下命令输出所示:
switch#show switch
Switch/Stack Mac Address : 08ec.f5e1.8f80 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
*1 Active 08ec.f5e1.8f80 10 V01 Ready
2 Member 701f.5300.fa00 15 V01 V-Mismatch <--- Indicates a version mismatch
如果您处于安装模式,则可以选择使用auto-upgrade命令解决此问题。 自动升级功能的目的是允许交换机升级到兼容的软件映像,以便交换机可以加入交换机堆栈。 当新交换机尝试加入交换机堆叠时,活动交换机将执行兼容性检查。每个堆叠成员将兼容性检查的结果发送到活动交换机,活动交换机使用该结果来确定交换机是否可以加入交换机堆叠。如果新交换机上的软件与交换机堆叠不兼容,新交换机将进入版本不匹配(VM)模式。如果在当前交换机堆叠上启用了自动升级功能,活动交换机将使用安装在兼容堆叠成员上的相同软件映像自动升级新交换机。自动升级在检测到不匹配的软件后几分钟启动。
您可以通过 software auto-upgrade enable
全局配置命令。
注:默认情况下禁用自动升级。自动升级功能在捆绑包模式下不可用。交换机堆叠必须在安装模式下运行。
如果您处于捆绑包模式,请执行以下操作步骤:
步骤1:从堆叠中删除不匹配的交换机。
第二步: 将其升级到正确的版本。
第四步: 将引导变量设置为正确的.bin文件并保存配置。
第五步: 关闭交换机电源,连接堆栈电缆并打开交换机电源。
如果设备显示以下日志,则可以识别此情况:
switch:boot
attempting to boot from [flash:packages.conf]
Located file packages.conf
##########################################################################################################################
Validate packages: SHA-1 hash:
calculated 550C9730:667B2788:DD6F6B06:D0FFA819:01A315DA
expected 550C9730:667B2788:DD6F6B06:D0FFA819:01A315DA
Both links down, not waiting for other switches
Switch number is 2
Chassis 2 reloading, reason - Active/standby selection failed in 1+1 Mode <<<<<<
Feb 19 20:06:55.572 FP0/0: %PMAN-5-EXITACTION: Process manager is exiting: reload fp action requested
Feb 19 20:06:57
Initializing Hardware...
恢复:
步骤1:取消设置Stack 1+1变量。
Switch:unset STACK_1_1
第二步: 取消设置Stack 1+1引导加载程序变量后,发出 boot
命令,以便交换机可以从交换机上设置的引导变量启动。
switch:boot
##########################################################################################################################
Validate packages: SHA-1 hash:
calculated 550C9730:667B2788:DD6F6B06:D0FFA819:01A315DA
expected 550C9730:667B2788:DD6F6B06:D0FFA819:01A315DA
Both links down, not waiting for other switches
Switch number is
有时,在将映像复制到成员交换机时可能会出错:
Preparing install operation ...
[1]: Copying software from active switch 1 to switch 2
[2]: % Failed to copy file flash:cat9k_iosxe.17.03.03.SPA.bin from active switch 1 to switch 2,
operation aborted
恢复:
步骤1: 检查复制失败的成员上的闪存。验证它是否有足够的可用空间,或者闪存是否损坏。
第二步: 如果空间不足,则删除文件以确保有足够的可用空间。
第三步: 如果空间可用但仍未复制,则格式化成员交换机的闪存驱动器。
Switch#format flash-1:
第四步: 一旦有足够的空间可用或闪存已恢复,请执行升级
第五步: 如果即使在格式化后发现同一交换机有相同错误,请排除交换机上的闪存问题。
注意:有关特定于版本的进一步说明,请参阅您计划升级到的版本的版本说明。
安装模式和捆绑操作模式具有以下限制:
不支持从安装模式下的USB驱动程序或TFTP启动。
在捆绑包模式下启动交换机比安装模式消耗更多内存,因为软件包是从捆绑包中提取出来并复制到RAM。
自动升级功能默认为禁用,在捆绑包模式下不可用。
本节介绍如何使用 request platform
命令和9500和9300上支持的命令。
install
命令而不是这些命令)。 扩大采购
Switch#request platform software package expand switch all file flash:cat9k_iosxe.16.09.02.SPA.bin
Install(安装)
request platform software package install switch all file flash:test auto-copy new
Clean(清理)
request platform software package clean
Cisco IOS XE版本16.12.X提供以下3个ROMMON增强功能
show romvar
— 转储ROMMON变量的新CLI命令(相当于ROMMON中的“set”命令)show bootlog
- ROMMON升级日志会被捕获,并同时从Cisco IOS和ROMMON模式提供注:默认情况下启用此功能。禁用功能集 ROMMON_BOOT_LOG_DISABLE=1
在ROMMON提示符下
C9200L#show romvar ---------------------------------- ROMMON variables for Active Switch ----------------------------------
AUTOBOOT_COUNT="0"
AUTOBOOT_STATE="0"
BAUD="9600"
BOOT="tftp://chinmoha/pol.bin;"
BOOT64="flash:quake.itb.ssa.181009"
BOOT_LOADER_UPGRADE_DISABLE="yes"
BOOT_PARAM="ip=172.16.0.230::172.16.0.1:255.255.0.0:vore:eth0:on DEBUG_CONF= REAL_MGMTE_DEV="
CFG_MODEL_NUM="C9200L-48T-4X-E"
CLEI_CODE_NUMBER="INM6H00ARA"
DEFAULT_GATEWAY="172.16.0.1"
DEFAULT_ROUTER="172.16.0.1"
ENABLE_BREAK="yes"
IP_ADDRESS="172.16.0.230"
IP_MASK="255.255.0.0"
IP_SUBNET_MASK="255.255.0.0"
LICENSE_BOOT_LEVEL="network-essentials,all:C9200L-48;"
MAC_ADDR="70:B3:17:2E:1C:80"
MANUAL_BOOT="yes"
MODEL_NUM="C9200L-48T-4X"
MODEL_REVISION_NUM="29"
MOTHERBOARD_ASSEMBLY_NUM="73-19242-03"
MOTHERBOARD_REVISION_NUM="04"
MOTHERBOARD_SERIAL_NUM="JAE22370MLD"
ROMMON_AUTOBOOT_ATTEMPT="3"
ROMMON_BOARDID="0x315"
ROMMON_BOARDREV="0x4"
ROMMON_BOOT_LOG="1" ---> boot log is enabled (default)
STANDALONE="1"
SWITCH_NUMBER="1"
SYSTEM_SERIAL_NUM="JAE22370MLD"
TAN_NUM="68-101384-01"
TEMPLATE="advanced"
TFTP_SERVER="172.16.0.25"
USB_DB_INFO="73-18785-03A0JAE22410UH0"
VERSION_ID="PPC"
ABNORMAL_RESET_COUNT="0"
BSI="0"
RANDOM_NUM="966540990"
C9200L#show bootlog switch active r0
=========================================================
//// ROMMMON Boot up log start ////
System Bootstrap, Version 99.2, DEVELOPMENT SOFTWARE Compiled Wed 12/12/2018 14:56:53 by chinmoha Copyright (c) 2018 by Cisco Systems, Inc. Current ROMMON image : Primary C9200L-48T-4X platform with 2097152 Kbytes of main memory switch: boot: attempting to boot from [tftp://chinmoha/pol_try.bin] Filename : /chinmoha/pol_try.bin IpAddress : 172.16.0.230 TftpServer : 172.16.0.25 TftpBlkSize : 1468 * File Size : 349275061
//// ROMMMON Boot up log end //// ========================================================== [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.4.155 (xelinux@xe-linux-bld1) (gcc version 5.3.0 (GCC) ) #1 SMP Thu Dec 13 00:46:18 PST 2018 [ 0.000000] Boot CPU: AArch64 Processor [410fd034] [ 0.000000] Cisco Package: start=0xa2000000 [ 0.000000] Cisco Package: size=0x12b02000 [ 0.000000] Cisco Package at 0xffffffc022000000 (313532416 bytes) [ 0.000000] crashkernel reserved: 0x00000000fde00000 - 0x00000000ffe00000 (32 MB) [ 0.000000] cma: Reserved 128 MiB at 0x00000000f0000000 [ 0.000000] On node 0 totalpages: 524229 [ 0.000000] DMA zone: 8192 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 524229 pages, LIFO batch:31 [ 0.000000] PERCPU: Embedded 15 pages/cpu @ffffffc07ffa3000 s24472 r8192 d28776 u61440 [ 0.000000] pcpu-alloc: s24472 r8192 d28776 u61440 alloc=15*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: enabling workaround for ARM erratum 845719 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 516037
--snip--
在ROMMON模式中,这些命令可用于在USB/TFTP之间传输。
重要信息:这些命令可从Cisco IOS XE 17.1.1获得
switch: copy ? usage: copyswitch: switch: dir usage: dir <path-to-directory> supported filesystem(s): flash: ro flash bootflash: ro system partition usbflash0: rw front-panel USB usbflash1: rw back-panel USB switch: dir flash: Size Attributes Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - —snip— 616 -rw- vlan.dat 4096 drw- tech_support 835079148 -rw- cat9k_iosxe.17.01.01.SPA.bin 910498192 -rw- cat9k_iosxe.BLD_POLARIS_DEV_LATEST_20191212_030414_2.SSA.bin 9307 -rw- cat9k_iosxe.BLD_POLARIS_DEV_LATEST_20180819_200912_2.SS.conf —snip— - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - switch: copy flash:vlan.dat usbflash0: Using Destination file path: usbflash0:vlan.dat Reading : 616 Writing : 616 switch: switch: dir usbflash0: Size Attributes Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - —snip— 880878448 -rw- cat9k_iosxe.sh_tech_cts 835079148 -rw- cat9k_iosxe.17.01.01.SPA.bin 4096 -rw- ._cat9k_iosxe.17.01.01.SPA.bin 910498192 -rw- cat9k_iosxe.BLD_POLARIS_DEV_LATEST_20191212_030414_2.SSA.bin 616 -rw- vlan.dat - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
版本 | 发布日期 | 备注 |
---|---|---|
3.0 |
15-Mar-2023 |
固定了表大小,并做了一些细微的CLI样式更改。重新认证。 |
2.0 |
28-Dec-2021 |
固定表大小,并做了一些细微的CLI样式更改 |
1.0 |
23-Dec-2021 |
初始版本 |