目錄

簡介

需求

採用元件

背景資訊

安裝模式概述

套件組合模式

安裝模式

升級方法

自動升級

安裝模式

流程概述

Install 模式命令

套件組合模式

傳統方法

Stackwise虛擬

雙 SUP

四 SUP

ISSU

升級選項

ReloadFast

Cleanup

疑難排解

V-Mismatch

從 ROMMON 復原

成員中缺少Bin檔案

已經安裝超級套件

不正確的開機變數

案例 1

案例 2

相關資訊

思科錯誤ID

簡介

本檔案將說明Catalyst 9000 (Cat9K)交換器的升級方法。

需求

本文件沒有特定需求。

採用元件

本文件中的資訊是以下列軟體和硬體版本為依據.

- C9200

- C9300

- C9400

- C9500

- C9600

注意：有關用於在其他Cisco平台上啟用這些功能的命令，請參閱相應的配置指南。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

本文檔介紹使用捆綁包模式或安裝模式的Catalyst 9K型別交換機的新舊升級過程。

安裝模式概述

套件組合模式

套件組合模式是一種表示交換器執行傳統Cisco IOS®方式的花哨方式。您引導的.bin檔案包含運行Cisco IOS所需的所有內容。根據傳統Cisco IOS，您有一個指向要載入的.bin檔案並在啟動時載入的啟動語句。

Switch#show boot

BOOT variable = bootflash:cat9k_iosxe.16.11.01.SPA.bin;

Configuration Register is 0x102

MANUAL_BOOT variable = no

BAUD variable = 9600

ENABLE_BREAK variable does not exist

BOOTMODE variable does not exist

IPXE_TIMEOUT variable does not exist

CONFIG_FILE variable =

您必須使用boot system指令設定此開機陳述式。 下次重新載入時，交換機將引導到16.12.01而不是16.11.01。

Switch#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Switch(config)#no boot system

Switch(config)#boot system bootflash:cat9k_iosxe.16.12.01.SPA.bin <---

Switch(config)#end

Switch#wr

Switch#

Switch#show run | include boot system

boot system bootflash:cat9k_iosxe.16.12.01.SPA.bin

Switch#

Switch#show boot

BOOT variable = bootflash:cat9k_iosxe.16.12.01.SPA.bin; <---

Configuration Register is 0x102

MANUAL_BOOT variable = no

BAUD variable = 9600

ENABLE_BREAK variable does not exist

BOOTMODE variable does not exist

IPXE_TIMEOUT variable does not exist

CONFIG_FILE variable =

安裝模式

Install 模式是建議使用的較新執行模式。此模式會將 .bin 檔案拆分成較小的 .pkg 檔案，這些檔案必須彼此獨立載入至記憶體，可讓您更快啟動且更有效地利用記憶體。您從software.cisco.com下載的.bin檔案中包含您需要的所有.pkg檔案。

附註：將.bin檔案想像為.zip檔。 您可以解壓縮該檔案來取得 .pkg 檔案。另外，還有一個用來指出需要哪些 .pkg 檔案的組態檔。以下是以 Install 模式啟動時所使用的程序。

1. 會檢視啟動陳述式，以決定要載入的組態檔（通常是packages.conf）。

2. 開啟組態檔並使用該檔案來分類要載入的 .pkg 檔案.

3. 載入.pkg檔案後，Cisco IOS完成啟動過程。

- .conf檔案只是用作指標的文本檔案，您可以打開它並從CLI檢視它。

- 此組態檔設定為載入16.11.01。現在，您不必為了升級裝置而更改引導語句，只需將packages.conf檔案更改為指向新的.pkg檔案。

附註：此操作會自動完成，您再也不必直接編輯此檔案。不過，在重新載入之前，您可以檢查 .conf 檔案指向的套件檔案，以確保其指向正確的項目。

Switch#more packages.conf

#! /usr/binos/bin/packages_conf.sh

<...snip...>

# This is for CAT9k

boot  rp 0 0   rp_boot         cat9k-rpboot.16.11.01.SPA.pkg

iso   rp 0 0   rp_base         cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 0 0   rp_daemons      cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 0 0   rp_iosd         cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 0 0   rp_security     cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 0 0   rp_wlc          cat9k-wlc.16.11.01.SPA.pkg

iso   rp 0 0   rp_webui        cat9k-webui.16.11.01.SPA.pkg

iso   rp 0 0   srdriver        cat9k-srdriver.16.11.01.SPA.pkg

iso   rp 0 0   guestshell      cat9k-guestshell.16.11.01.SPA.pkg

boot  rp 1 0   rp_boot         cat9k-rpboot.16.11.01.SPA.pkg

iso   rp 1 0   rp_base         cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 1 0   rp_daemons      cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 1 0   rp_iosd         cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 1 0   rp_security     cat9k-rpbase.16.11.01.SPA.pkg

iso   rp 1 0   rp_wlc          cat9k-wlc.16.11.01.SPA.pkg

