How to upgrade your Cisco 3650/3850 Catalyst switches

Genki Ganko
8 min readJan 26, 2024

--

YOU! Yes, you! Yeah, I know you have spent countless hours to find out more information about upgrading Cisco switch stacks firmware guide and it is rare to find and you had to scour all over the internet to find the easiest to understand procedural guidelines to upgrade your Cisco Catalyst 3650/3850. So let’s cut to the chase and get started.

Side note: You can get your Catalyst 3850 48P PoE here. (Please support.)

Here is a general guideline on how to upgrade Catalyst 3650/3850 version upgrade.

First thing you have to know is that there are two modes of operation, Install mode and Bundle mode.

Install Mode

The Install mode uses a package-provisioning file named packages.conf in order to boot a switch. In addition, there are a number of .pkg files in the flash drive. It is highly recommended that you do not alter the packages.conf and .pkg files unless directed by a Cisco Technical Assistance Center (TAC) engineer.

Bundle Mode

The Bundle mode uses old Cisco IOS images to boot a switch. The Bundle mode consumes more memory than the Install mode because the packages are extracted from the bundle and copied to RAM.

So what is their difference? Why use one after the other?

It is mainly because of their speed. As it suggest from the explanation above, Bundle Mode uses more RAM power than the Install mode.

Prepare in advance

1. First is to download your target software version from https://software.cisco.com/download/home

2. From your switch, do a show version

Switch#show version
<snip>
Switch Ports Model SW Version SW Image Mode
— — — — — — — — — — — — — — — — — — — — —
* 1 52 WS-C3650–48TD 03.06.07E cat3k_caa-universalk9 INSTALL <<<

Switch#show version
<snip>
Switch Ports Model SW Version SW Image Mode
— — — — — — — — — — — — — — — — — — — — —
* 1 28 WS-C3650–24TD 03.06.09.E cat3k_caa-universalk9 BUNDLE <<<

3. Ensure there is enough space in flash:

Switch# dir flash:

Directory of flash:/

<snip>

1621966848 bytes total (598597632 bytes free) <<<<

4. Copy the target image file to the device’s flash: via TFTP/FTP/USB, etc.

Switch# copy tftp://x.x.x.x/cat3k_caa-universalk9.16.03.05.SPA.bin flash:cat3k_caa-universalk9.16.03.05.SPA.bin
Destination filename [cat3k_caa-universalk9.16.03.05.SPA.bin]?Accessing tftp://x.x.x.x/cat3k_caa-universalk9.16.03.05.SPA.bin...Loading cat3k_caa-universalk9.16.03.05.SPA.bin from x.x.x.x (via GigabitEthernet0/0):!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![OK - 489159804 bytes]489159804 bytes copied in 143.802 secs (3401620 bytes/sec)Switch#

Upgrading from 3.x to 16.x

Upgrade from Install mode to Install mode

1. Make sure it is running in Install mode in advance.

Switch#show version | in INSTALL
 *    2 56    WS-C3850-48P       03.06.06E         cat3k_caa-universalk9 INSTALL

2. Execute the software install command and reload the device.

Switch#software install file flash:cat3k_caa-universalk9.16.03.03.SPA.bin new force

Preparing install operation ...

[2]: Starting install operation

[2]: Expanding bundle flash:cat3k_caa-universalk9.16.03.03.SPA.bin

[2]: Copying package files

[2]: Package files copied

[2]: Finished expanding bundle flash:cat3k_caa-universalk9.16.03.03.SPA.bin

[2]: Verifying and copying expanded package files to flash:

[2]: Verified and copied expanded package files to flash:

[2]: Starting compatibility checks

[2]: Bypassing peer package compatibility checks due to 'force' command option

[2]: Finished compatibility checks

[2]: Starting application pre-installation processing

[2]: Old files list:

Removed cat3k_caa-base.SPA.03.06.06E.pkg

Removed cat3k_caa-drivers.SPA.03.06.06E.pkg

Removed cat3k_caa-infra.SPA.03.06.06E.pkg

Removed cat3k_caa-iosd-universalk9.SPA.152-2.E6.pkg

Removed cat3k_caa-platform.SPA.03.06.06E.pkg

