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
https://software.cisco.com/download/navigator.html?mdfid=283009439&flowid=18905
Note: I’ve found all the port (e.g. sg300–10 vs sg300–28p) and power (POE) 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
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
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: