Upgrading firmware on Cisco Small Business SG300 Series Managed Switch
Because I’ll never remember how I did this
Prerequisite
As usual nothing is straight-forward ;)
TFTP Server
Luckily on MacOSX it’s built in :)
To enable it you will need to use the following command:
$ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Note: the -F is because it is disabled by default.
Firewall
Since you’re running a server make sure your firewall isn’t blocking you!
Download
Next, download the appropriate files from Cisco’s download site
Note: I’ve found it all the port and power variations to be the same firmware. For example, sg300–10 is the same as sg300–28p. YMMV
Warning: Firmware Format Changes!
If your firmware version is < 1.3.7.18 (sh ver) then you need to upgrade to that first as there was a change in both the firmware and boot formats!
If you don’t you will see the following error in the web console:
entry already exists in the Copy History table...
And the following in the CLI or logs
%TFTP-A-TftpTxERROR: An error message was sent: 0 <Closed by application>
You have been warned.
Installation
Place the downloaded *.ros and *.rfb files in your TFTP download directory.
MacOSX (default)
/private/tftpboot/
Then shell onto the switch and copy the firmware over:
Note: While I love the new web interface on these switches I still do this CLI.
switch#copy tftp://A.B.C.D/sx300_fw-1413.ros image
Depending on the time of day go get a cup of coffee or pint of beer.
Should you need to upgrade the boot image use the following command:
switch#copy tftp://A.B.C.D/path_to_file/sx300_boot-13506.rfb boot
Finally, you will need to activate the new image and reboot the switch:
switch#sh bootv
Image Filename Version Date Status
----- --------- --------- --------------------- -----------
1 image-1 1.3.7.18 12-Jan-2014 18:02:59 Active*
2 image-2 1.4.1.3 29-Mar-2015 16:24:16 Not active
switch#boot system image-2
switch#reload
Cleanup
You’re running a server and your firewall is probably disabled…FIXIT!
TFTP Server
To shutdown on MacOSX use the following:
$ sudo launchctl unload /System/Library/LaunchDaemons/tftp.plist
Firewall
Close any ports opened in Prerequisites; above.
References
This blog post is just a combination of the following: