Cisco Catalyst 9300 Switch IOS-XE Upgrade (BUNDLE Mode) – Complete Guide with Rollback

Introduction

Cisco Catalyst 9300 switches can run IOS-XE in two modes: INSTALL mode (recommended) and BUNDLE mode. In BUNDLE mode, the switch boots directly from a monolithic .bin file without extracting packages.

BUNDLE mode is similar to traditional IOS upgrade procedures and is simpler but offers less flexibility compared to INSTALL mode. It's typically used for:

  • Lab environments and testing
  • Temporary emergency recovery
  • Situations where simplified management is preferred
  • Environments with limited flash space constraints

This article provides a complete BUNDLE mode upgrade procedure including configuration backup, flash cleanup, image transfer, MD5 validation, boot configuration, upgrade execution, post-upgrade verification, and rollback procedures.

Important Note: Cisco recommends INSTALL mode for production environments due to better rollback capabilities, modular architecture, and easier troubleshooting. Consider converting to INSTALL mode after reviewing your requirements.

BUNDLE Mode vs INSTALL Mode

Understanding the differences helps you choose the right mode:

BUNDLE Mode Characteristics:

  • Boots directly from the .bin file
  • Single monolithic image file
  • Simpler upgrade process (similar to traditional IOS)
  • Faster boot time (no package extraction)
  • Uses less flash space during operation
  • Limited rollback capabilities
  • No "install" commands available

INSTALL Mode Characteristics:

  • Boots from packages.conf
  • Modular package architecture
  • Advanced rollback capabilities
  • Requires more flash space
  • Longer initial boot (package extraction)
  • Better for production environments

Prerequisites

  • Approved maintenance window
  • Console or out-of-band access available
  • Correct IOS-XE .bin image downloaded from Cisco Software Portal
  • Configuration backup completed
  • Switch currently running in BUNDLE mode (or willing to convert from INSTALL mode)
  • Sufficient flash space available (minimum 1.5-2 GB free)
  • Verify switch stack members are all in ready state (if applicable)

Verify Current Boot Mode

show version
  

Look at the "System image file" line in the output:

  • BUNDLE mode: Shows flash:cat9k_iosxe.16.12.10.bin
  • INSTALL mode: Shows flash:packages.conf
show boot
  

This displays the boot variable configuration. In BUNDLE mode, you'll see the .bin file path directly.

Example output for BUNDLE mode:

BOOT variable = flash:cat9k_iosxe.16.12.10.bin
  

Converting from INSTALL Mode to BUNDLE Mode (If Needed)

If your switch is currently in INSTALL mode and you want to convert to BUNDLE mode, follow these steps:

install remove inactive
  

First, clean up old packages to free space.

conf t
no boot system
boot system flash:cat9k_iosxe.16.12.10.bin
end
write memory
reload
  

Note: The .bin file must already exist in flash. After reload, the switch will boot in BUNDLE mode directly from the .bin file.

Warning: Converting from INSTALL to BUNDLE mode will remove the advanced rollback capabilities. Ensure you have a backup plan.

Backup Configuration

copy running-config startup-config
copy startup-config tftp:
  

Important: Also backup the startup-config to an external location (TFTP/FTP/USB/SCP) before proceeding with the upgrade. Store the backup with the current IOS version information for easy reference.

Recommended operational verification and documentation commands:

show run
show version
show ip interface brief
show interface status
show vlan brief
show spanning-tree summary
show etherchannel summary
show cdp neighbors
show ip route summary
show mac address-table count
  

Document current switch behavior, interface status, routing information, and feature status. This baseline will help verify functionality after the upgrade and assist with troubleshooting if issues arise.

Tip: Take screenshots or save the output to text files with timestamps.

Identify Current and Target IOS-XE Image

Clearly identify the versions involved in your upgrade:

Current Image: cat9k_iosxe.16.12.10.bin
Target Image:  cat9k_iosxe.17.09.04.bin
  

Always choose a Cisco-recommended or Gold Star release for production environments. Verify compatibility with your hardware platform and current feature set on Cisco's website or using the Software Advisor tool.