Removed cat3k_caa-wcm.SPA.10.2.160.0.pkg

[2]: New files list:

Added cat3k_caa-guestshell.16.03.03.SPA.pkg

Added cat3k_caa-rpbase.16.03.03.SPA.pkg

Added cat3k_caa-rpcore.16.03.03.SPA.pkg

Added cat3k_caa-srdriver.16.03.03.SPA.pkg

Added cat3k_caa-wcm.16.03.03.SPA.pkg

Added cat3k_caa-webui.16.03.03.SPA.pkg

[2]: Creating pending provisioning file

[2]: Finished installing software. New software will load on reboot.

[2]: Committing provisioning file

[2]: Do you want to proceed with reload? [yes/no]: y

[2]: Reloading



%IOSXEBOOT-4-FLASH: (rp/0): deleting cat3k_caa-universalk9.16.03.03.SPA.bin because free space on flash is less than 300MB

%IOSXEBOOT-8e30b253627ff1aae4fee6643a923d8a-new_cksum: (rp/0): 4

%IOSXEBOOT-8e30b253627ff1aae4fee6643a923d8a-saved_cksum: (rp/0): 4

%IOSXEBOOT-Fri-###: (rp/0): Mar 17 16:27:16 Universal 2017 PLEASE DO NOT POWER CYCLE ### BOOT LOADER UPGRADING 4

%IOSXEBOOT-loader-boot: (rp/0): upgrade successful

Front-end Microcode IMG MGR: Programming device 0...rwRrrrrrrw..0%.........................................................................10%........................................................................20%..........................................................................30%........................................................................40%........................................................................50%..........................................................................60%.........................................................................70%........................................................................80%............................................................................................................................................90%........................................................................100%

Front-end Microcode IMG MGR: Preparing to program device[0]...25166 bytes.

Front-end Microcode IMG MGR: Programming device 0...rrrrrrw..0%....10%....20%......30%...40%......50%....60%......70%...80%......90%....100%wRr!

Front-end Microcode IMG MGR: Microcode programming complete for device 0.

Front-end Microcode IMG MGR: Preparing to program device[0]...86370 bytes.... Skipped[3].

Front-end Microcode IMG MGR: Microcode programming complete in 244 seconds

Ensure there is enough space in flash:

3. After starting the device, check the version information using show version.

Switch#show version | in IOS
Cisco IOS Software [Denali], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.3.3, RELEASE SOFTWARE (fc3)Cisco IOS-XE software, Copyright (c) 2005-2017 by cisco Systems, Inc.

Note: It is mandatory to use the keywords “new” and “force” when upgrading from 3.6.X to 16.X. If “new” and “force” are missing, the following error may occur and the program may not run properly.

Switch#software install file flash:cat3k_caa-universalk9.16.03.03.SPA.bin

Preparing install operation ...

[2]: Starting install operation

[2]: Expanding bundle flash:cat3k_caa-universalk9.16.03.03.SPA.bin

[2]: Copying package files

[2]: Package files copied

[2]: Finished expanding bundle flash:cat3k_caa-universalk9.16.03.03.SPA.bin

[2]: Verifying and copying expanded package files to flash:

[2]: Verified and copied expanded package files to flash:

[2]: Starting compatibility checks

[2]: % Candidate package compatibility checks failed because the following

package dependencies were not satisfied. Operation aborted.

[2]: % An internal error was encountered. Operation aborted.

If the above error occurs, you need to perform a “software clean” and re-copy the image, and then repeat the steps with “new” and “force”.

Switch#software clean

Preparing clean operation ...

[2]: Cleaning up unnecessary package files

[2]: No path specified, will use booted path flash:packages.conf

[2]: Cleaning flash:

[2]: Preparing packages list to delete ...

In use files, will not delete:

cat3k_caa-base.SPA.03.06.06E.pkg

cat3k_caa-drivers.SPA.03.06.06E.pkg

cat3k_caa-infra.SPA.03.06.06E.pkg

cat3k_caa-iosd-universalk9.SPA.152-2.E6.pkg

cat3k_caa-platform.SPA.03.06.06E.pkg

cat3k_caa-wcm.SPA.10.2.160.0.pkg

packages.conf

[2]: Files that will be deleted:

cat3k_caa-guestshell.16.03.03.SPA.pkg

cat3k_caa-rpbase.16.03.03.SPA.pkg

cat3k_caa-rpcore.16.03.03.SPA.pkg

cat3k_caa-srdriver.16.03.03.SPA.pkg

cat3k_caa-universalk9.16.03.03.SPA.bin

cat3k_caa-wcm.16.03.03.SPA.pkg

cat3k_caa-webui.16.03.03.SPA.pkg

[2]: Do you want to proceed with the deletion? [yes/no]: y

[2]: Clean up completed
<snip>

Upgrade from Bundle mode to Install mode

1. Make sure it is running in Bundle mode in advance.

Switch#show version | in BUNDLE
*    2 56    WS-C3850-48P       03.06.06.E        cat3k_caa-universalk9 BUNDLE

2. Convert the .bin file to a Package file using the software expand command.

Switch#software expand file flash:cat3k_caa-universalk9.16.03.03.SPA.bin to flash:

Preparing expand operation ...

[2]: Expanding bundle flash:cat3k_caa-universalk9.16.03.03.SPA.bin

[2]: Copying package files

[2]: Package files copied

[2]: Finished expanding bundle flash:cat3k_caa-universalk9.16.03.03.SPA.bin

3. Verify that the packages.conf file has been generated in flash:.

Switch#directory | in packages.conf

30979 -rw- 1236 Dec 22 2015 13:16:22 -04:00 packages.conf

4. Change the Boot variable and execute write memory.

Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.Switch(config)#no boot systemSwitch(config)#boot system flash:packages.confSwitch(config)#endSwitch#write memorySwitch#show boot---------------------------Switch 1---------------------------Current Boot Variables:BOOT variable = flash:packages.conf;Boot Variables on next reload:BOOT variable = flash:packages.conf;<snip>

5. Reload the device.

Switch#show version | in IOS
Cisco IOS Software [Denali], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.3.3, RELEASE SOFTWARE (fc3)Cisco IOS-XE software, Copyright (c) 2005-2017 by cisco Systems, Inc.

6. After starting the device, check the version information using show version.

Switch#show version | in IOS
Cisco IOS Software [Denali], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.3.3, RELEASE SOFTWARE (fc3)Cisco IOS-XE software, Copyright (c) 2005-2017 by cisco Systems, Inc.

Upgrading from Install/Bundle mode to Bundle mode

1. Make sure that the target file has been copied to flash:.

Switch#dir flash:
31053  -rw-      537337933   Aug 9 2019 07:39:24 +00:00  cat3k_caa-universalk9.16.03.09.SPA.bin

2. Change the Boot variable and execute write memory.

Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.Switch(config)#no boot systemSwitch(config)#boot system flash:cat3k_caa-universalk9.16.03.09.SPA.binSwitch(config)#endSwitch#write memorySwitch#show boot---------------------------Switch 1---------------------------Current Boot Variables:BOOT variable = flash:cat3k_caa-universalk9.16.03.09.SPA.bin;Boot Variables on next reload:BOOT variable = flash:cat3k_caa-universalk9.16.03.09.SPA.bin;<snip>

3. Reload the device.

Switch#reload
Proceed with reload? [confirm]

4. After starting the device, check the version information using show version.

Switch#show version
<snip>Switch Ports Model              SW Version        SW Image              Mode  ------ ----- -----              ----------        ----------            ----  *    1 32    WS-C3850-24T       16.3.9           CAT3K_CAA-UNIVERSALK9 BUNDLE

Upgrading from 16.X to 16.X

Upgrade from Install mode to Install mode

1. Make sure it is running in Install mode in advance.

switch#show version
<snip>Switch Ports Model              SW Version        SW Image              Mode  ------ ----- -----              ----------        ----------            ----  *    1 28    WS-C3650-24TS      16.5.1a            CAT3K_CAA-UNIVERSALK9 INSTALL

2. Execute the following command.