iso   rp 1 0   rp_webui        cat9k-webui.16.11.01.SPA.pkg

iso   rp 1 0   srdriver        cat9k-srdriver.16.11.01.SPA.pkg

iso   rp 1 0   guestshell      cat9k-guestshell.16.11.01.SPA.pkg

<...snip...>

#

# -start- superpackage .pkginfo

#

# pkginfo: Name: rp_super

# pkginfo: BuildTime: 2019-03-28_09.46

# pkginfo: ReleaseDate: Thu-28-Mar-19-01:19

# pkginfo: .BuildArch: x86_64

# pkginfo: BootArchitecture: i686

# pkginfo: .BootArch: i686

# pkginfo: RouteProcessor: cat9k

# pkginfo: Platform: CAT9K

# pkginfo: User: mcpre

# pkginfo: PackageName: universalk9

# pkginfo: Build: 16.11.01

# pkginfo: .SupportedBoards: cat9k

# pkginfo: .InstallModel:

# pkginfo: .PackageRole: rp_super

# pkginfo: .RestartRole: rp_super

# pkginfo: .UnifiedPlatformList: passport,nyquist,starfleet

# pkginfo: CardTypes:

# pkginfo: .CardTypes:

# pkginfo: .BuildPath: /scratch/mcpre/release/BLD-V16_11_01_FC3/binos/linkfarm/stage-cat9k/hard/rp_super_universalk9.x86_64

# pkginfo: .Version: 16.11.1.0.312.1553791584..Gibraltar

# pkginfo: .InstallVersion: 1.0.0

# pkginfo: .InstallCapCommitSupport: yes

#

# -end- superpackage .pkginfo

#

當您以 Install 模式執行升級時，此程序一律相同。但是，每個平台的命令可以不同：

1. 將新的 .bin 檔案複製到交換器上.

2. 從 .bin 檔案擷取 .pkg 檔案.

3. 更新 .conf 檔案，然後將裝置重新載入至新版本.

4. 停止復原計時器，以確認升級已完成.

在大多數情況下，您可以透過單一命令來執行步驟 2 至 4。 這可讓我們復原至先前的版本。

升級方法

自動升級

如果您的活動Supervisor以安裝模式運行，則最好使用自動升級。無論在待命項目（bundle/install 等）上載入哪些映像，這都能讓作用中 SUP 升級待命中 SUP。但是，您必須將待命項目啟動至一些有效的映像才能啟動程序。

注意：自動升級無法從rommon恢復sup。

啟用此命令，以便交換器在偵測到不符情形時自動升級待命中 SUP

software auto-upgrade enable

或手動執行升級

install autoupgrade

注意：只要活動機箱處於安裝模式，自動升級即可在Stackwise虛擬設定中運行。

安裝模式

下一部分介紹"install"命令的使用。所有 9000 系列均支援此類命令。但是，這是 9600、9400 及 9200 的唯一選項。

流程概述

如上所述，升級程序包含 4 個部分。然而，步驟 2 至 4 的命令不是很好理解，因此以下說明每個命令的作用：

Install 模式命令

限制

在 Install 模式下，您的啟動陳述式必須始終為 packages.conf。在升級過程中，如果您嘗試將啟動陳述式變更為其他 .conf 檔案，可能會導致升級失敗。如果您已經運行了ADD命令，則需要啟用您增加的軟體套件或清理它以重新開始。請勿將啟動陳述式變更為非作用中套件。

摘要

如果您要移至 Install 模式，必須先將啟動陳述式變更為 packages.conf（若尚未變更），然後新增 .bin 檔案。這表示您必須將新的 .bin 檔案從 TFTP 或 USB 複製到開機快閃記憶體。如果由於空間不足而將檔案複製到交換機時遇到問題，請參閱本文檔的清理部分以清除不需要的檔案。

這些命令可完成升級，您無需執行任何其他步驟。但是，如果您不想在一個步驟中完成升級，則可以將它分成各個步驟。

configure terminal

no boot system

boot system bootflash:packages.conf

end

write

install add file bootflash:

activate commit

Install Add

- 第一次開始升級時，您只會有自己的目前版本 .

Switch#show install summary

