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?
- Delete the corrupted file:
delete /force flash:cat9k_iosxe.17.09.04.bin - Re-download the image from Cisco
- Re-transfer to the switch
- 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:
- Perform POST (Power-On Self Test)
- Load the new IOS-XE image from flash
- Initialize hardware components
- Load the startup configuration
- 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:
- Transfer the old image back to flash (via TFTP/SCP/USB)
- Verify MD5 checksum
- Configure boot variable to point to old image
- 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:
- Wait 15-20 minutes (some images take time to load)
- If still hung, power cycle and enter ROMMON
- Boot from old image using ROMMON commands
- 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:
- Break into ROMMON during boot (CTRL+Break)
- Boot old image manually:
switch: boot flash:cat9k_iosxe.16.12.10.bin
- After boot, fix configuration and investigate compatibility
Issue 7: Features Not Working After Upgrade
Cause: Configuration incompatibility or deprecated features
Solution:
- Review release notes for deprecated features
- Check configuration for syntax changes
- Review logs for specific error messages
- 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:
- Access via console (always have console access during upgrades)
- Verify interface status:
show ip interface brief show interface status
- Check SSH/Telnet configuration
- 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.