Switch#request platform software package install switch all file flash:cat3k_caa-universalk9.16.03.03.SPA.bin
[1]: Expanding file[1]: Performing install[1]: install package(s) on switch 1Old files list: Removed cat3k_caa-guestshell.16.05.01a.SPA.pkg Removed cat3k_caa-rpbase.16.05.01a.SPA.pkg Removed cat3k_caa-rpcore.16.05.01a.SPA.pkg Removed cat3k_caa-srdriver.16.05.01a.SPA.pkg Removed cat3k_caa-webui.16.05.01a.SPA.pkgNew files list: Added cat3k_caa-guestshell.16.03.03.SPA.pkg Added cat3k_caa-rpbase.16.03.03.SPA.pkg Added cat3k_caa-rpcore.16.03.03.SPA.pkg Added cat3k_caa-srdriver.16.03.03.SPA.pkg Added cat3k_caa-wcm.16.03.03.SPA.pkg Added cat3k_caa-webui.16.03.03.SPA.pkgFinished list of software package changesSUCCESS: Software provisioned. New software will load on reboot.[1]: Finished install successful on switch 1Checking status of install on [1][1]: Finished install in switch 1SUCCESS: Finished install: Success on [1]

3. Reload the device.

Switch#reload
Reload command is being issued on Active unit, this will reload the whole stackProceed with reload? [confirm]

4. After starting the device, check the version information using show version.

Switch#show version
<snip>Switch Ports Model              SW Version        SW Image              Mode  ------ ----- -----              ----------        ----------            ----  *    1 28    WS-C3650-24TS      16.3.3            CAT3K_CAA-UNIVERSALK9 INSTALL

Upgrade from Bundle mode to Install mode

1. Make sure it is running in Bundle mode in advance.

Switch#show ver | in BUNDLE
     1 32    WS-C3850-24T       16.3.8            CAT3K_CAA-UNIVERSALK9 BUNDLE

2. Convert the bin file to Package using the request platform software package expand command.

Switch#request platform software package expand switch all file flash:cat3k_caa-universalk9.16.06.05.SPA.bin
[2]: Expanding file[2]: Finished expanding all-in-one software package in switch 1SUCCESS: Finished expanding all-in-one software package.Switch#

3. Verify that the packages.conf file has been generated in flash:.

Switch#dir | in packages.conf
30994  -rw-             4742  Aug 19 2019 05:51:43 +00:00  packages.conf

4. Change the Boot variable and execute write memory.

Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.Switch(config)#no boot systemSwitch(config)#boot system flash:packages.confSwitch(config)#endSwitch#write memorySwitch#show boot---------------------------Switch 1---------------------------Current Boot Variables:BOOT variable = flash:packages.conf;Boot Variables on next reload:BOOT variable = flash:packages.conf;<snip>

5. Reload the device.

Switch#reload
Proceed with reload? [confirm]

Upgrading from Install/Bundle mode to Bundle mode

The steps are the same as in “Upgrading from 3.X to 16.X” > “Upgrading from Install/Bundle mode to Bundle mode” above. See above.

Below are the commands related to upgrading versions above 3.X and 16.X.

And there you have it! Easiest way to have your Cisco Catalyst switches on hand! Be sure to follow for more content like this.

References:

Release Notes for Cisco Catalyst 3650 Series Switches, Cisco IOS XE Denali 16.3.x
Upgrading the Switch Software

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/16-3/release_notes/ol-16-3-3650.html#pgfId-1118681

Switch Stack Update

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3850/software/release/16-1/best_practices_guide/BP_Cat3850/BP_stack_upgrade.pdf?dtid=osscdc000283

Catalyst 3850 シリーズ スイッチのアップグレード、管理、および回復の方法

https://www.cisco.com/c/ja_jp/support/docs/switches/catalyst-3850-series-switches/117552-technote-cat3850-00.html?dtid=osscdc000334

Cisco Content Hub

https://content.cisco.com/chapter.sjs?uri=/searchable/chapter/c/en/us/td/docs/switches/lan/Denali_16-1/ConfigExamples_Technotes/Config_Examples/Misc/qos/m_install_vs_bundle.html.xml

Cisco Community

https://community.cisco.com/t5/tkb-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/catalyst3650-catalyst3850-%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E6%89%8B%E9%A0%86/ta-p/3917918

LearnDuty

https://learnduty.com/network-techs/catalyst-3850-upgrade-process-step-by-step/

--

--

Genki Ganko

IT Infrastructure | Cybersecurity | Former Chef | Jesus Christ follower