[ R0 R1 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   C    16.11.1.0.312

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

Auto abort timer: inactive

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

若要開始使用，您必須將新版本新增至要使用的版本清單中.

install add file bootflash:cat9k_iosxe.16.12.01.SPA.bin

新增後，您就可以在快閃記憶體中看到 .pkg 檔案，其會將 16.12.01 列為非作用中版本.

Switch#dir | include .pkg

359097 -rw- 11359240 Sep 13 2019 16:10:08 +00:00 cat9k-cc_srdriver.16.11.01.SPA.pkg

359098 -rw- 84354052 Sep 13 2019 16:10:08 +00:00 cat9k-espbase.16.11.01.SPA.pkg

359099 -rw- 1676292 Sep 13 2019 16:10:08 +00:00 cat9k-guestshell.16.11.01.SPA.pkg

359100 -rw- 466576384 Sep 13 2019 16:10:08 +00:00 cat9k-rpbase.16.11.01.SPA.pkg

359106 -rw- 38552418 Sep 13 2019 16:10:30 +00:00 cat9k-rpboot.16.11.01.SPA.pkg

359101 -rw- 29877252 Sep 13 2019 16:10:08 +00:00 cat9k-sipbase.16.11.01.SPA.pkg

359102 -rw- 57259008 Sep 13 2019 16:10:08 +00:00 cat9k-sipspa.16.11.01.SPA.pkg

359103 -rw- 19936260 Sep 13 2019 16:10:08 +00:00 cat9k-srdriver.16.11.01.SPA.pkg

359104 -rw- 12321792 Sep 13 2019 16:10:08 +00:00 cat9k-webui.16.11.01.SPA.pkg

359105 -rw- 9216 Sep 13 2019 16:10:08 +00:00 cat9k-wlc.16.11.01.SPA.pkg

456963 -rw- 14222344 Sep 13 2019 17:05:35 +00:00 cat9k-cc_srdriver.16.12.01.SPA.pkg

456964 -rw- 88892420 Sep 13 2019 17:05:35 +00:00 cat9k-espbase.16.12.01.SPA.pkg

473282 -rw- 1684484 Sep 13 2019 17:05:35 +00:00 cat9k-guestshell.16.12.01.SPA.pkg

473283 -rw- 535475200 Sep 13 2019 17:05:35 +00:00 cat9k-rpbase.16.12.01.SPA.pkg

473289 -rw- 43111714 Sep 13 2019 17:06:00 +00:00 cat9k-rpboot.16.12.01.SPA.pkg

473284 -rw- 31425540 Sep 13 2019 17:05:35 +00:00 cat9k-sipbase.16.12.01.SPA.pkg

473285 -rw- 60183552 Sep 13 2019 17:05:35 +00:00 cat9k-sipspa.16.12.01.SPA.pkg

473286 -rw- 22676484 Sep 13 2019 17:05:35 +00:00 cat9k-srdriver.16.12.01.SPA.pkg

473287 -rw- 12854272 Sep 13 2019 17:05:35 +00:00 cat9k-webui.16.12.01.SPA.pkg

473288 -rw- 9216 Sep 13 2019 17:05:35 +00:00 cat9k-wlc.16.12.01.SPA.pkg

Switch#show install summary

[ R0 R1 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   I    16.12.1.0.544 <-- Installed but still Inactive (I)

IMG   C    16.11.1.0.312

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

Auto abort timer: inactive

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

Switch#show install inactive

[ R0 R1 ] Inactive Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   I    16.12.1.0.544  <-- Installed but still Inactive (I)

Install Activate

- 重新載入後，您就可以看到該版本為作用中，但尚未認可 .

下一個步驟是啟動新版本。

- 這表示要重新載入 SUP 並載入新版本。

- 此步驟會將 .conf 檔案編輯為指向新的 .pkg 檔案.

install activate

在裝置重新載入之前，此步驟會要求您確認是否要重新載入 .

This operation may require a reload of the system. Do you want to proceed? [y/n]

Switch#show install sum

[ R0 R1 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   U    16.12.1.0.544

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

Auto abort timer: active on install_activate, time before rollback - 01:52:08   <--- when this hits zero, the device reloads back to original version.

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

Switch#show install uncommitted

[ R0 R1 ] Uncommitted Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   U    16.12.1.0.544

Install Commit

若要停止復原計時器並完成升級程序，您必須認可新版本.

install commit

這是升級程序的最後一個步驟，您的新版本現在會顯示為作用中的已認可版本  .

Switch#show install summary

[ R0 R1 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   C    16.12.1.0.544  <--- Now Active and Committed

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

Auto abort timer: inactive

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

Install Abort

在您運行activate命令並在提交之前，如果您確定新版本存在問題，您可以中止升級。此動作會使裝置再次重新載入回到先前的版本。

install abort

Prompt Level

可以在安裝命令結束時將prompt-level設定為none，它不會因任何問題詢問您yes/no（通常在升級的commit命令結束時，它詢問您是否要重新載入）。如果您將prompt-level設定為none，交換機在準備好重新啟動後會立即重新載入。

install add file bootflash:cat9k_iosxe.16.12.01.SPA.bin activate commit prompt-level none

自動升級計時器

如果升級花費的時間過長，交換器將會假設發生問題，然後繼續運作並中止升級。預設計時器為 120 分鐘，但您可以視需要手動停止計時器。

install auto-abort-timer stop

您可以在執行啟動步驟時設定復原計時器.

Switch#install activate auto-abort-timer ?

<30-1200>  Number of minutes the abort-timer is set for

套件組合模式

本節說明使用指向 .bin 檔案（相較於 .pkg 檔案）的啟動陳述式升級軟體的傳統方法。

警告：如果要將交換器升級為套件組合模式，請確認已將.bin複製到堆疊中的每個交換器！

載入Cisco IOS檔案後，只需更改引導語句並重新載入。

configure terminal

no boot system

boot system bootflash:

end

write

reload

傳統方法

注意：此方法僅適用於9300和9500交換機

本部分介紹request platform命令的使用，9500和9300支援此功能。

- 建議其他交換器「不要」使用此方法。 請使用先前提及的其中一種方法 .

- 自 16.10.1 開始，這些命令已遭取代，建議您使用 install 命令.

- 此處列出了三個最重要的命令(還有更多選項，但首選使用install commands 代替這些)。

拓展

此命令會接受您指定的任何 .bin 檔案並擷取 .pkg 檔案.

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

清除

下一個命令的作用與install remove inactive相同：

request platform software package clean

Stackwise虛擬

雙 SUP

StackWise Virtual 與雙 SUP 設定非常類似。如果您執行一般升級，則兩個機箱會同時重新啟動 .

configure terminal

no boot system

boot sys bootflash:packages.conf

end

write

install add file bootflash:

activate commit

註：要執行ISSU，在單機箱上進行stackwise虛擬與雙管理引擎設定時要考慮一個因素。

- 由於每個機箱在 ISSU 過程中都會重新載入一次，因此僅連線至單一機箱的任何裝置都會停止運作長達一個完整重新啟動循環的時間。

- 建議您針對所有連線使用雙主伺服器 MEC，以避免此情況。請參閱 ISSU 一節以取得 ISSU 的詳細資料.

復原安裝模式

完成升級後，您可以視需要復原為先前的版本。 事實上，如果檔案仍在快閃記憶體上，您可以復原為多個版本.

Switch#show install rollback

ID      Label          Description

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

2    No Label        No Description

1    No Label        No Description

Switch#show install rollback id 1

Rollback id - 1 (Created on Fri Sep 13 13:14:40 2019)

Label: No Label

Description: No Description

Reload required: NO

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   C    16.11.1.0.312

前面的輸出顯示我有兩個復原點。第一個復原指向復原為 16.11.01（如果您要放置說明或日期，請標記復原點）。

Switch#install label 1 ?

description  Add a description to specified install point

label-name   Add a label name to specified install point

Switch#install label 1 label-name 16_11_01

install_add_label: START Fri Sep 13 16:43:48 UTC 2019

--- Starting install_add_label ---

Performing install_add_label on Active/Standby

[R0] install_add_label package(s) on R0

[R0] Finished install_add_label on R0

[R1] install_add_label package(s) on R1

[R1] Finished install_add_label on R1

Checking status of install_add_label on [R0 R1]

install_add_label: Passed on [R0 R1]

Finished install_add_label

SUCCESS: install_add_label  Fri Sep 13 16:43:57 UTC 2019

Switch#show install rollback

ID      Label          Description

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

2    No Label        No Description

1    16_11_01        No Description

如果您現在想執行回滾，您只需要運行rollback命令：

install rollback to id 1

四 SUP

撰寫本文件時尚未提供支援。預計在 17.2.1 上提供支援 .

ISSU

以前的升級方法討論的是單個sup的升級或同時升級兩個sup。但是，使用雙sup時，您可以進行ISSU（服務中軟體升級），它允許一次升級一個sup，這樣幾乎不會出現中斷。

注意：有關9300 xFSU的詳細資訊，請參閱文檔瞭解Catalyst 9300系列交換機上的擴展快速軟體升級

注意：運行此處所述的命令後，進程將自動啟動並重新載入sup。在準備就緒，可以開始重新啟動之前，請勿運行命令。與一般升級程序不同，此方法不會在重新載入前要求您進行確認。

install add file bootflash:cat9k_iosxe.16.11.01.SPA.bin activate issu commit

- 執行此命令後，ISSU 程序就會擷取檔案；請重新載入待命中 SUP，等待其回到 SSO，然後容錯移轉就會重新載入作用中項目。

- 僅 Install 模式支援 ISSU。如果主用Supervisor位於捆綁包中，則無法執行ISSU進程。

- 9200和9300不支援ISSU。9300支援reloadfast。

升級選項

ReloadFast

- ReloadFast 是一項功能，可在資料層離線前盡可能完成升級，進而有效減少停機時間。 如果您使用 reloadfast，則堆疊中的所有交換器將會同時重新載入。不過，這些交換器的重新啟動速度通常比一般安裝快很多。

- 即使在單一交換器上，您也可以執行 reloadfast！

- 16.8.1 版或更新版本支援此功能。僅 INSTALL 模式支援此功能。

- 為防止在快速重新載入時可能發生任何環路，只有到STP根的單個上行鏈路的交換機才支援此功能。連接埠通道可視為單一上行鏈路。

- 如果此升級需要升級微碼或 FPGA，則同樣不支援此功能。

- C9300在預設情況下始終嘗試執行快速重新載入升級，除非由於上述原因之一而不能執行。不過，您仍可使用下列命令明確地要求其執行該動作：

install add file flash:cat9k_iosxe.16.10.01.SPA.bin activate reloadfast commit

Cleanup

完成升級後，您可以選擇移除所有非作用中檔案，藉此清理所有不需要的檔案。 此選項會查看目前已載入的 .pkg 檔案，並移除所有其他項目。您可以在刪除檔案之前，先檢閱它計畫刪除的所有檔案。

install remove inactive

注意：此操作將刪除所有.bin檔案，因此，如果要在執行升級前進行清理，請確保在複製新的.bin檔案之前執行此操作。

疑難排解

V-Mismatch

如果收到V-mismatch，則意味著交換機上運行的軟體與活動軟體不同。如果處於 Install 模式，您可以選擇透過自動升級來解決此問題。 如果處於 Bundle 模式，要解決此問題就有點棘手。

Switch#show switch

Switch/Stack Mac Address : f8b7.e206.4900 - Local Mac Address

Mac persistency wait time: Indefinite

H/W   Current

Switch#   Role    Mac Address     Priority Version  State

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

1       Member   701f.5300.fa00     15     V01     V-Mismatch  <---Indicates a version mismatch

*2       Active   f8b7.e206.4900     14     V01     Ready

選項 1

- 從堆疊中移除不相符的交換器，並將其升級為正確的版本，然後重新新增至堆疊。

選項 2

- 您不能在不匹配的交換機上更改引導語句。但是，如果您具有主控台的存取權並可存取交換器 ROMMON，即可手動啟動至正確的版本。

注意：在嘗試此操作前，請確保您具有對交換機的控制檯訪問許可權，以確保您能夠恢復交換機。

選項2的步驟

1. 堆疊交換器並使其開機到V-Mismatch狀態。

2. 從此交換機刪除您不想要的舊映像（即使檔案系統不匹配，仍可訪問快閃記憶體檔案系統）。

3. 將您需要的新 .bin 檔案複製到快閃記憶體.

4. 僅為此交換機重新通電（該交換機無法啟動，因為映象被刪除，這會使交換機進入rommon模式）。

5. （從控制檯）手動引導複製到快閃記憶體的新映像。

6. 啟動至正確的映像後，組態就會從 Active 同步處理 .

Switch#dir ?

/all             List all files

/recursive       List files recursively

all-filesystems  List files on all filesystems

cns:             Directory or file name

crashinfo-1:     Directory or file name

crashinfo-2:     Directory or file name

crashinfo:       Directory or file name

flash-1:         Directory or file name   <----Flash for switch #1

flash-2:         Directory or file name   <----Flash for switch #2

flash:           Directory or file name

進入rommon模式後使用此命令

switch:  boot flash:cat9k_iosxe.16.12.01.SPA.bin <-- Image you copied that Active is running

選項 3

- 前兩個選項通常都能復原不相符的交換器，且不需要關閉堆疊。

- 但是，如果這是新的部署，或者您可以重新載入整個堆疊，即可選擇將不相符交換器的檔案複製到其餘的交換器，讓其餘的交換器符合新的交換器，而不是以相反方式使兩者相符。

- 如果這是新部署，並且您沒有物理訪問，則此選項很有用，因為您可以透過telnet完成所有這些操作。

- 經過同步處理後，您就可以將這些交換器全部升級至正確的版本。

從 ROMMON 復原

如果您因不具有效的映象而卡在 ROMMON 中，可以選擇透過 USB 或 TFTP 將檔案複製到交換器.

選項 1

使用下列指令，從USB磁棒開機：

boot usbflash0:cat9k_iosxe.16.12.01.SPA.bin

選項 2

從TFTP伺服器進行複製則較為棘手。您需要將筆記型電腦設定為TFTP伺服器，並將乙太網路纜線連線至裝置的管理連線埠，或者需要將裝置的管理連線埠連線至正在運作的裝置的網路連線埠。接著，您就可以將含有映像的裝置設定為 TFTP 伺服器:

tftp-server flash:cat9k_iosxe.16.12.01.SPA.bin

最好使用Cisco IOS裝置作為TFTP伺服器，這樣您就不必擔心Windows防火牆或電腦帳戶許可權問題（例如，TFTP伺服器）。設定好 TFTP 伺服器後，您必須在 ROMMON 中進行以下設定:

DEFAULT_GATEWAY=172.27.74.1

IP_ADDRESS=172.27.74.111

IP_SUBNET_MASK=255.255.255.0

TFTP_SERVER=172.19.64.31

透過 TFTP 伺服器的 Ping 測試您的組態:

ping 172.19.64.31

建立連線後，請直接啟動至 TFTP 的檔案:

boot tftp://172.19.64.31/cat9k_iosxe.16.12.01.SPA.bin

注意：有關rommon恢復的詳細資訊，請參閱以下連結：recover_from_corrupt_or_missing_file_image_or_in_rommon_mode。

成員中缺少Bin檔案

驗證在堆疊中的所有成員裝置上是否都看到.bin檔案。

步驟 1:

檢查使用show file systems的堆疊所使用的命名規則：

Switch#show file systems

File Systems:

Size(b)       Free(b)      Type  Flags  Prefixes

-             -    opaque     rw   system:

-             -    opaque     rw   tmpsys:

*  11250098176    6275858432      disk     rw   bootflash: flash:         <- Name of Active Switch

11250171904    4123000832      disk     rw   bootflash-2:              <- Name of Standby Switch

1651314688    1344073728      disk     rw   crashinfo:

1651507200    1180696576      disk     rw   crashinfo-2:

236092686336  224026628096      disk     rw   disk0:

8166649856    8053047296      disk     ro   webui:

-             -    opaque     rw   null:

-             -    opaque     ro   tar:

-             -   network     rw   tftp:

33554432      33494025     nvram     rw   nvram:

-             -   network     rw   rcp:

-             -   network     rw   http:

-             -   network     rw   ftp:

-             -   network     rw   scp:

-             -   network     rw   sftp:

-             -   network     rw   https:

-             -    opaque     ro   cns:

33554432      33507337     nvram     rw   stby-nvram:

-             -     nvram     rw   stby-rcsf:

11250098176    4122718208      disk     rw   stby-bootflash:

1651314688    1180504064      disk     rw   stby-crashinfo:

-             -    opaque     rw   revrcsf:

注意：如果遇到檔案空間不足的錯誤，show file systems將指示大小和可用空間。

步驟 2:

請個別檢查.bin檔案的每個目錄：

Switch#dir bootflash: | i .bin

81126   -rw-       1265422219  Jun 19 2023 03:04:30 +00:00  cat9k_iosxe.17.11.01.SPA.bin              <- The Active has 17.11.01.SPA.bin

194733  -rw-       1027574083  Jun 13 2023 01:33:41 +00:00  cat9k_iosxe.17.06.05.SPA.bin

Switch#dir bootflash-2: | i .bin

210971  -rw-       1027574083  Jun 29 2023 22:19:23 +00:00  cat9k_iosxe.17.06.05.SPA.bin              <- The Standby does not have 17.11.01.SPA.bin

注意：對於處於安裝模式的裝置，在提交install add命令之前，通常只會啟用.bin檔案。如果發現問題，請繼續執行步驟3。

步驟 3:

如果需要手動干預，有2個選項可將.bin檔案從作用中複製到成員/待命。

選項 1

將.bin檔案直接複製到Member/Standby：

Switch#copy bootflash:cat9k_iosxe.17.11.01.SPA.bin bootflash-2:

選項 2

將.bin複製到USB （如果無法直接複製）

Switch#copy bootflash:cat9k_iosxe.17.11.01.SPA.bin usbflash0:

注意：必須為FAT32格式化USB，並使用show file systems驗證交換機是否讀取它。

複製到USB後，將其插入待命/成員：

Switch#copy usbflash0:cat9k_iosxe.17.11.01.SPA.bin bootflash-2:

步驟 4:

確認.bin檔案位於所有裝置上：

Switch#dir flash: | i .bin

81126   -rw-       1265422219  Jun 19 2023 03:04:30 +00:00  cat9k_iosxe.17.11.01.SPA.bin           <- The Active has 17.11.01.SPA.bin

194733  -rw-       1027574083  Jun 13 2023 01:33:41 +00:00  cat9k_iosxe.17.06.05.SPA.bin

Switch#dir bootflash-2: | i .bin

210971  -rw-       1027574083  Jun 29 2023 22:19:23 +00:00  cat9k_iosxe.17.06.05.SPA.bin

210974  -rw-       1265422219  Jun 20 2023 03:32:23 +00:00  cat9k_iosxe.17.11.01.SPA.bin           <- The Standby now has 17.11.01.SPA.bin

已經安裝超級套件

如果在嘗試運行說明已增加Super package的完整安裝增加檔案flash：name activate commit時收到錯誤輸出，則這意味著該軟體套件已以非活動狀態填充，並等待啟用和提交。

Switch#install add file flash:cat9k_iosxe.17.11.01.SPA.bin activate commit

install_add_activate_commit: START Wed Jul 26 12:36:58 UTC 2023

*Jul 26 12:36:58.491: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install one-shot bootflash:cat9k_iosxe.17.11.01.SPA.bininstall_add_activate_commit: Adding PACKAGE

install_add_activate_commit: Checking whether new add is allowed ....

FAILED: install_add_activate_commit : Super package already added. Add operation not allowed. 'install remove inactive' can be used to discard added packages

可以透過發出show install summary命令驗證此狀態

Switch#show install summary

[ R0 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   C    17.06.05.0.5797

IMG   I    17.11.01.0.1324                                                          <- Here it is seen as Inactive

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

Auto abort timer: inactive

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

有兩種方法可以解決此問題

選項 1

執行install remove inactive命令以清除增加的軟體套件

Switch#install remove inactive

install_remove: START Wed Jul 26 13:42:14 UTC 2023

Cleaning up unnecessary package files

No path specified, will use booted path bootflash:packages.conf

Cleaning bootflash:

Scanning boot directory for packages ... done.

Preparing packages list to delete ...

cat9k-cc_srdriver.16.09.03.SPA.pkg

File is in use, will not delete.

cat9k-espbase.16.09.03.SPA.pkg

File is in use, will not delete.

<...snip...>

The following files will be deleted:

[R0]:

/bootflash/cat9k-cc_srdriver.17.06.05.SPA.pkg

/bootflash/cat9k-cc_srdriver.17.11.01.SPA.pkg

/bootflash/cat9k-espbase.17.06.05.SPA.pkg

/bootflash/cat9k-espbase.17.11.01.SPA.pkg

<...snip...>

Do you want to remove the above files? [y/n]y

[R0]:

Deleting file bootflash:cat9k-cc_srdriver.17.06.05.SPA.pkg ... done.

Deleting file bootflash:cat9k-cc_srdriver.17.11.01.SPA.pkg ... done.

Deleting file bootflash:cat9k-espbase.17.06.05.SPA.pkg ... done.

Deleting file bootflash:cat9k-espbase.17.11.01.SPA.pkg ... done.

<...snip...>

SUCCESS: Files deleted.

--- Starting Post_Remove_Cleanup ---

Performing Post_Remove_Cleanup on Active/Standby

[R0] Post_Remove_Cleanup package(s) on R0

[R0] Finished Post_Remove_Cleanup on R0

Checking status of Post_Remove_Cleanup on [R0]

Post_Remove_Cleanup: Passed on [R0]

Finished Post_Remove_Cleanup

選項 2

如果install remove inactive無法解決問題，請清除安裝狀態

注意：此操作需要重新載入裝置

Switch(config)#service internal                                        <- Service internal is required to be turned on for clear install state to work

Switch(config)#exit

Switch#clear install state

clear_install_state: START Wed Jul 26 12:25:09 UTC 2023

This command will remove all the provisioned SMUs, and rollback points. Use this command with caution.

A reload is required for this process. Press y to continue [y/n]y

--- Starting clear_install_state ---

Performing clear_install_state on Active/Standby

[1] clear_install_state package(s) on R0

[1] Finished clear_install_state on R0

Checking status of clear_install_state on [R0]

clear_install_state: Passed on [R0]

Finished clear_install_state

Send model notification for  before reload

Install will reload the system now!

驗證選項1和2是否均可透過show install summary命令進行驗證，以確保非活動映像不再存在。

Switch#show install summary

[ R0 ] Installed Package(s) Information:

State (St): I - Inactive, U - Activated & Uncommitted,

C - Activated & Committed, D - Deactivated & Uncommitted

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

Type  St   Filename/Version

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

IMG   C    17.06.05.0.5797                                                           <- 17.11.01 is no longer seen

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

Auto abort timer: inactive

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

繼續運行完整安裝add file flash：name activate commit，沒有問題

不正確的開機變數

本節說明執行升級時發現的問題，以及設定了錯誤的啟動變數。

案例 1

- 引導變數設定為bootflash：packages.conf

- 由於某種原因，交換機在安裝add file flash：name activate commit發生之前重新載入

- 這會損毀其packages.conf檔案，或者檔案是空的，而且交換器找不到開機引數

Switch#show boot

BOOT variable = bootflash:packages.conf;

MANUAL_BOOT variable = no

交換器重新啟動/重新載入時，顯示錯誤

Preparing to autoboot. [Press Ctrl-C to interrupt]  0

boot: attempting to boot from [bootflash:packages.conf]

ERROR: failed to boot from bootflash:packages.conf (Not Found)

Please wait while the system restarts.

Initializing Hardware......

- 在交換機/Supervisor上透過(CTRL-C)或按下Mode按鈕以物理方式進入ROMMON

- 發出set命令

- 驗證BOOT=

switch:set

BAUD=9600

BOOT=bootflash:packages.conf;

BOOTLDR=packages.conf

BSI=0

<snip>

有2個選項可用於引導至所需的IOS

注意：如果需要，您也可以啟動到前面的ios bin檔案

選項 1

使用新ios版本設定新啟動語句

switch:BOOT=cat9k_iosxe.17.09.03.SPA.bin

驗證BOOT語句是否已更新

switch:set

BAUD=9600

BOOT=bootflash:cat9k_iosxe.17.09.03.SPA.bin                                        <-Boot statement successfully updated

BOOTLDR=packages.conf

BSI=0

<snip>

選項 2

在交換機載入到ios中之前，立即啟動，而不更改變數

switch:boot bootflash:cat9k_iosxe.17.09.03.SPA.bin

注意：如果不確定快閃記憶體中存在哪個.bin檔案，請發出dir flash：以獲取檔案清單

案例 2

運行install add file flash：name activate commit命令，但引導變數設定為.bin檔案而非packages.conf

Switch#show boot

Current Boot Variables:

BOOT variable = flash:cat9k_iosxe_npe.17.03.03.SPA.bin;

Boot Variables on next reload:

BOOT variable = flash:cat9k_iosxe_npe.17.03.03.SPA.bin;

Manual Boot = no

Enable Break = yes

Boot Mode = DEVICE

iPXE Timeout = 0

Switch#install add file flash:cat9k_iosxe.17.09.03.SPA.bin activate commit

install_add_activate_commit: START Tue Sep 12 15:01:12 UTC 2023

install_add_activate_commit: Adding PACKAGE

install_add_activate_commit: Checking whether new add is allowed ....

This operation requires a reload of the system. Do you want to proceed?

Please confirm you have changed boot config to flash:packages.conf [y/n]y

--- Starting initial file syncing ---

Info: Finished copying flash:cat9k_iosxe.17.09.03.SPA.bin to the selected switch(es)

Finished initial file syncing

<snip>

重新載入時，可以看到將交換器載入到17.3.3.SPA.bin中，而不是載入包含17.9.3的packages.conf時的輸出。

Initializing Hardware......

System Bootstrap, Version 17.9.2r, RELEASE SOFTWARE (P)

Compiled Wed 11/23/2022 12:30:48.96 by rel

Current ROMMON image : Primary

Last reset cause     : CpuReset

C9500-12Q platform with 16777216 Kbytes of main memory

Preparing to autoboot. [Press Ctrl-C to interrupt]  0

boot: attempting to boot from [flash:cat9k_iosxe_npe.17.03.03.SPA.bin]

boot: reading file cat9k_iosxe_npe.17.03.03.SPA.bin

啟動交換器後，確認packages.conf已正確更新為17.9.3。

Switch#more flash:packages.conf

boot   rp 0 0   rp_boot cat9k-rpboot.17.09.03.SPA.pkg

boot   rp 1 0   rp_boot cat9k-rpboot.17.09.03.SPA.pkg

iso   rp 0 0   rp_base cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 1 0   rp_base cat9k-rpbase.17.09.03.SPA.pkg                                                       <-All .pkg set to 17.9.3 correctly

iso   rp 0 0   rp_daemons cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 1 0   rp_daemons cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 0 0   rp_iosd cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 1 0   rp_iosd cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 0 0   rp_security cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 1 0   rp_security cat9k-rpbase.17.09.03.SPA.pkg

iso   rp 0 0   rp_wlc cat9k-wlc.17.09.03.SPA.pkg

iso   rp 1 0   rp_wlc cat9k-wlc.17.09.03.SPA.pkg

iso   rp 0 0   rp_webui cat9k-webui.17.09.03.SPA.pkg

iso   rp 1 0   rp_webui cat9k-webui.17.09.03.SPA.pkg

<snip>

將啟動變數變更為flash：packages.conf

Switch(config)#no boot system

Switch(config)#boot system flash:packages.conf

Switch(config)#do wr                                                                  <- Configuration must be saved for boot variable to be updated properly before reloading

Switch#show boot

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

重新載入交換機，以使其處於安裝模式並位於正確的ios映像17.9.3上

Switch#reload

Initializing Hardware......

System Bootstrap, Version 17.9.2r, RELEASE SOFTWARE (P)

Compiled Wed 11/23/2022 12:30:48.96 by rel

Current ROMMON image : Primary

Last reset cause     : CpuReset

C9500-12Q platform with 16777216 Kbytes of main memory

Preparing to autoboot. [Press Ctrl-C to interrupt]  0

boot: attempting to boot from [flash:packages.conf]                                           <-Boot variable correctly loading from packages.conf instead of .bin file

boot: reading file packages.conf

<snip>

在交換機載入後驗證版本

Switch#show version

Cisco IOS XE Software, Version 17.09.03

Cisco IOS Software [Cupertino], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 17.9.3, RELEASE SOFTWARE (fc6)

相關資訊

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

思科錯誤ID

思科漏洞ID CSCvr29736 - Doc錯誤：9600無法執行reloadfast

思科漏洞ID CSCvr29864 - 增強功能：9300 add reloadfast to install命令

思科漏洞ID CSCvr29886 - 增強功能：在v-mismatch中更改交換機的啟動語句

思科漏洞ID CSCvr30159 - 增強功能：在運行install add命令時增加手動引導檢查

思科漏洞ID CSCvr30189 - 增強功能：新增一個選項來復原「安裝新增」，而不需要刪除.bin檔案