{"id":256,"date":"2015-09-08T08:14:38","date_gmt":"2015-09-08T08:14:38","guid":{"rendered":"http:\/\/tuxlabs.com\/?p=256"},"modified":"2015-11-03T18:08:51","modified_gmt":"2015-11-03T18:08:51","slug":"how-to-upgrade-ios-on-a-cisco-2950","status":"publish","type":"post","link":"https:\/\/tuxlabs.com\/?p=256","title":{"rendered":"How To: Upgrade IOS On A Cisco 2950"},"content":{"rendered":"<p>My cisco 2950 came with an older IOS version 12.1, but more importantly, one that does not support encryption, and thus I cannot use SSH. I need to upgrade the code aka IOS Image on this switch to enable SSH. So here we go, I&#8217;ll be referencing the following guide :\u00a0<a href=\"http:\/\/kb.promise.com\/KnowledgebaseArticle10139.aspx\">http:\/\/kb.promise.com\/KnowledgebaseArticle10139.aspx<\/a>\u00a0throughout this how to article. Note: You should be in enable\/privilege 15 mode for the duration of this article.<\/p>\n<h3>Existing version info<\/h3>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#show version\r\nCisco Internetwork Operating System Software \r\nIOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(19)EA1c, RELEASE SOFTWARE (fc2)\r\nCopyright (c) 1986-2004 by cisco Systems, Inc.\r\nCompiled Mon 02-Feb-04 23:29 by yenanh\r\nImage text-base: 0x80010000, data-base: 0x8058A000\r\n\r\nROM: Bootstrap program is C2950 boot loader\r\n\r\nswitch-2950-1.tuxlabs.com uptime is 1 hour, 38 minutes\r\nSystem returned to ROM by power-on\r\nSystem image file is \"flash:\/c2950-i6q4l2-mz.121-19.EA1c.bin\"\r\n\r\ncisco WS-C2950T-24 (RC32300) processor (revision P0) with 20808K bytes of memory.\r\nProcessor board ID FOC0812T17M\r\nLast reset from system-reset\r\nRunning Enhanced Image\r\n24 FastEthernet\/IEEE 802.3 interface(s)\r\n2 Gigabit Ethernet\/IEEE 802.3 interface(s)\r\n\r\n32K bytes of flash-simulated non-volatile configuration memory.\r\nBase ethernet MAC Address: 00:0F:8F:DB:4E:00\r\nMotherboard assembly number: 73-6114-10\r\nPower supply part number: 34-0965-01\r\nMotherboard serial number: FOC0812243L\r\nPower supply serial number: DAB080842YJ\r\nModel revision number: P0\r\nMotherboard revision number: A0\r\nModel number: WS-C2950T-24\r\nSystem serial number: FOC0812T17M\r\nConfiguration register is 0xF\r\n\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<h3>Cisco Image &amp; TFTP Server<\/h3>\n<p>I had to register for the Cisco site to download the latest image, with support for encryption. This is the image I will be installing :\u00a0c2950-i6k2l2q4-mz.121-22.EA14.bin<\/p>\n<p>After the image is downloaded, we need to configure the TFTP server. Mac OS X comes with tftpd automatically. You are going to want to place the imagine in \/private\/tftpboot. \u00a0After you have copied the image there, make absolutely sure you update the permissions. Otherwise, your tftp request will timeout from your device.<\/p>\n<pre class=\"lang:default decode:true \">\u279c  ~  sudo chmod 766 \/private\/tftpboot\/*\r\n\u279c  ~  ls -l \/private\/tftpboot       \r\ntotal 7272\r\n-rwxrw-rw-@ 1 root  wheel  3722814 Sep  7 23:21 c2950-i6k2l2q4-mz.121-22.EA14.bin\r\n\u279c  ~<\/pre>\n<p>After you update the permissions you are ready to start TFTP.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">\u279c  ~  netstat -atp UDP | grep tftp                                     \r\n\u279c  ~  sudo launchctl load -F \/System\/Library\/LaunchDaemons\/tftp.plist \r\ndyld: DYLD_ environment variables being ignored because main executable (\/usr\/bin\/sudo) is setuid or setgid\r\n\u279c  ~  netstat -atp UDP | grep tftp                                   \r\nudp4       0      0  *.tftp                 *.*                               \r\nudp6       0      0  *.tftp                 *.*                               \r\n\u279c  ~<\/pre>\n<p>Great TFTP is running. Now we are ready to request it from the Cisco switch, aka the client in this scenario.<\/p>\n<h3>Copy TFTP Flash<\/h3>\n<pre class=\"lang:default decode:true\">switch-2950-1.tuxlabs.com#copy tftp flash\r\nAddress or name of remote host []? 192.168.1.123\r\nSource filename []? c2950-i6k2l2q4-mz.121-22.EA14.bin\r\nDestination filename [c2950-i6k2l2q4-mz.121-22.EA14.bin]? \r\nAccessing tftp:\/\/192.168.1.123\/c2950-i6k2l2q4-mz.121-22.EA14.bin...\r\nLoading c2950-i6k2l2q4-mz.121-22.EA14.bin from 192.168.1.123 (via Vlan1): !!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!OO!OO!OOOOO!OOOO!\r\n%Error copying flash:\/c2950-i6k2l2q4-mz.121-22.EA14.bin (No space left on device)\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<p>Uh oh shaggy ! I am out of space. After doing a &#8216;dir flash&#8217; I saw that really I had no choice, but to delete my existing flash image to make room for the new one. Feels dangerous and scary, but luckily this is my lab environment \ud83d\ude42<\/p>\n<h3>Deleting From Flash<\/h3>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#delete flash:\/\/c2950-i6q4l2-mz.121-19.EA1c.bin\r\nDelete filename [c2950-i6q4l2-mz.121-19.EA1c.bin]? \r\nDelete flash:\/c2950-i6q4l2-mz.121-19.EA1c.bin? [confirm]\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<h3>Copy TFTP Flash Again (This time with our fingers crossed)<\/h3>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#copy tftp flash                               \r\nAddress or name of remote host [192.168.1.123]? \r\nSource filename [c2950-i6k2l2q4-mz.121-22.EA14.bin]? \r\nDestination filename [c2950-i6k2l2q4-mz.121-22.EA14.bin]? \r\nAccessing tftp:\/\/192.168.1.123\/c2950-i6k2l2q4-mz.121-22.EA14.bin...\r\nLoading c2950-i6k2l2q4-mz.121-22.EA14.bin from 192.168.1.123 (via Vlan1): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n[OK - 3722814 bytes]\r\n\r\n3722814 bytes copied in 143.080 secs (26019 bytes\/sec)\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<p>Whew&#8230;close one \ud83d\ude42 To be on the safe side we can verify our image like this.<\/p>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#verify \/md5 c2950-i6k2l2q4-mz.121-22.EA14.bin\r\n.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Done!\r\nverify \/md5 (flash:c2950-i6k2l2q4-mz.121-22.EA14.bin) = 8d3250ee253b81b7fe2762e281773fbc\r\n\r\n\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<h3>Next we make our new flash image bootable.<\/h3>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#config t\r\nswitch-2950-1.tuxlabs(config)#boot system flash:c2950-i6k2l2q4-mz.121-22.EA14.bin\r\nswitch-2950-1.tuxlabs(config)#exit\r\nswitch-2950-1.tuxlabs.com#show boot\r\nBOOT path-list:       flash:c2950-i6k2l2q4-mz.121-22.EA14.bin\r\nConfig file:          flash:\/config.text\r\nPrivate Config file:  flash:\/private-config.text\r\nEnable Break:         no\r\nManual Boot:          no\r\nHELPER path-list:     \r\nNVRAM\/Config file\r\n      buffer size:    32768\r\nswitch-2950-1.tuxlabs.com#wr mem\r\nBuilding configuration...\r\n[OK]\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<p>Great, that looks good, now we are ready to reload our switch !<\/p>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#reload\r\nProceed with reload? [confirm]\r\nConnection closed by foreign host.\r\n\u279c  ~<\/pre>\n<p>Once the switch comes back to life, validate the version info.<\/p>\n<pre class=\"lang:default decode:true \">switch-2950-1.tuxlabs.com#show version\r\nCisco Internetwork Operating System Software \r\nIOS (tm) C2950 Software (C2950-I6K2L2Q4-M), Version 12.1(22)EA14, RELEASE SOFTWARE (fc1)\r\nTechnical Support: http:\/\/www.cisco.com\/techsupport\r\nCopyright (c) 1986-2010 by cisco Systems, Inc.\r\nCompiled Tue 26-Oct-10 10:35 by nburra\r\nImage text-base: 0x80010000, data-base: 0x80680000\r\n\r\nROM: Bootstrap program is C2950 boot loader\r\n\r\nswitch-2950-1.tuxlabs.com uptime is 2 minutes\r\nSystem returned to ROM by power-on\r\nSystem image file is \"flash:c2950-i6k2l2q4-mz.121-22.EA14.bin\"\r\n\r\n\r\nThis product contains cryptographic features and is subject to United\r\nStates and local country laws governing import, export, transfer and\r\nuse. Delivery of Cisco cryptographic products does not imply\r\nthird-party authority to import, export, distribute or use encryption.\r\nImporters, exporters, distributors and users are responsible for\r\ncompliance with U.S. and local country laws. By using this product you\r\nagree to comply with applicable laws and regulations. If you are unable\r\nto comply with U.S. and local laws, return this product immediately.\r\n\r\nA summary of U.S. laws governing Cisco cryptographic products may be found at:\r\nhttp:\/\/www.cisco.com\/wwl\/export\/crypto\/tool\/stqrg.html\r\n\r\nIf you require further assistance please contact us by sending email to\r\nexport@cisco.com.\r\n\r\ncisco WS-C2950T-24 (RC32300) processor (revision P0) with 19911K bytes of memory.\r\nProcessor board ID FOC0812T17M\r\nLast reset from system-reset\r\nRunning Enhanced Image\r\n24 FastEthernet\/IEEE 802.3 interface(s)\r\n2 Gigabit Ethernet\/IEEE 802.3 interface(s)\r\n\r\n32K bytes of flash-simulated non-volatile configuration memory.\r\nBase ethernet MAC Address: 00:0F:8F:DB:4E:00\r\nMotherboard assembly number: 73-6114-10\r\nPower supply part number: 34-0965-01\r\nMotherboard serial number: FOC0812243L\r\nPower supply serial number: DAB080842YJ\r\nModel revision number: P0\r\nMotherboard revision number: A0\r\nModel number: WS-C2950T-24\r\nSystem serial number: FOC0812T17M\r\nConfiguration register is 0xF\r\n\r\nswitch-2950-1.tuxlabs.com#<\/pre>\n<p>We went from 2004, to 2010&#8230;but 2010 is the latest image available for my ancient switch ! Awesome. Now we are ready to enable SSH in the next article !<\/p>\n<p>Thanks for reading,<br \/>\nJason Riedel<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<a href=\"https:\/\/tuxlabs.com\/?p=256\" rel=\"bookmark\" title=\"Permalink to How To: Upgrade IOS On A Cisco 2950\"><p>My cisco 2950 came with an older IOS version 12.1, but more importantly, one that does not support encryption, and thus I cannot use SSH. I need to upgrade the code aka IOS Image on this switch to enable SSH. So here we go, I&#8217;ll be referencing the following guide :\u00a0http:\/\/kb.promise.com\/KnowledgebaseArticle10139.aspx\u00a0throughout this how to article. [&hellip;]<\/p>\n<\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[81,1,82],"tags":[85,84,83,86,35,88,87],"class_list":{"0":"post-256","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-cisco","7":"category-howtos","8":"category-networking","9":"tag-85","10":"tag-catalyst","11":"tag-cisco","12":"tag-ios","13":"tag-ssh","14":"tag-tftp","15":"tag-upgrade","16":"h-entry","17":"hentry"},"_links":{"self":[{"href":"https:\/\/tuxlabs.com\/index.php?rest_route=\/wp\/v2\/posts\/256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuxlabs.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tuxlabs.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tuxlabs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tuxlabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=256"}],"version-history":[{"count":7,"href":"https:\/\/tuxlabs.com\/index.php?rest_route=\/wp\/v2\/posts\/256\/revisions"}],"predecessor-version":[{"id":302,"href":"https:\/\/tuxlabs.com\/index.php?rest_route=\/wp\/v2\/posts\/256\/revisions\/302"}],"wp:attachment":[{"href":"https:\/\/tuxlabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tuxlabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tuxlabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}