Introduction:
Upgrading the NX-OS software on Cisco Nexus switches is an important task to keep your network safe, stable, and up to date. Whether you want new features or need to fix problems, upgrading must be done carefully to avoid any issues. In this post, I will guide you step-by-step on how to upgrade NX-OS using a USB drive.
Current NX-OS Version: nxos.9.3.3.bin
Target NX-OS Version: nxos.9.3.11.bin
Prerequisites:
Before starting the upgrade, ensure you meet the following requirements and prepare carefully to avoid issues:
- Backup Configuration: Back up your running configuration to both startup-config and an external USB drive.
- Pre-Upgrade Baseline Commands:
Run all necessary show commands to capture the current switch status, then save the outputs into text files on your PC.
Example commands:This baseline will help you compare the switch’s state before and after the upgrade to verify success and help troubleshooting if needed.show version show module show interface status show tech-support
- Console Access: Always perform upgrades through a console connection. Upgrades will cause the switch to reload and disconnect remote sessions.
- Check Bootflash Space:
Ensure there is enough free space in the bootflash to store the new NX-OS image. If space is low and multiple unused firmware images exist, delete the old or unused firmware files to free up space. - Upgrade Path Validation: Check the Cisco ISSU Support Matrix to confirm if a direct upgrade is possible or if intermediate upgrades are required.
- NX-OS Image: Download the NX-OS image from Cisco’s official software portal.
- USB Stick Requirements and Detection:
Use a FAT32-formatted USB stick with a maximum size of 8 GB, as larger drives may not be supported or detected by Nexus switches. If the USB stick(8 Gb) is not detected by the switch follow the below steps:- Insert the USB stick into the Nexus switch.
- Run
format usb1:
to format the USB directly from the switch. - Remove the USB, connect it to your PC, and copy the NX-OS image onto it.
- Reinsert the USB into the switch and verify that it’s detected before continuing.
- Licensing: Verify your device has valid licenses for all features you intend to use with the new NX-OS version.
- Maintenance Window: Inform users and plan for a maintenance window, as the switch will reload and cause network downtime.
Optional: Use Upgrade Command Generator
Before starting the upgrade, you can use this tool to generate the exact upgrade commands based on your firmware. This helps prevent syntax mistakes and ensures accuracy.
Click here to open the NX-OS Upgrade Command Generator.
NX-OS Upgrade Steps:
Step 1: Take Configuration Backup
copy running-config startup-config show running-config show version show module show interface status show tech-support
Step 2: Verify Current Version and Upgrade Path
show version
switch# show version | i version Nexus 9000v is a demo version of the Nexus Operating System BIOS: version NXOS: version 9.3(3) System version: switch#
Refer to the Cisco ISSU Support Matrix to validate direct upgrade compatibility. If an intermediate version is needed, upgrade to it first.
Step 3: Download NX-OS Image
- Download
nxos.9.3.11.bin
or your target image from Cisco's official site. - Copy the image file to a FAT32-formatted USB stick.
Step 4: Insert USB and Copy Image to Bootflash
Insert USB into the switch and verify detection:
dir usb1:
switch# dir usb1: 1978203648 May 09 15:10:30 2025 nxos.9.3.11.bin
Copy the image file to bootflash:
copy usb1:nxos.9.3.11.bin bootflash:
Cisco Nexus software files are very large (about 1 to 2 GB). If you upload them to the switch using TFTP, it can take 5 to 8 hours. If you don’t plan enough time for this, you might need to change your maintenance schedule.
The best solution: Use a FAT32-formatted USB stick with a maximum size of 8 GB to copy the software to the switch. This method is much faster and usually takes only 5 to 10 minutes.
Some Nexus switches also support 16 GB USB sticks.
switch# copy usb1:nxos.9.3.11.bin bootflash: Copy complete, now saving to disk (please wait)... Copy complete. switch#
Confirm the image file exists:
dir bootflash:
switch# dir bootflash: 4096 May 05 06:13:01 2025 .rpmstore/ 4096 May 05 06:13:40 2025 .swtam/ 425800 May 05 06:28:11 2025 20250505_061748_poap_2056_init.log 1666 May 05 06:35:52 2025 20250505_063524_poap_1886_init.log 0 May 05 06:13:27 2025 bootflash_sync_list 4096 May 05 06:13:48 2025 eem_snapshots/ 4096 May 05 06:13:39 2025 evt_log_snapshot/ 1978203648 May 09 17:11:42 2025 nxos.9.3.11.bin 1961096192 Feb 04 09:19:06 2022 nxos.9.3.9.bin 0 May 05 06:36:29 2025 platform-sdk.cmd 2162 May 05 06:28:07 2025 poap_retry_debugs.log 4096 May 05 06:15:10 2025 scripts/ 241526 May 05 06:35:37 2025 ts-pack-pnp.ts 4096 May 05 06:14:38 2025 virtual-instance/ Usage for bootflash:// 3959803904 bytes used 294014976 bytes free 4253818880 bytes total switch#
Step 5: Verify MD5 Checksum
Validate image integrity by verifying the MD5 hash:
show file bootflash:nxos.9.3.11.bin md5sum
switch# show file bootflash:nxos.9.3.11.bin md5sum 2e63c5a88b9b2771076b530ea5ed3578 switch#
Compare this value with the hash listed on Cisco’s download page.
Step 6: Check for Software Incompatibilities
show incompatibility-all nxos bootflash:nxos.9.3.11.bin
Purpose: Checks if there are any incompatible features, configurations, or hardware modules with the target NX-OS image before installing it.
What it looks for:
- Unsupported features in the new version
- Incompatible hardware (e.g., line cards or supervisor modules)
- Modules that will not function under the new software
Why it's important: Running this prevents you from starting an upgrade that might break essential services or make some hardware unusable.
switch# show incompatibility-all nxos bootflash:nxos.9.3.11.bin Checking incompatible configuration(s) for vdc 'switch': -------------------------------------------------------- No incompatible configurations Checking dynamic incompatibilities: ----------------------------------- No incompatible configurations switch#
Step 7: Perform Impact Analysis
Run a pre-installation check to understand what will happen during the upgrade:
show install all impact nxos bootflash:nxos.9.3.11.bin
Purpose: Performs a dry run of the upgrade. It tells you what will happen during the installation process without actually upgrading.
It shows:
- Whether a reload is required
- Which modules will be reloaded
- Service interruptions or ISSU (In-Service Software Upgrade) support
Why it's important: Helps you understand the upgrade impact on the system (especially in production) and whether a reload is necessary.
switch# show install all impact nxos bootflash:nxos.9.3.11.bin Installer will perform impact only check. Please wait. Verifying image bootflash:/nxos.9.3.11.bin for boot variable "nxos". [####################] 100% -- SUCCESS Verifying image type. [####################] 100% -- SUCCESS Preparing "bios" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Preparing "nxos" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Performing module support checks. [####################] 100% -- SUCCESS Notifying services about system upgrade. [####################] 100% -- SUCCESS Compatibility check is done: Module bootable Impact Install-type Reason ------ -------- -------------- ------------ ------ 1 yes disruptive reset default upgrade is not hitless 27 yes disruptive reset default upgrade is not hitless Images will be upgraded according to following table: Module Image Running-Version(pri:alt) New-Version Upg-Required ------ ---------- ---------------------------------------- -------------------- ------------ 1 lcn9k 9.3(9) 9.3(11) yes 1 bios no 27 nxos 9.3(9) 9.3(11) yes 27 bios no switch#
Step 8: Start the Installation
Execute the upgrade:
install all nxos bootflash:nxos.9.3.11.bin
switch# install all nxos bootflash:nxos.9.3.11.bin Installer will perform compatibility check first. Please wait. Installer is forced disruptive Verifying image bootflash:/nxos.9.3.11.bin for boot variable "nxos". [####################] 100% -- SUCCESS Verifying image type. [####################] 100% -- SUCCESS Preparing "bios" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Preparing "nxos" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Performing module support checks. [####################] 100% -- SUCCESS Notifying services about system upgrade. [####################] 100% -- SUCCESS Compatibility check is done: Module bootable Impact Install-type Reason ------ -------- -------------- ------------ ------ 1 yes disruptive reset default upgrade is not hitless 27 yes disruptive reset default upgrade is not hitless Images will be upgraded according to following table: Module Image Running-Version(pri:alt) New-Version Upg-Required ------ ---------- ---------------------------------------- -------------------- ------------ 1 lcn9k 9.3(9) 9.3(11) yes 1 bios no 27 nxos 9.3(9) 9.3(11) yes 27 bios no Switch will be reloaded for disruptive upgrade. Do you want to continue with the installation (y/n)? [n] y Install is in progress, please wait. Performing runtime checks. [####################] 100% -- SUCCESS Setting boot variables. [####################] 100% -- SUCCESS Performing configuration copy. [####################] 100% -- SUCCESS Module 1: Refreshing compact flash and upgrading bios/loader/bootrom. Warning: please do not remove or power off the module at this time. [####################] 100% -- SUCCESS Module 27: Refreshing compact flash and upgrading bios/loader/bootrom. Warning: please do not remove or power off the module at this time. [####################] 100% -- SUCCESS Finishing the upgrade, switch will reboot in 10 seconds. switch# [26571.485956] sysrq: SysRq : Resetting switch#
The switch will reload. Monitor the process through console access to prevent loss of visibility.
Step 9: Confirm the Upgrade
After the reload:
- Verify the new NX-OS version:
switch# sh version | i version Nexus 9000v is a demo version of the Nexus Operating System BIOS: version NXOS: version 9.3(11) System version:
- Ensure correct boot path:
switch# sh boot Current Boot Variables: sup-1 NXOS variable = bootflash:/nxos.9.3.11.bin Boot POAP Disabled Boot Variables on next reload: sup-1 NXOS variable = bootflash:/nxos.9.3.11.bin Boot POAP Disabled switch#
switch# dir bootflash: 4096 May 05 06:13:01 2025 .rpmstore/ 4096 May 05 06:13:40 2025 .swtam/ 425800 May 05 06:28:11 2025 20250505_061748_poap_2056_init.log 1666 May 05 06:35:52 2025 20250505_063524_poap_1886_init.log 0 May 05 06:13:27 2025 bootflash_sync_list 4096 May 05 06:13:48 2025 eem_snapshots/ 4096 May 05 06:13:39 2025 evt_log_snapshot/ 1961096192 Feb 04 09:19:06 2022 nxos.9.3.9.bin 0 May 05 06:36:29 2025 platform-sdk.cmd 2162 May 05 06:28:07 2025 poap_retry_debugs.log 4096 May 05 06:15:10 2025 scripts/ 241526 May 05 06:35:37 2025 ts-pack-pnp.ts 4096 May 05 06:14:38 2025 virtual-instance/ Usage for bootflash:// 1979662336 bytes used 2274156544 bytes free 4253818880 bytes total switch# copy usb1:nxos.9.3.11.bin bootflash: Copy complete, now saving to disk (please wait)... Copy complete. switch# switch# dir bootflash: 4096 May 05 06:13:01 2025 .rpmstore/ 4096 May 05 06:13:40 2025 .swtam/ 425800 May 05 06:28:11 2025 20250505_061748_poap_2056_init.log 1666 May 05 06:35:52 2025 20250505_063524_poap_1886_init.log 0 May 05 06:13:27 2025 bootflash_sync_list 4096 May 05 06:13:48 2025 eem_snapshots/ 4096 May 05 06:13:39 2025 evt_log_snapshot/ 1978203648 May 09 17:11:42 2025 nxos.9.3.11.bin 1961096192 Feb 04 09:19:06 2022 nxos.9.3.9.bin 0 May 05 06:36:29 2025 platform-sdk.cmd 2162 May 05 06:28:07 2025 poap_retry_debugs.log 4096 May 05 06:15:10 2025 scripts/ 241526 May 05 06:35:37 2025 ts-pack-pnp.ts 4096 May 05 06:14:38 2025 virtual-instance/ Usage for bootflash:// 3959803904 bytes used 294014976 bytes free 4253818880 bytes total switch# switch# dir bootflash: | i nxos.9.3.11.bin 1978203648 May 09 17:11:42 2025 nxos.9.3.11.bin switch# show file bootflash:nxos.9.3.11.bin md5sum 2e63c5a88b9b2771076b530ea5ed3578 switch# switch# switch# switch# show incompatibility-all nxos bootflash:nxos.9.3.11.bin Checking incompatible configuration(s) for vdc 'switch': -------------------------------------------------------- No incompatible configurations Checking dynamic incompatibilities: ----------------------------------- No incompatible configurations switch# switch# show install all impact nxos bootflash:nxos.9.3.11.bin Installer will perform impact only check. Please wait. Verifying image bootflash:/nxos.9.3.11.bin for boot variable "nxos". [####################] 100% -- SUCCESS Verifying image type. [####################] 100% -- SUCCESS Preparing "bios" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Preparing "nxos" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Performing module support checks. [####################] 100% -- SUCCESS Notifying services about system upgrade. [####################] 100% -- SUCCESS Compatibility check is done: Module bootable Impact Install-type Reason ------ -------- -------------- ------------ ------ 1 yes disruptive reset default upgrade is not hitless 27 yes disruptive reset default upgrade is not hitless Images will be upgraded according to following table: Module Image Running-Version(pri:alt) New-Version Upg-Required ------ ---------- ---------------------------------------- -------------------- ------------ 1 lcn9k 9.3(9) 9.3(11) yes 1 bios no 27 nxos 9.3(9) 9.3(11) yes 27 bios no switch# switch# install all nxos bootflash:nxos.9.3.11.bin Installer will perform compatibility check first. Please wait. Installer is forced disruptive Verifying image bootflash:/nxos.9.3.11.bin for boot variable "nxos". [####################] 100% -- SUCCESS Verifying image type. [####################] 100% -- SUCCESS Preparing "bios" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Preparing "nxos" version info using image bootflash:/nxos.9.3.11.bin. [####################] 100% -- SUCCESS Performing module support checks. [####################] 100% -- SUCCESS Notifying services about system upgrade. [####################] 100% -- SUCCESS Compatibility check is done: Module bootable Impact Install-type Reason ------ -------- -------------- ------------ ------ 1 yes disruptive reset default upgrade is not hitless 27 yes disruptive reset default upgrade is not hitless Images will be upgraded according to following table: Module Image Running-Version(pri:alt) New-Version Upg-Required ------ ---------- ---------------------------------------- -------------------- ------------ 1 lcn9k 9.3(9) 9.3(11) yes 1 bios no 27 nxos 9.3(9) 9.3(11) yes 27 bios no Switch will be reloaded for disruptive upgrade. Do you want to continue with the installation (y/n)? [n] y Install is in progress, please wait. Performing runtime checks. [####################] 100% -- SUCCESS Setting boot variables. [####################] 100% -- SUCCESS Performing configuration copy. [####################] 100% -- SUCCESS Module 1: Refreshing compact flash and upgrading bios/loader/bootrom. Warning: please do not remove or power off the module at this time. [####################] 100% -- SUCCESS Module 27: Refreshing compact flash and upgrading bios/loader/bootrom. Warning: please do not remove or power off the module at this time. [####################] 100% -- SUCCESS Finishing the upgrade, switch will reboot in 10 seconds. switch# [26571.485956] sysrq: SysRq : Resetting switch# switch# sh boot Current Boot Variables: sup-1 NXOS variable = bootflash:/nxos.9.3.11.bin Boot POAP Disabled Boot Variables on next reload: sup-1 NXOS variable = bootflash:/nxos.9.3.11.bin Boot POAP Disabled switch# sh version | i version Nexus 9000v is a demo version of the Nexus Operating System BIOS: version NXOS: version 9.3(11) System version:
Optional: Downgrade Procedure
If the upgraded NX-OS version (nxos.9.3.11.bin
) causes issues, you can revert back to the previously installed image nxos.9.3.3.bin
(already available in bootflash:
).
Step: Start Downgrade
install all nxos bootflash:nxos.9.3.3.bin
The switch will reload. It’s recommended to monitor this through a console session to track progress and detect any errors.
Post-Downgrade Verification
- Check NX-OS version:
show version
- Check installed modules and enabled features:
show module show feature
- Verify boot image configuration:
show boot
Conclusion:
Upgrading NX-OS on a Nexus switch might seem a bit complex, but if you follow the steps carefully, it becomes much easier and safer. Make sure to check compatibility, back up your configuration, and run all the necessary checks before starting. Taking the time to prepare properly helps you avoid problems and makes sure the upgrade goes smoothly.
If you have any questions or face issues during the upgrade, feel free to leave a comment and I’ll be happy to help.