Cisco IOS // Firmware Upgrade

tested on Catalyst WS-C2950T-24 –> IOS Version 12.1(22)EA12

Seek for new firmware

what model?

show version | include Model number

Model number: WS-C2950T-24

MD5 hashes

8d3250ee253b81b7fe2762e281773fbc  c2950-i6k2l2q4-mz.121-22.EA14.bin
4b36c95cd7813562a2d108b2aeeaf63e  c2950-i6q4l2-mz.121-22.EA12.bin
c57104dce5aa257139d8da004aa62bad  c2950-i6q4l2-mz.121-22.EA14.bin
d41d8cd98f00b204e9800998ecf8427e ?!

Backup current firmware

you need a management ip for that

configure terminal
interface vlan1
no shutdown
ip address
ip route-cache

check your current firmware version

show version | include Version
show version | include flash:

IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA12, RELEASE SOFTWARE (fc1)
System image file is "flash:/c2950-i6q4l2-mz.121-22.EA12.bin"

IOS (tm) C2950 Software (C2950-I6K2L2Q4-M), Version 12.1(22)EA14, RELEASE SOFTWARE (fc1)
System image file is "flash:c2950-i6k2l2q4-mz.121-22.EA14.bin"

allow uploads on your TFTP server with -v -c

vi /etc/default/tftpd-hpa

TFTP_OPTIONS="-4 --secure -v -c"

mkdir -p /tftpboot/upload/
chmod 777 /tftpboot/upload/
chmod +t /tftpboot/upload/
systemctl start tftpd-hpa

make sure you do not have a system firewall blocking the interface your are playing on

#here -I not -A
iptables -I INPUT -i enp2s0 -j ACCEPT
iptables -I OUTPUT -o enp2s0 -j ACCEPT
iptables -I INPUT -i xenbr1 -j ACCEPT
iptables -I OUTPUT -o xenbr1 -j ACCEPT

validate from the host system (bypasses any system firewall) or ideally remotely already

cd ~/
ls -lF .vimrc
put .vimrc upload/.vimrc
ls -alF /tftpboot/upload/
rm -f /tftpboot/upload/.vimrc
ping -c1

and upload the current firmware from the switch

copy flash tftp

Source filename []? c2950-i6q4l2-mz.121-22.EA12.bin
Address or name of remote host []?
Destination filename [c2950-i6q4l2-mz.121-22.EA12.bin]? upload/c2950-i6q4l2-mz.121-22.EA12.bin

sort things out and keep them for reference

ls -alF /tftpboot/upload/
chown root:root /tftpboot/upload/c2950-i6q4l2-mz.121-22.EA12.bin
chmod 644 /tftpboot/upload/c2950-i6q4l2-mz.121-22.EA12.bin
md5sum /tftpboot/upload/c2950-i6q4l2-mz.121-22.EA12.bin > /tftpboot/upload/MD5
cat /tftpboot/upload/MD5


cd /tftpboot/

make some room

show flash:
delete flash://c2950-i6q4l2-mz.121-22.EA12.bin
show flash:

and proceed with the upgrade

copy tftp flash

Address or name of remote host []?
Source filename []? c2950-i6k2l2q4-mz.121-22.EA14.bin
Destination filename [c2950-i6k2l2q4-mz.121-22.EA14.bin]? 

verify /md5 c2950-i6k2l2q4-mz.121-22.EA14.bin
!verify /md5 c2950-i6q4l2-mz.121-22.EA14.bin

config terminal
boot system flash:c2950-i6k2l2q4-mz.121-22.EA14.bin
!boot system flash:c2950-i6q4l2-mz.121-22.EA14.bin
do show boot
do write erase
do reload
!System configuration has been modified. Save? [yes/no]: no

systemctl stop tftpd-hpa
systemctl disable tftpd-hpa


in case some config element got stuck e.g. vlan I had no other choice than to

more nvram:startup-config
more flash:config.text

copy nvram:startup-config tftp

cd /tftpboot/upload/
mv SW-config ../
cd ../
chown root:root SW-config
chmod 644 SW-config
cp SW-config SW-config.dist
vi SW-config

and push it back over to the switch

copy tftp://x.x.x.x/SW-confg nvram:startup-config


CISCO 2950 и 3550 прошивка


support & download

SI vs EI

Cisco Catalyst 2950 Series Switches with Cisco Standard Image and Enhanced Image

hard reset Resetting the Switch from the Getting Started Manual

Cisco 2950 V.12.1 IOS Upgrade to 15.0 or Higher

C2950 crypto image

Cisco 2950 V.12.1 IOS Upgrade to 15.0 or Higher

Upgrading Software Images on Catalyst 2950 and 2955 Series Switches Using the Command Line Interface

Old Cisco Switches - Firmware upgrade question.

Cisco Catalyst 2950 firmware update

Cisco 3900 Series, 2900 Series, and 1900 Series Software Configuration Guide

Cisco 2950 Software Download Removed?

broken link? ea14 release notes

Upgrading IOS

How To: Upgrade IOS On A Cisco 2950

How to Update/Upgrade Cisco IOS Software

crypto fw image

Upgrading from non Crypto to Crypto Image

Image with /without payload encryption


How to Determine the Type of Supervisor Module That Is Installed in Catalyst 6500/6000 Series Switches


Config.text and Startup-config Files in Cisco Switches

Edit Cisco startup-config

erasing a config and vlan.dat file in Catalyst 4507R Switch

Copyright © 2022 Pierre-Philipp Braun