Important Considerations:

  • Major version upgrades (e.g., 16.x to 17.x) may require reviewing release notes for configuration changes, deprecated features, or new requirements
  • Check for any known issues or recommended migration paths
  • Verify licensing requirements haven't changed between versions
  • Confirm that all features you currently use are supported in the new version

Check Flash Space

dir flash:
  

Look for available bytes in the output. Catalyst 9300 IOS-XE .bin files are typically 600MB-1GB in size. You need at least 1.5-2 GB of free space to safely store both old and new images during the upgrade process.

show file systems
  

This command displays all available storage filesystems and their current usage statistics.

Example output interpretation:

Size(b)       Free(b)      Type  Flags  Prefixes
11353194496   8245678080   flash rw     flash:
  

In this example, you have approximately 8.2GB free, which is sufficient for the upgrade.

Clean Up Flash Space

In BUNDLE mode, there are no "install" commands. You must manually delete unwanted files to free up space.

Identify Files to Delete

dir flash:
  

Look for files that can be safely removed:

  • Old .bin files (but keep the currently running one until upgrade is successful)
  • Core dump files (*.gz, core-*.tar.gz)
  • Crash information directories
  • Temporary directories (.installer, .prst, etc.)
  • Old log files

Delete Unwanted Files

delete /force flash:old_image.bin
delete /force flash:core*.gz
delete /force /recursive flash:crashinfo
delete /force /recursive flash:.installer
delete /force /recursive flash:.prst
  

Critical Warning - Do NOT Delete:

  • The currently running .bin file (check with "show version" first)
  • startup-config or any configuration files
  • License files (*.lic)
  • vlan.dat (unless you want to reset VLAN configuration)
  • Any custom scripts or certificates you need

Verify Space After Cleanup

dir flash:
  

Confirm you now have sufficient free space for the new image.

Transfer New IOS-XE Image to the Switch

Method 1: Transfer Using TFTP

TFTP is simple but slower and less secure. Ensure the TFTP server is reachable from the switch management interface.

Example TFTP Server IP: 192.168.1.10

copy tftp: flash:
  

When prompted, enter the following information:

Address or name of remote host []? 192.168.1.10
Source filename []? cat9k_iosxe.17.09.04.bin
Destination filename [cat9k_iosxe.17.09.04.bin]? <press Enter>
  

The transfer may take 10-30 minutes depending on network speed and file size (typically 600MB-1GB). Monitor the progress carefully and do not interrupt the transfer or power cycle the switch.

Method 2: Transfer Using SCP (Recommended - Faster and Secure)

SCP provides faster transfer speeds and encryption. First, ensure SCP server is configured:

conf t
ip scp server enable
aaa new-model
aaa authentication login default local
aaa authorization exec default local
end
  

Then copy the file:

copy scp://username@192.168.1.10/cat9k_iosxe.17.09.04.bin flash:
  

You'll be prompted for the password.

Method 3: Transfer Using FTP

copy ftp://username:password@192.168.1.10/cat9k_iosxe.17.09.04.bin flash:
  

Security Note: FTP sends credentials in clear text. Use SCP when possible.

Method 4: Transfer Using HTTP/HTTPS

copy http://192.168.1.10/images/cat9k_iosxe.17.09.04.bin flash:
  

or for secure transfer:

copy https://192.168.1.10/images/cat9k_iosxe.17.09.04.bin flash:
  

Method 5: Transfer Using USB Drive

USB Requirements:

  • Format: FAT32
  • Maximum size: 8GB (some models support up to 16GB)
  • Image file must be in the root directory
  • Use USB 2.0 for better compatibility

First, verify the USB drive is detected:

dir usbflash0:
  

Then copy the file:

copy usbflash0:cat9k_iosxe.17.09.04.bin flash:
  

Note: USB transfer is significantly slower than network transfer but useful when network access is limited or unavailable.

Monitor the transfer: Watch for any error messages. The switch will display progress in hash marks (#) or percentage completion.

Verify Image Integrity Using MD5 Checksum

This is a CRITICAL step. A corrupted image file can cause boot failures and potentially brick your switch. Never skip MD5 verification.

Download the MD5 checksum from Cisco Software Portal alongside the image file. The checksum is usually displayed on the download page or available in a separate checksum file.

Verify MD5 with Known Checksum

Example MD5 value from Cisco Software Portal:

9f3a6c9c6b2e1f0c3a5d4e7b8a1c2d3e
  

Run the verification command:

verify /md5 flash:cat9k_iosxe.17.09.04.bin 9f3a6c9c6b2e1f0c3a5d4e7b8a1c2d3e
  

Expected Output if Successful:

Verified (flash:cat9k_iosxe.17.09.04.bin) = 9f3a6c9c6b2e1f0c3a5d4e7b8a1c2d3e
  

If the MD5 hash matches, you'll see "Verified" - proceed with upgrade.
If it doesn't match, you'll see an error - DELETE the file immediately and re-transfer it.

Compute MD5 Without Known Checksum

If you don't have the MD5 hash readily available, you can compute it:

verify /md5 flash:cat9k_iosxe.17.09.04.bin
  

This will calculate the MD5 hash (takes 5-10 minutes for large files). Then compare this value manually with the one published on Cisco's website.

Alternative: SHA512 Verification (Newer IOS-XE Versions)

verify /sha512 flash:cat9k_iosxe.17.09.04.bin
  

SHA512 is more secure than MD5. Check if Cisco provides SHA512 checksums for your image version.

What if verification fails?

  1. Delete the corrupted file: delete /force flash:cat9k_iosxe.17.09.04.bin
  2. Re-download the image from Cisco
  3. Re-transfer to the switch
  4. Verify again before proceeding

Configure Boot System for New Image

In BUNDLE mode, you must manually configure the boot variable to point to the new .bin file. This tells the switch which image to load on the next reload.

Check Current Boot Configuration

show boot
  

This shows the current BOOT variable. You'll see something like:

BOOT variable = flash:cat9k_iosxe.16.12.10.bin
  

Configure New Boot Variable

Important: For safety, configure BOTH old and new images. This creates a fallback if the new image fails to boot.

conf t
boot system flash:cat9k_iosxe.17.09.04.bin
boot system flash:cat9k_iosxe.16.12.10.bin
end
  

The switch will attempt to boot from the first entry. If it fails, it will try the second entry automatically. This provides basic redundancy.

Save Configuration

write memory
  

or

copy running-config startup-config
  

Critical: Do NOT skip this step. If you don't save, the boot configuration changes will be lost and the switch will boot the old image.

Verify Boot Configuration

show boot
  

Confirm the output shows the new image first in the boot order:

BOOT variable = flash:cat9k_iosxe.17.09.04.bin,flash:cat9k_iosxe.16.12.10.bin
  

For Switch Stacks

When upgrading a switch stack, ensure ALL members have the new image and boot configuration. The boot configuration is synchronized across stack members, but verify each member has the image file:

dir flash:
show switch
  

If stack members have separate flash storage, you may need to copy the image to each member's flash.

Perform the Upgrade (Reload the Switch)

In BUNDLE mode, there is no special upgrade command. You simply reload the switch and it will boot from the new image based on the boot variable configuration.

Final Pre-Reload Checklist

  • ✓ Configuration backed up to external location
  • ✓ New image transferred and MD5 verified
  • ✓ Boot variable configured and saved
  • ✓ Console access available
  • ✓ Maintenance window active
  • ✓ All team members notified

Reload the Switch

reload
  

You'll be prompted to confirm:

System configuration has been modified. Save? [yes/no]: yes
Proceed with reload? [confirm]
  

Press Enter to confirm. The switch will save the configuration and begin the reload process.

For Switch Stacks

To reload all stack members simultaneously:

reload
  

This reloads the entire stack. All members will reboot together.

Alternative - Reload Individual Stack Members:

reload slot 2
  

This allows staged upgrades with minimal downtime, but requires more time and careful planning.

Monitor the Boot Process

Connect via console and monitor the boot process. The switch will:

  1. Perform POST (Power-On Self Test)
  2. Load the new IOS-XE image from flash
  3. Initialize hardware components
  4. Load the startup configuration
  5. Bring up interfaces and services

Boot Time: Typically 5-10 minutes for Catalyst 9300 switches. BUNDLE mode boots faster than INSTALL mode since it doesn't extract packages.

What to Watch For:

  • Any error messages during boot
  • Successful loading of the new image
  • All interfaces coming up properly
  • No hardware failures or warnings

Post-Upgrade Verification

After the switch completes its reload, perform comprehensive verification to ensure the upgrade was successful and all services are functioning correctly.

Verify New IOS-XE Version is Running

show version
  

Check the following in the output:

  • Cisco IOS XE Software, Version: Should show 17.09.04 (or your target version)
  • System image file: Should show flash:cat9k_iosxe.17.09.04.bin
  • System uptime: Should be recent (just rebooted)
  • Processor board ID: Verify it's your switch

Verify Boot Configuration

show boot
  

Confirm the new image is listed in the boot variable. The output should show:

BOOT variable = flash:cat9k_iosxe.17.09.04.bin,flash:cat9k_iosxe.16.12.10.bin
  

Check Running vs Startup Configuration

show run | include boot
show start | include boot
  

Verify boot configuration is consistent between running and startup configs.

Hardware and Stack Verification (If Applicable)

show switch
show module
show inventory
show environment all
  

Verify:

  • All stack members are present and in "Ready" state
  • All modules are detected and operational
  • No environmental alarms (temperature, power, fans)
  • Serial numbers match your documentation

Interface Status Verification

show interface status
show ip interface brief
show interface description
show interface trunk
  

Compare with your pre-upgrade baseline. Verify:

  • All interfaces are in the same state (up/down) as before
  • Trunk interfaces are operational
  • IP addresses are correct
  • No unexpected interface resets or errors

Layer 2 Verification

show vlan brief
show spanning-tree summary
show etherchannel summary
show mac address-table count
show cdp neighbors
show lldp neighbors
  

Verify:

  • All VLANs are present and active
  • Spanning-tree is converged (no topology changes)
  • Port-channels are up with correct member ports
  • MAC address table is being populated
  • CDP/LLDP neighbors are discovered

Layer 3 and Routing Verification

show ip route
show ip route summary
show ip ospf neighbor
show ip eigrp neighbors
show ip bgp summary
show ip protocols
  

Verify:

  • Routing table is populated correctly
  • All expected routes are present
  • Routing protocol neighbors are established
  • No routing loops or black holes

System Health Check

show processes cpu sorted
show processes memory sorted
show memory statistics
show platform software status control-processor brief
  

Verify:

  • CPU utilization is normal (below 40% in steady state)
  • Memory usage is stable
  • No processes consuming excessive resources
  • Control processor status is healthy

Check System Logs

show logging
show logging | include Error
show logging | include Fail
  

Review logs carefully for:

  • Any critical errors or warnings
  • Failed service initializations
  • Hardware failures
  • License violations

Feature-Specific Verification

Depending on your switch configuration, verify specific features:

show ip dhcp snooping
show ip arp inspection
show authentication sessions
show access-lists
show ip nat translations
show crypto session
show power inline
show stack-power
  

Connectivity Testing

Test basic connectivity:

ping <gateway-ip>
ping <management-server-ip>
ping <adjacent-switch-ip>
traceroute <remote-destination>
  

Performance Baseline

Establish a new baseline for comparison:

show interfaces counters
show interfaces counters errors
show platform hardware fed switch active qos queue stats internal cpu policer
  

Verification Checklist Summary

  • ✓ New IOS-XE version confirmed in "show version"
  • ✓ Boot variable correctly configured
  • ✓ All hardware detected and operational
  • ✓ All interfaces in expected state
  • ✓ VLANs and Layer 2 features working
  • ✓ Routing protocols converged
  • ✓ CPU and memory usage normal
  • ✓ No critical errors in logs
  • ✓ Connectivity tests successful
  • ✓ All custom features operational

Recommendation: Monitor the switch for at least 24-48 hours after upgrade before considering it fully stable. Watch for memory leaks, unexpected behavior, or intermittent issues.

Rollback or Downgrade Procedure

If issues arise after the upgrade, BUNDLE mode rollback is straightforward but requires the old image file to still be present in flash. Unlike INSTALL mode, there are no automated rollback commands - you must manually reconfigure the boot variable and reload.

Prerequisites for Rollback

  • Old .bin file still exists in flash (verify with "dir flash:")
  • Console access available
  • Maintenance window for reload
  • Configuration backup available

Method 1: Rollback Using Boot Variable (Recommended)

This is the cleanest method if you followed the best practice of configuring multiple boot entries.

Step 1: Verify the old image exists

dir flash: | include cat9k_iosxe.16.12.10.bin
  

Step 2: Check current boot configuration

show boot
  

Step 3: Reconfigure boot order to prioritize old image

conf t
no boot system
boot system flash:cat9k_iosxe.16.12.10.bin
boot system flash:cat9k_iosxe.17.09.04.bin
end
  

This places the old (working) image first in boot order, making it the primary boot image.

Step 4: Save configuration

write memory
  

Step 5: Verify new boot order

show boot
  

Should show:

BOOT variable = flash:cat9k_iosxe.16.12.10.bin,flash:cat9k_iosxe.17.09.04.bin
  

Step 6: Reload the switch

reload
  

The switch will boot from the old (working) image.

Method 2: Emergency Rollback (If Boot Config Lost)

If the boot configuration was somehow lost or corrupted:

conf t
boot system flash:cat9k_iosxe.16.12.10.bin
end
write memory
reload
  

Method 3: ROMMON Boot (Emergency Recovery)

If the switch fails to boot normally, you can boot from ROMMON mode:

Step 1: During boot, press and hold BREAK or CTRL+C to enter ROMMON mode

Step 2: Set boot variable in ROMMON

switch: boot flash:cat9k_iosxe.16.12.10.bin
  

The switch will boot directly from the specified image.

Step 3: After successful boot, fix the boot configuration

conf t
boot system flash:cat9k_iosxe.16.12.10.bin
end
write memory
  

Method 4: Rollback for Switch Stacks

For switch stacks, ensure all members have the old image:

show switch
dir flash:
  

Then follow Method 1, configuring the boot variable and reloading. All stack members will synchronize and boot the old image.

conf t
no boot system
boot system flash:cat9k_iosxe.16.12.10.bin
end
write memory
reload
  

What If Old Image Was Deleted?

If you deleted the old .bin file and need to rollback:

  1. Transfer the old image back to flash (via TFTP/SCP/USB)
  2. Verify MD5 checksum
  3. Configure boot variable to point to old image
  4. Save and reload
copy tftp://192.168.1.10/cat9k_iosxe.16.12.10.bin flash:
verify /md5 flash:cat9k_iosxe.16.12.10.bin
conf t
boot system flash:cat9k_iosxe.16.12.10.bin
end
write memory
reload
  

Configuration Rollback (If Needed)

If configuration changes were made that need to be reverted:

copy tftp://192.168.1.10/backup-config-16.12.10.cfg running-config
  

or

configure replace flash:backup-config.cfg
  

Warning: "configure replace" will reload the entire configuration. Use with caution.

Post-Rollback Verification

After performing a rollback, verify the system is stable and running the correct version:

show version
show boot
show switch
show interface status
show ip interface brief
show logging
show processes cpu
show memory statistics
  

Document the reason for rollback, any errors encountered, and lessons learned. This information is valuable for planning the next upgrade attempt.

Root Cause Analysis:

  • What specific issue caused the rollback?
  • Was it hardware-related, software bug, or configuration issue?
  • Are there known bugs in the target version affecting your features?
  • Do you need to adjust your upgrade strategy?

Cleanup After Successful Upgrade

Once you've confirmed the upgrade is stable and you're confident in the new version (typically after 24-48 hours of monitoring in production), you can clean up old files to free flash space.

Remove Old Image File (Optional)

Consider carefully before deleting: Keeping the old image provides a quick rollback option if issues arise later.

dir flash:
delete /force flash:cat9k_iosxe.16.12.10.bin
  

Best Practice: Keep the old .bin file backed up externally for at least 30-90 days before permanently deleting from flash.

Update Boot Configuration (If Old Image Deleted)

If you delete the old image, update the boot variable to remove the reference:

conf t
no boot system
boot system flash:cat9k_iosxe.17.09.04.bin
end
write memory
  

Clean Up Other Unnecessary Files

delete /force flash:core*.gz
delete /force /recursive flash:crashinfo
dir flash:
  

Verify Final Configuration

show boot
dir flash:
  

Confirm only necessary files remain and boot configuration is correct.

Converting from BUNDLE Mode to INSTALL Mode

After experiencing BUNDLE mode, you may want to convert to INSTALL mode for better rollback capabilities and modular architecture. Here's how:

Why Convert to INSTALL Mode?

  • Advanced rollback capabilities (install rollback to committed)
  • Modular package architecture
  • Better for production environments
  • Easier troubleshooting and diagnostics
  • Patch management capabilities

Conversion Procedure

The .bin file you currently have can be extracted and converted to INSTALL mode:

request platform software package install switch all file flash:cat9k_iosxe.17.09.04.bin auto-copy
  

or use the standard install command:

install add file flash:cat9k_iosxe.17.09.04.bin activate commit
  

This will extract the packages, activate them, and configure packages.conf as the boot source. After reload, the switch will be in INSTALL mode.

Verify Conversion

show version
show boot
  

After reload, the system image file should show "flash:packages.conf" instead of the .bin file, confirming INSTALL mode.

Common Mistakes to Avoid

  • Skipping configuration backup: Always backup to an external location before any upgrade
  • Not verifying MD5 checksum: Corrupted images can cause catastrophic boot failures
  • Forgetting to save boot configuration: Use "write memory" after changing boot variable
  • Deleting old image before verifying new one: Keep old image for rollback until confident
  • Not configuring fallback boot entry: Always configure both new and old images in boot variable
  • Insufficient flash space: Clean up before transferring new image
  • Not monitoring console during boot: Console access reveals issues immediately
  • Upgrading without maintenance window: Always schedule proper downtime
  • Not documenting baseline state: Makes post-upgrade verification difficult
  • Ignoring stack member status: All members must be ready before upgrade
  • Not testing rollback procedure: Practice rollback in lab environment
  • Upgrading multiple major versions at once: Follow Cisco's recommended upgrade path

Best Practices Summary

  • Always perform upgrades during approved maintenance windows
  • Have console access available throughout the entire process
  • Keep old .bin file in flash until new version is proven stable (24-48 hours minimum)
  • Configure multiple boot entries for automatic fallback
  • Document every step with timestamps and command outputs
  • Test rollback procedure in lab environment before production upgrade
  • Never interrupt file transfers or reload processes
  • Always verify MD5 checksums - never skip this critical step
  • Save boot configuration before reloading
  • Monitor switch for 24-48 hours post-upgrade before cleanup
  • Review Cisco release notes and known issues before upgrading
  • Ensure all stack members have consistent images and configurations
  • Keep external backups of configurations and images
  • Consider converting to INSTALL mode for production environments
  • Use SCP or HTTPS for secure, fast file transfers
  • Verify licensing compatibility with new IOS-XE version

Troubleshooting Common Issues

Issue 1: Switch Boots to Old Image Despite New Boot Configuration

Cause: Boot configuration not saved or overridden by startup-config

Solution:

show boot
show start | include boot
  

Verify boot config is saved in startup-config. Re-configure and save:

conf t
no boot system
boot system flash:cat9k_iosxe.17.09.04.bin
end
write memory
reload
  

Issue 2: "Insufficient Space on Flash"

Cause: Not enough free space for image transfer

Solution:

dir flash:
delete /force flash:old_files
delete /force /recursive flash:unnecessary_directories
squeeze flash:
  

The "squeeze" command permanently removes deleted files and reclaims space.

Issue 3: Switch Hangs at "Loading Image"

Cause: Corrupted image or insufficient memory

Solution:

  1. Wait 15-20 minutes (some images take time to load)
  2. If still hung, power cycle and enter ROMMON
  3. Boot from old image using ROMMON commands
  4. Delete corrupted new image and re-transfer

Issue 4: MD5 Verification Fails

Cause: Corrupted file during transfer

Solution:

delete /force flash:cat9k_iosxe.17.09.04.bin
  

Re-download from Cisco and re-transfer. Try different transfer method (SCP instead of TFTP).

Issue 5: Stack Member Version Mismatch After Upgrade

Cause: Individual member didn't reload or image wasn't copied

Solution:

show switch
show version
  

Identify member with wrong version and reload individually:

reload slot <member-number>
  

Issue 6: Boot Loop - Switch Continuously Reboots

Cause: Corrupted image or incompatible hardware/software

Solution:

  1. Break into ROMMON during boot (CTRL+Break)
  2. Boot old image manually:
    switch: boot flash:cat9k_iosxe.16.12.10.bin
  3. After boot, fix configuration and investigate compatibility

Issue 7: Features Not Working After Upgrade

Cause: Configuration incompatibility or deprecated features

Solution:

  1. Review release notes for deprecated features
  2. Check configuration for syntax changes
  3. Review logs for specific error messages
  4. Consider rollback if critical features are broken
show logging | include Error
show logging | include Fail
  

Issue 8: High CPU or Memory Usage After Upgrade

Cause: Software bug or process issue in new version

Solution:

show processes cpu sorted
show processes memory sorted
show platform software status control-processor brief
  

Identify problematic process and search Cisco bug toolkit. May require rollback or patch to different version.

Issue 9: Cannot Access Switch After Upgrade

Cause: Management interface issue or SSH/Telnet configuration problem

Solution:

  1. Access via console (always have console access during upgrades)
  2. Verify interface status:
    show ip interface brief
    show interface status
  3. Check SSH/Telnet configuration
  4. Restore from backup if needed

BUNDLE Mode vs INSTALL Mode: When to Use Each

Use BUNDLE Mode When:

  • Working in lab or test environments
  • Need simpler management without advanced features
  • Flash space is extremely limited
  • Want faster boot times
  • Temporary deployment or emergency recovery
  • Familiar with traditional IOS upgrade procedures

Use INSTALL Mode When:

  • Running production environments
  • Need advanced rollback capabilities
  • Want modular package management
  • Require patch management without full upgrades
  • Need better troubleshooting and diagnostics
  • Following Cisco best practices and recommendations

Cisco's Recommendation

Cisco recommends INSTALL mode for all production Catalyst 9000 series switches. BUNDLE mode is maintained for backward compatibility and specific use cases but is not the preferred deployment method.

Comparison: BUNDLE Mode vs INSTALL Mode Upgrade

Feature BUNDLE Mode INSTALL Mode
Upgrade Command Manual boot config + reload install add activate commit
Rollback Method Manual boot config change install rollback to committed
Boot Time 5-7 minutes (faster) 7-10 minutes (slower)
Flash Space Required 1.5-2 GB 3-4 GB
Complexity Lower Higher
Production Use Not recommended Recommended
Package Management None Full modular support

Conclusion

Upgrading a Cisco Catalyst 9300 switch in BUNDLE mode is straightforward and similar to traditional IOS upgrade procedures. The process involves transferring the new .bin file, verifying its integrity, configuring the boot variable, and reloading the switch.

While BUNDLE mode is simpler and requires less flash space, it lacks the advanced rollback capabilities and modular architecture of INSTALL mode. For production environments, Cisco strongly recommends using INSTALL mode for better manageability, easier troubleshooting, and more robust rollback options.

Key Takeaways:

  • BUNDLE mode boots directly from .bin files
  • Always configure multiple boot entries for fallback capability
  • Keep old image file in flash until new version is proven stable
  • MD5 verification is critical - never skip this step
  • Always save boot configuration with "write memory"
  • Have console access available during the entire upgrade
  • Monitor for 24-48 hours before considering upgrade successful
  • Document baseline state before upgrade for comparison
  • Consider converting to INSTALL mode for production environments

Remember: Proper preparation, thorough verification, and having a tested rollback plan are essential for successful IOS-XE upgrades regardless of the mode used. Always follow Cisco best practices and review release notes before upgrading production switches.

For production environments with critical uptime requirements, strongly consider using INSTALL mode instead of BUNDLE mode for the additional safety and rollback capabilities it provides.