A few days ago I wrote another post showing a way of how to implement a code upgrade for a Cisco Catalyst 3850 Switch from 3.x.x to 16.x.x.
Since the commands to be used are slightly different when upgrading from 16.x.x to 16.x.x (Denali to Denali and so on), I decided to write this down. I know I had some problems when I moved from 3.6.6 to 16.
The below commands can be used for the newer models of switches the Catalyst 9k Series as well.

- Make sure there’s enough memory on the flash. Otherwise you may end up with an error and you’ll have to start again.
I would suggest to delete the files that are not in use:request platform software package clean
Download your required version of code (depending on model, licensing) from Cisco. - Download the IOS-XE bin image to memory flash. If you’re using a TFTP Server, don’t forget to enable
ip tftp blocksize 8192.
You may also download from a USB memory flash:copy tftp: flash
:copy usbflash0: flash:
cat3k_caa-universalk9.16.03.07.SPA.bin
In our case I’m using Denali 16.3.7 which seems pretty stable and it’s my “go to” version of code when it comes to a Catalyst 3850. - Verify integrity of the bin file:
verify /md5 flash: cat3k_caa-universalk9.16.03.07.SPA.bin
The md5 hash should be the same as on the Cisco website:

- Further, to initiate the code upgrade process use:
request platform software package install switch all file flash:cat3k_caa-universalk9.16.03.06.SPA.bin on-reboot new
It doesn’t matter if you’re upgrading a single switch or stack of a few 3850s, the “all” argument will work in both scenarios.
The switch will start expanding the packages and when done, you will be prompted that you have to reload so that the new code to go in effect. - Reload the switch or the stack. The process takes some time and for a stack of 4 switches I would allocate at least 60 minutes.
reload
- Once your switch or stack of switches is back online you may want to erase the files that are not in use:
request platform software package clean
This is a fairly easy process but it takes some time. If you’re doing this remotely don’t panic if you spent 20 minutes waiting for the switch to come up. On a side note, I’m always using a console to check the output.
Comments