A stack-safe install-mode upgrade for a Catalyst 9300, plus the matching downgrade path. Sanitized for publication — IP and filename values below are illustrative.
show switch — every member should read Ready before you start.show version — your baseline to diff against after the reload.dir flash: / show install summary. The image plus extraction headroom has to fit on each one, not just the active switch.copy running-config tftp://10.200.20.163/backups/9300-preupgrade.cfginstall activate reloads the whole stack regardless of how clean the upgrade is.Clears inactive/uncommitted packages left from previous installs, freeing flash before the new image lands.
Switch# install remove inactive
Pulls the target image onto the active switch's flash over TFTP before it's added to the stack.
Switch# copy tftp://10.200.20.163/9300-24UX-A/cat9k_iosxe.17.09.05.SPA.bin flash:
Verify before trusting it: verify /md5 flash:cat9k_iosxe.17.09.05.SPA.bin, checked against the hash on Cisco's download page. Cheaper to catch here than mid-install add.
Syncs the image to every stack member over StackWise via install add.
Switch# install add file flash:cat9k_iosxe.17.09.05.SPA.bin
Unpacks the .bin, updates the boot config, reloads the stack into the new image.
Switch# install activate
Reloads the entire stack. Confirm the maintenance window and console access before running this.
Finalizes the upgrade so it survives the next reload.
Switch# install commit
install commit must run within 2 hours of activation or the switch auto-rolls-back on its next reload. If you find a problem before that window closes, use install rollback to committed to revert immediately — don't wait on the timer if the issue is urgent.
show version — every member on the new IOS-XE version.show switch — all members rejoined, all Ready.show install summary — package state C (committed), not I.Catalyst 9300 stacks default to install mode; some legacy devices still run bundle boot mode. Check which one you have, then use the matching method below.
show version | include mode — INSTALL_MODE → Method A. BUNDLE_MODE → Method B.
| step | command |
|---|---|
| confirm image on flash | dir flash: |
| back up running-config | copy running-config tftp://10.200.20.163/backups/9300-predowngrade.cfg |
| add / activate / commit older image | install add file flash:<OldIOSImageName>.bin activate commit |
Switch# dir flash: # confirm the older image is present; TFTP/USB it in if not Switch# copy running-config tftp://10.200.20.163/backups/9300-predowngrade.cfg Switch(config)# boot system flash:<YourIOSImageName>.bin # global config mode Switch# copy running-config startup-config # save the boot statement Switch# reload
Run show version to confirm the switch booted the expected image before handing it back.