Introduction
This document describes how to change between bundle and install modes on Cisco Catalyst 9000 Series Switches.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
- Familiarity withCatalyst 9000 Series Switches.
Components Used
The information in this document is based on these software and hardware versions:
- C9200
- C9300
- C9400
- C9500
- C9600
- Cisco IOSĀ® XE &17.X software
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Install Modes Overview
Bundle Mode
Bundle mode is a fancy way to say that switch runs the traditional way of Cisco IOSĀ®. You boot a .bin file that contains everything you need to run the Cisco IOS. As per traditional Cisco IOS, you have a boot statement that points to the .bin file you want to load and that gets loaded at the time of boot.
Install Mode
Install mode is the newer and recommended mode to run. This breaks the.binfile up into smaller.pkgfiles that must be loaded into memory independently of each other, and allows you to boot faster and utilize memory better. The .bin file that you download from software.cisco.com has all the .pkg files you need inside. Think of the .bin file as a .zip file. It is able be extracted to obtain the .pkg files. There is also a configuration file that is used to indicate what .pkg files are needed.
- The boot statement is looked at to determine what configuration file to load(usually packages.conf).
- The configuration file is opened and used to sort out what .pkg files to load.
- The .pkg files are loaded and Cisco IOS completes the boot process.
- The.conffile is just a text file that is used as a pointer, and you are able open it up and look at it from the CLI.
Configure
From Bundle to Install mode
Your boot statement must always be packages.conf in install mode. If you try to change the boot statement to another .conf file while you are in the middle of an upgrade, it could cause the upgrade to fail. If you have already run the ADD
command, you need to activate the package you added or clean it out to start over. Do not change your boot statement to an inactive package.
If you want to move to install, you need to first change your boot statement to packages.conf if it is not already then add the .bin file. This means you have to copy the new .bin file onto bootflash either from TFTP or USB. If you have issues with the copy of the file onto the switch because there is not enough space, see the Cleanup section of this doc to clear out files that are not needed.

