簡介
本文描述升級Catalyst 9000系列裝置時發生的常見故障,並提供恢復步驟。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本檔案以下列硬體版本為基礎:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
Catalyst 9000交換器使用Cisco IOS® XE軟體,並在兩種模式(安裝模式和套件組合模式)下運作。
Install 模式是建議使用的較新執行模式。 安裝模式使用名為packages.conf的套件布建檔來將交換器開機。此外,快閃磁碟機中packages.conf檔案還附有許多.pkg檔案。建議不要變更packages.conf和.pkg檔案。
套件組合模式使用單一Cisco IOS映像(.bin檔案)來將交換器開機。套件組合模式耗用的記憶體比安裝模式還多,這是因為需從套件組合中擷取套件並將其複製到RAM中。 您可以在任一模式下執行Catalyst 9000交換器。
以下是用於驗證操作模式的某些命令的部分輸出示例。在安裝模式下:
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--
以下是用於驗證操作模式的某些命令的部分輸出示例。 在套件組合模式下:
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
步驟2. 使用指令驗證目前的.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
步驟3. 如果檔案指向先前版本,請使用指令檢查快閃記憶體中的.conf檔案是否正確 dir flash: | include conf
和 more flash:
.conf | include pkg
.
Switch#dir flash: | in conf
81132 -rw- 7773 Jan 5 2021 14:59:34 +00:00 packages.conf
步驟4. 將開機變數設定為正確的.conf檔案並重新啟動交換器。
Switch(config)#boot system flash:packages.conf
Switch#copy run start
Switch#reload
在安裝模式下升級/重新載入後處於ROMMON模式的交換機
步驟1. 通過控制檯連線到交換機。
步驟2. 檢查快閃記憶體中的.conf檔案。
Switch:dir flash:
步驟3. 識別正確的.conf檔案。
Switch:more flash:packages.conf
步驟4. 使用正確的.conf檔案啟動交換器
Switch:boot flash:packages.conf
提示:如果您找不到與正確軟體版本對應的.conf檔案,請使用與先前軟體版本對應的.conf檔案啟動交換機。
如果裝置停滯在ROMMON中,並且沒有有效的映像,則您可以選擇通過USB將檔案複製到交換機或TFTP上:
- 選項 1:您可以使用下列命令直接從 USB 隨身碟啟動:
boot usbflash0:cat9k_iosxe.16.12.01.SPA.bin
提示:USB A型埠支援使用FAT檔案系統格式化的128 MB至8 GB容量的USB快閃記憶體驅動器(支援埠密度為128 MB、256 MB、1 GB、4 GB和8 GB的USB裝置)
- 選項#2:從TFTP伺服器複製更加詳細。您需要將筆記型電腦安裝為TFTP伺服器並將乙太網電纜連線到裝置的管理埠,或者需要將裝置的管理埠連線到正常工作的裝置的網路埠。接著,您就可以將含有映像的裝置設定為 TFTP 伺服器.
tftp-server flash:cat9k_iosxe.16.12.01.SPA.bin
- 最好使用路由器/交換機作為TFTP伺服器,這樣您就不必擔心Windows防火牆或電腦帳戶許可權問題。完成TFTP伺服器設定後,需要在ROMMON中配置此設定。
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 |
啟用 範例: switch#enable |
啟用特權執行模式。
|
步驟2 |
顯示版本 範例: switch#show version |
驗證操作模式 |
步驟3 |
show boot 範例: switch#show boot |
顯示BOOT變數的內容、CONFIG_FILE變數指向的配置檔名稱、BOOTLDR變數的內容和配置暫存器 |
步驟4 |
無引導系統 範例: 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步 |
exit 範例: switch(config)#exit |
退出配置模式到層次結構中的下一個最高模式。 |
第7步 |
寫記憶體 範例: switch#write memory |
將檔案從源複製到目標。 |
第8步 |
安裝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步 |
重新載入 範例: 此操作可能需要重新載入系統。 是否要繼續[y/n] |
在裝置重新載入之前,此步驟會要求您確認是否要重新載入 |
步驟10 |
顯示版本 範例: switch#show version |
驗證操作模式 |
此示例說明如何使用舊版請求平台軟體包擴展 指令:
Switch#request platform software package expand file flash:image_name.bin
註:在手動提取過程中,建立的會議檔案可以命名為bin image file_name.conf。確定正確的會議檔案並設定引導變數。
從安裝轉換為套件組合模式
執行下面的步驟,將操作模式從安裝模式轉換為套件組合模式:
程式 |
命令或操作 |
目的 |
步驟1 |
啟用 範例: switch#enable |
啟用特權執行模式。
|
步驟2 |
顯示版本 範例: switch#show version |
驗證操作模式 |
步驟3 |
show boot 範例: switch#show boot |
顯示BOOT變數的內容、CONFIG_FILE變數指向的配置檔名稱、BOOTLDR變數的內容和配置暫存器 |
步驟4 |
無引導系統 範例: 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步 |
exit 範例: switch(config)#exit |
退出配置模式到層次結構中的下一個最高模式。 |
第7步 |
寫記憶體 範例: switch#write memory |
將檔案從源複製到目標。 |
第8步 |
|
|
第9步 |
重新載入 範例: switch#reload |
在裝置重新載入之前,此步驟會要求您確認是否要重新載入 |
步驟10 |
顯示版本 範例: switch#show version |
驗證操作模式 |
Bin檔案損毀
要避免這種情況,請在執行軟體安裝操作之前驗證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)
如果您收到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.從堆疊中移除不相符的交換器。
步驟2. 請將其升級為正確版本。
步驟4. 將啟動變數設定為正確的.bin檔案並儲存配置。
步驟5. 關閉交換器電源,連線堆疊纜線,然後開啟交換器電源。
由於堆疊1+1變數,交換機啟動到ROMMON
如果裝置顯示以下日誌,您可以識別此情況:
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
步驟2. 取消設定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
升級時無法將Bin映像複製/提取到其中一個成員交換機
將映像複製到成員交換器時,有時會發生錯誤:
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. 檢查複製失敗的成員上的快閃記憶體。驗證它是否有足夠的可用空間,或快閃記憶體是否已損壞。
步驟2. 如果空間不足,則刪除檔案以確保有足夠的可用空間。
步驟3. 如果空間可用但仍未複製,則格式化成員交換機的快閃記憶體驅動器。
Switch#format flash-1:
步驟4. 一旦有足夠的空間可用或快閃記憶體已恢復,請執行升級
步驟5. 如果即使在格式化之後,也觀察到同一台交換機的相同錯誤,則對交換機上的快閃記憶體問題進行故障排除。
註:有關版本特定的進一步說明,請參閱您計畫升級到的版本的發行說明。
安裝模式與套件組合模式的限制
安裝模式和套件組合模式的操作有以下限制:
-
不支援在安裝模式下從USB驅動程式或TFTP啟動。
-
在套件組合模式下開機交換器耗用的記憶體比安裝模式還多,這是因為需從套件組合中擷取套件並將其複製到RAM中。
-
自動升級功能預設為停用,且無法在套件組合模式下使用。
舊版請求平台命令
本節介紹如何使用 request platform
命令和,9500和9300上支援這些命令。
- Cisco Catalyst 9000交換器不建議使用此方法。請使用先前提及的其中一種方法 .
- 自 16.10.1 開始,這些命令已遭取代,建議您使用 install 命令.
- 此處列出了三個最重要的命令(還有很多選項,但最好使用
install
命令而不是這些命令)。
拓展
- 此命令會接受您指定的任何 .bin 檔案並擷取 .pkg 檔案.
Switch#request platform software package expand switch all file flash:cat9k_iosxe.16.09.02.SPA.bin
- 如果裝置在套件組合模式下運作。請先執行 expand 命令,再將您的啟動陳述式變更為 packages.conf 並重新載入,以進入 Install 模式
安裝
- 如果您已進入 Install 模式,請使用此命令移至其他版本.
request platform software package install switch all file flash:test auto-copy new
清除
request platform software package clean
ROMMON改進
Cisco IOS XE版本16.12.X提供以下3個ROMMON增強功能
show romvar
— 用於轉儲ROMMON變數的新CLI命令(相當於ROMMON中的「set」命令)
- 能夠從ROMMON模式顯示檔案
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 — 在ROMMON模式下允許檔案傳輸到USB/TFTP/從USB/TFTP
在ROMMON模式中,這些命令可用於在USB/TFTP之間傳輸。
重要:這些命令可從Cisco IOS XE 17.1.1獲得
switch: copy ?
usage:
copy
switch:
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
相關資訊