Upgrading the firmware of a Cisco switch can be done in several ways. My preferred way is to copy the firmware to local flash from a TFTP server. In the following I will outline the process.
Lets first get a running TFTP server. There are plenty of options, I usually go with SolarWinds TFTP- Server, as its free, and works on Windows. Start the TFTP Server, and put the firmware file in your TFTP root directory.
Under File –> Configure you can set the TFTP Server Root Directory. We will be using firwmare: c3750e-universalk9-mz.152-4.E6.bin
Next, let’s serial into the switch:
Switch#dir flash:/ Directory of flash:/ 458 -rwx 1048 Mar 1 1993 00:01:33 +00:00 multiple-fs 3 drwx 512 Mar 1 1993 19:48:23 +00:00 c3750e-universalk9-mz.122-58.SE1 57671680 bytes total (36307968 bytes free)
Connect a port of the switch to be upgraded into your existing network, from where the TFTP Server is reachable. Your network should provide DHCP in our scenario. We will enable the switch to retrieve an IP address from DHCP:
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#int vlan 1 Switch(config-if)#ip address dhcp Switch(config-if)#no shut Switch(config-if)#end Switch#wr Building configuration... *Mar 1 00:09:34.829: %SYS-5-CONFIG_I: Configured from console by console *Mar 1 00:09:35.366: %LINK-3-UPDOWN: Interface Vlan1, changed state to up[OK] Switch#sh ip int br *Mar 1 00:10:42.684: %DHCP-6-ADDRESS_ASSIGN: Interface Vlan1 assigned DHCP address 10.253.6.64, mask 255.255.254.0, hostname Interface IP-Address OK? Method Status Protocol Vlan1 10.253.6.64 YES DHCP up up
Let’s quickly run through, what we have done here. We have enabled DHCP on the interface of VLAN 1, and then confirmed we have indeed been assigned an IP address.
Next, let’s finally copy the file from our TFTP Server to the switch and tell the switch to boot the new firmware:
Switch#copy tftp://10.253.5.21:/c3750e-universalk9-mz.152-4.E6.bin flash:/c3750e-universalk9-mz.152-4.E6.bin Destination filename [c3750e-universalk9-mz.152-4.E6.bin]? Accessing tftp://10.253.5.21/c3750e-universalk9-mz.152-4.E6.bin... Loading c3750e-universalk9-mz.152-4.E6.bin from 10.253.5.21 (via Vlan1): !!!... [OK - 25906176 bytes] 25906176 bytes copied in 183.131 secs (141463 bytes/sec) Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#boot system switch all flash:/c3750e-universalk9-mz.152-4.E6.bin Switch(config)#end Switch#wr Building configuration...
Take note, that in some cases, the old firmware file may need to be deleted first to make room for the new firmware:
Switch#dir flash:/ Directory of flash:/ 458 -rwx 25906176 Mar 1 1993 00:13:46 +00:00 c3750e-universalk9-mz.152-4.E6.bin 2 -rwx 5 Mar 1 1993 00:17:32 +00:00 private-config.text 459 -rwx 2072 Mar 1 1993 00:17:32 +00:00 multiple-fs 461 -rwx 2476 Mar 1 1993 00:17:32 +00:00 config.text 3 drwx 512 Mar 1 1993 19:48:23 +00:00 c3750e-universalk9-mz.122-58.SE1 57671680 bytes total (10187264 bytes free) Switch#delete /f /r flash:/c3750e-universalk9-mz.122-58.SE1
The last step is to reboot the switch and confirm the new firmware after reboot:
Switch#reload Proceed with reload? [confirm] [looooong time to reboot, you should see a long list of sssssspssssss resembling the microcode programming on the serial console] Switch#sh version Cisco IOS Software, C3750E Software (C3750E-UNIVERSALK9-M), Version 15.2(4)E6, RELEASE SOFTWARE (fc4)