1.Check the current version and mode.
Switch#show version
Cisco IOS XE Software, Version 17.15.03
Cisco IOS Software [IOSXE], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 17.15.3, RELEASE SOFTWARE (fc1)
***skip***
System image file is "flash:cat9k_iosxe.17.15.03.SPA.bin"
***skip***
Switch Ports Model SW Version SW Image Mode
------ ----- ----- ---------- ---------- ----
* 1 65 C9300-48UXM 17.15.03 CAT9K_IOSXE BUNDLE
2.Modify the BOOT variable to 'packages.conf' and save config.
Switch#conf t
Switch(config)#no boot system
Switch(config)#boot system flash:packages.conf
Switch(config)#end
Switch#wr
3.Check whether the BOOT variable has been successfully modified.
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
4.These commands complete the upgrade and you do not need to do any of the other steps. However, if you do not want to complete the upgrade in one step, it is possible to break it down into each individual step. (Switch automatically reboots in this step).
Switch#install add file flash:cat9k_iosxe.17.15.03.SPA.bin activate commit
install_add_activate_commit: START Mon Sep 01 04:43:30 UTC 2025
install_add: START Mon Sep 01 04:43:30 UTC 2025
install_add: Adding IMG
--- Starting initial file syncing ---
Copying flash:cat9k_iosxe.17.15.03.SPA.bin from Switch 1 to Switch 1
Info: Finished copying to the selected Switch
Finished initial file syncing
--- Starting Add ---
Performing Add on all members
Checking status of Add on [1]
Add: Passed on [1]
Image added. Version: 17.15.03.0.5635
Finished Add
install_activate: START Mon Sep 01 04:45:06 UTC 2025
install_activate: Activating IMG
Following packages shall be activated:
/flash/cat9k-cc_srdriver.17.15.03.SPA.pkg
/flash/cat9k-guestshell.17.15.03.SPA.pkg
/flash/cat9k-lni.17.15.03.SPA.pkg
/flash/cat9k-rpbase.17.15.03.SPA.pkg
/flash/cat9k-srdriver.17.15.03.SPA.pkg
/flash/cat9k-webui.17.15.03.SPA.pkg
/flash/cat9k-wlc.17.15.03.SPA.pkg
/flash/cat9k-rpboot.17.15.03.SPA.pkg
This operation may require 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
[1] Commit package(s) on Switch 1
[1] Finished Commit on Switch 1
Checking status of Commit on [1]
Commit: Passed on [1]
Finished Commit operation
SUCCESS: install_add_activate_commit Mon Sep 01 04:46:08 UTC 2025
5.Check after reload.
Switch#show version
Cisco IOS XE Software, Version 17.15.03
Cisco IOS Software [IOSXE], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 17.15.3, RELEASE SOFTWARE (fc1)
System image file is "flash:packages.conf"
Switch Ports Model SW Version SW Image Mode
------ ----- ----- ---------- ---------- ----
* 1 65 C9300-48UXM 17.15.03 CAT9K_IOSXE INSTALL
Switch#dir bootflash: | in 17.15.03
352278 -rw- 7568 Sep 1 2025 04:44:25 +00:00 cat9k_iosxe.17.15.03.SPA.conf
647170 -rw- 62171849 Sep 1 2025 04:44:04 +00:00 cat9k-rpboot.17.15.03.SPA.pkg
352279 -rw- 1281691345 Aug 19 2025 05:54:03 +00:00 cat9k_iosxe.17.15.03.SPA.bin
647176 -rw- 1113752576 Mar 26 2025 07:11:18 +00:00 cat9k-rpbase.17.15.03.SPA.pkg
647178 -rw- 19293184 Mar 26 2025 07:07:50 +00:00 cat9k-webui.17.15.03.SPA.pkg
647177 -rw- 49992708 Mar 26 2025 07:07:47 +00:00 cat9k-srdriver.17.15.03.SPA.pkg
647173 -rw- 35247112 Mar 26 2025 07:07:38 +00:00 cat9k-cc_srdriver.17.15.03.SPA.pkg
647174 -rw- 1922052 Mar 26 2025 07:07:29 +00:00 cat9k-guestshell.17.15.03.SPA.pkg
647179 -rw- 9216 Mar 26 2025 07:07:28 +00:00 cat9k-wlc.17.15.03.SPA.pkg
647175 -rw- 9216 Mar 26 2025 07:07:28 +00:00 cat9k-lni.17.15.03.SPA.pkg
From Install to bundle mode
1.Use FTP/TFTP/USB to import the image into bootflash. If you want to upgrade a switch to bundle mode, ensure you have copied the .bin to EVERY switch in the stack. If you have issues with the copy of the file onto the switch because there is not enough space, see the Cleanup section of this doc to clear out files that are not needed.
Switch#dir bootflash: | in 17.15.03.SPA.bin
352279 -rw- 1281691345 Aug 19 2025 05:54:03 +00:00 cat9k_iosxe.17.15.03.SPA.bin
2.Perform md5 verification to check image integrity. The output must be consistent with that provided in Cisco Software Central.
Switch#verify /md5 flash:cat9k_iosxe.17.15.03.SPA.bin

3.Modify the BOOT variable to 'cat9k_iosxe.17.XX.XX.SPA.bin' and save config.
Switch#conf t
Switch(config)#no boot system
Switch(config)#boot system flash:cat9k_iosxe.17.15.03.SPA.bin
Switch(config)#end
Switch#wr
4.Check whether the BOOT variable has been successfully modified.
Switch#show boot
---------------------------
Switch 1
---------------------------
Current Boot Variables:
BOOT variable = flash:cat9k_iosxe.17.15.03.SPA.bin;
Boot Variables on next reload:
BOOT variable = flash:cat9k_iosxe.17.15.03.SPA.bin;
Manual Boot = no
Enable Break = yes
Boot Mode = DEVICE
iPXE Timeout = 0
5.Reload the switch to take effect.
Switch#reload
Reload command is being issued on Active unit, this reloads the whole stack
Proceed with reload? [confirm]
6.Check after reload.
Switch#show version
Cisco IOS XE Software, Version 17.15.03
Cisco IOS Software [IOSXE], Catalyst L3 Switch Software (CAT9K_IOSXE), Version 17.15.3, RELEASE SOFTWARE (fc1)
***skip***
System image file is "flash:cat9k_iosxe.17.15.03.SPA.bin"
***skip***
Switch Ports Model SW Version SW Image Mode
------ ----- ----- ---------- ---------- ----
* 1 65 C9300-48UXM 17.15.03 CAT9K_IOSXE BUNDLE
Cleanup
Once you are done with an upgrade, you have the option to clean up all the files you do not need by removal of all inactive files. It looks at the current loaded .pkg files and removes everything else. You can review all the files it plans to delete before it deletes them. This removes all .bin files so if you want to cleanup before you do an upgrade, ensure you do it before you copy on the new .bin file.
Switch#install remove inactive
Related Information