Upgrading Cisco IOS-XE Software (Install Mode)

Recommended Releases for Cat9k

I got my hands on a Cisco Catalyst 3650-48PD-L switch which is the first access level switch that I’ve dealt with that is running IOS-XE. IOS-XE isn’t new, I prefer it over IOS because of its Linux base and the processing advantages it has. So today we will be going through the software upgrade process for a 3650 running in install mode.

You can view my other post on how to convert IOS XE from Bundled running mode to Install running mode.

Converting Cisco IOS-XE Software from Bundle Mode to Install Mode

You can also review upgrade procedure for specific hardware.
Catalyst 9200 upgrade procedure

As a quick introduction, here are some differences between IOS and IOS-XE.


  • Monolithic – The OS and its processes run in the same address space on the same hardware.
  • A single process could crash the entire system


  • Runs a Linux OS
  • Modular System
  • Multiprocessing allows for workloads to be shared across multiple CPUs.
  • Individual sub packages create IOS-XE that can be upgraded individually

Now that you have some understanding of the differences between IOS and IOS-XE you need to understand that there is two modes of operation.

The Cisco Catalyst 3650, 3850, and 9K series switches have two modes of operation, Install Mode and Bundle Mode.

Install Mode

Install mode uses a package-provisioning file named packages.conf, which is in charge of booting the switch. There are several .pkg files found in the flash drive that provide a specific function to the OS. Cisco recommends not altering any of the files.

Bundle Mode

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

I would suggest operating in Install mode as this is the default, and provides you with a modular system, you can switch them if you choose.

Lets continue into our upgrade..

You can see from the output of the 3650 that the current software version is 03.06.05b.e and it is running in Install Mode.


Download your image from Cisco. The new software version here will be 03.06.06E. I have chosen to use a USB drive to place my source image on, but you can still use a transfer protocol like TFTP or SCP.


After confirming that you have your source image in its proper location, execute the following command on the switch with your source image accurately defined.

Switch#software install file usbflash0:cat3k_caa-universalk9.SPA.03.06.06.E.152-2.E6.bin

The switch prepares the image for installation; below you see the switch performing pre-installation tasks. It will ask you to confirm a reload. Confirm a reload by typing Yes.


It will take several minutes to reload, during the reload processes the switch does several post-installation tasks such as updating the Front-end Microcode.


Once the switch has successfully finished reloading, you can log back in and confirm that the new version was successfully applied. Below we have successfully loaded 03.06.06E onto the switch.


As a post clean up task you should execute the command software clean switch 1. This will remove the packages.conf and .pkg files associated to the old image.

Switch#software clean switch 1


Here is what the flash looks like post upgrade..


That wraps up the upgrade process. I hope that this has been helpful for you.




12 thoughts on “Upgrading Cisco IOS-XE Software (Install Mode)

    1. Hi NayLinn, the best way to determine the most stable release for any hardware as you may already know is to look for the star’d release. In the 3650 case, there are two star’d release’s 16.3.8/16.6.6. It’s best to read through the release notes to determine what caveats the release fixes or if you can benefit from new features. If you decide to just go with the latest star’d release you would just have to cross reference the star’d release to the latest on the release notes page. At this time, 16.6.6 is the mote recent star’d release for the 3650.


  1. Juan

    Hi Mike;

    Good write up. I have one question.

    I have a Cisco C9410R with dual supervisors, how do you upgrade this device?




    1. Hi Jarar – Copy the new file and execute the upgrade on the stack master (non member). The master sends the upgrade commands to the stack members. The master will reboot first.
      his operation requires a reload of the system. Do you want to proceed? [y/n]y
      — Starting Activate —
      Performing Activate on all members
      [1] Activate package(s) on switch 1
      [1] Finished Activate on switch 1
      Checking status of Activate on [1]
      Activate: Passed on [1]
      Finished Activate

      — Starting Commit —
      Performing Commit on all members


  2. Jeremy Siegler

    I have an issue with Cisco Catalyst C3650-48PD-E switch. When I turn it on it errors out giving about the ip address and subnet not set correctly and boots to switch mode. And does not have an image to boot from. I went the cisco website downloaded the correct image. But after it writes it to the internal flash it errors out. I don’t remember what the error I would have to get that work tomorrow. But it also seems like they formatted the internal flash memory. I been trying to figure this issue out for the past week. I been looking at just about every website I can think of. I came across your website so hopefully someone can help me out. I been working on cisco switches, router, firewalls etc. since 2009 in college and never an issues like this. If you can please help out thank.


    1. Hi Jeremy,
      Thanks for asking you question. Sorry that you are experiencing this issue. It sounds to me that you may need to boot the switch into ROMMON and review what’s currently in flash from a boot image. If any I’d recommend loading a fresh image into flash from ROMMON. Do you have experience recovering a switch from ROMMON?


  3. Joe R

    I am trying to update a WS-C3650-24TS that is currently running BUNDLE mode

    System Image File is “cat3k_caa-universalk9.16.09.06.SPA.bin”

    I’d like to upgrade to cat3k_caa-universalk9.16.12.08.SPA.bin

    I am successful in getting the file into Flash via TFTP. I then run this to prepare the Package.

    C3650(config)#boot system flash:packages.conf
    C3650#show boot system

    The Results for “show boot system” show Current Boot Variable and Boot Variable on next reload is cat3k_caa-universalk9.16.09.06.SPA.bin

    I am uncertain if it show show the file or not here, but I continue with the install

    C3650#install add file flash:cat3k_caa-universalk9.16.12.08.SPA.bin activate commit

    It looks like it installed the and reboots the switch. Once back up Show Ver still shows the version.

    I am not sure what I missing here? (sorry if this isn’t the correct thread where this show be).


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s