目錄

簡介

必要條件

需求

採用元件

背景資訊

故障方案

在安裝模式下重新載入後，交換器會以舊版本啟動

在安裝模式下升級/重新載入後處於ROMMON模式的交換機

從套件組合轉換為安裝模式

從安裝轉換為套件組合模式

Bin檔案損毀

快閃記憶體中的空間不足

堆疊故障案例(V-Mismatch)

由於堆疊1+1變數，交換機啟動到ROMMON

升級時無法將Bin映像複製/提取到其中一個成員交換機

安裝模式與套件組合模式的限制

舊版請求平台命令

ROMMON改進

ROMMON — 在ROMMON模式下允許檔案傳輸到USB/TFTP/從USB/TFTP

相關資訊

簡介

本文描述升級Catalyst 9000系列裝置時發生的常見故障，並提供恢復步驟。

必要條件

需求

思科建議您瞭解以下主題：

- 如何升級Catalyst 9000系列交換器。

採用元件

本檔案以下列硬體版本為基礎：

- 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 TFTP伺服器測試您的配置。

ping 172.16.0.100

- 一旦建立連線，請直接開機到TFTP上的檔案。

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

相關資訊

- Catalyst 9000交換器開機到交換器：由於堆疊1+1變數而提示

- Cisco IOS XE Catalyst 9000交換器升級指南

- Catalyst 3850、Catalyst 9000 系列交換器上的服務中軟體升級 (ISSU)

- 安裝與套件組合模式

- 思科技術支援與下載