IOS Upgrade on a Cisco 3560

When I finished with the Cisco Networking Academy, I learned that upgrading an IOS was as simple as copying the new IOS .bin file to the flash drive of the device you are upgrading. At my first job working with actual Cisco devices, I was tasked with upgrading a 3560. The problem was that the IOS downloaded from Cisco was a .tar–not .bin like I had seen before. This is when I learned that there are two main methods to upgrading your IOS devices.

When you download an IOS from Cisco, some version include extra files in the package such as an SDM interface. Instead of packaging everything individually, Cisco creates a tar file with all the files. Alternatively, if you don’t need all the extras, Cisco can provide a single .bin as well or you can extract the .bin from inside the .tar.

If you decide to use the tar file, upgrading the IOS is simple. From priviledged mode, simply enter the follow commands:

Switch# archive download-sw /overwrite /reload tftp://

Let’s break down this command. First, we are using the archive command. Since we are using a .tar file (an archive) we need to decompress the file to the local flash memory. Second command is download-sw. This is just to indicate that we are going to download software instead of upload it (there is also a upload-sw command). Next, we tell IOS to overwrite the existing image. You may or may not have enough room in flash to hold multiple images. Finally, we specify the location of the new image. In this case, I have it on a TFTP server on Cisco makes it easy and allows you to download the file, uncompress it, and reload the switch with one command.

Once this command is run, IOS downloads the file, deletes your existing IOS, extracts the files in the .tar on to flash and reloads the system. When the system finishes starting up, your IOS upgrade is complete! You can verify this with a show version.

Last night, I had to upgrade the IOS on the 3560 but I only have a .bin file. In this case, it was similar to upgrading an IOS on a router. All you have to do is simply copy the .bin file to the flash directory and set the boot variable.

Switch# copy tftp:// flash:c3560-ipservicesk9-mz.122-55.SE3.bin
Switch# boot system flash:c3560-ipservicesk9-mz.122-52.SE.bin
Switch# copy running-config startup-config
Building configuration...
Switch# show boot
BOOT path-list      : flash:c3560-ipservicesk9-mz.122-52.SE.bin
Config file         : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break        : no
Manual Boot         : no
HELPER path-list    :
Auto upgrade        : yes
Auto upgrade path   :
Timeout for Config
          Download:    0 seconds
Config Download
       via DHCP:       disabled (next boot: disabled)
Switch# reload

We first copied the IOS to the local flash and then we configured IOS to use the new IOS. We saved our changes and verified them with a show boot command. After a reload, the switch will use the new IOS.

TIP: Always backup your current IOS. Using the copy command, copy it from the flash to your tftp in case you need to rollback. In addition, once the system has started, you are able to delete the .bin file from the flash without problems. This is useful when you have an existing image that is taking up most of the room on your flash and you are copying a new one that requires more space than you have available.

11 responses to “IOS Upgrade on a Cisco 3560

  1. Rowell November 16, 2011 at 11:57 am

    Great stuff! You taught me something new with the .tar file. I haven’t seen that one yet.

  2. Zsolt Kardos May 23, 2012 at 4:05 am

    Great guide! First i tried the web upgrade on our 3560’s, but it hanged at 97%. Luckily the switches were still operational, so i could issue the archive download-sw command from the console and this time the upgrade went through without a problem.

  3. Romeo October 14, 2012 at 10:59 pm

    You saved my day, thank you for sharing this all in one line command.

  4. T. Nay October 11, 2013 at 3:08 pm

    Great article.

    However, I found one mistake in the IOS upgrade procedure for a .bin file. When issuing the “boot system” command, it has to be done in global configuration mode.

    Switch# configure terminal
    Switch(config)# boot system flash:c3560-ipservicesk9-mz.122-52.SE.bin

    Everything else looks good. Thanks for writing this article.

  5. anthonyvictorbooth December 27, 2013 at 3:01 pm

    Reblogged this on anthonyvictorbooth and commented:
    I just upgraded the IOS on my Catalyst 3560 switch/ router – I finally assembled my ‘proposed’ command line together and then copied and pasted it over to the switch (via telnet) – the switch then loaded the new IOS while ERASING the OLD one (sweat sweat) – finally typing ‘reload’, counting to ten and hitting ‘ENTER’ resulted in a VERY long few minutes that DEMANDED a STRONG DRINK!!! …Several minutes later, I am sure that they could hear me at GOOGLE HQ in California – screaming ‘YESSSSSSSSSSSSSssssssssss!’ as my pride and joy cam back to life (alas, as yet, no CMS) …but with a LOAD more features at the Command Line which look VERY INTERESTING INDEED!!!

  6. Pingback: IOS Upgrade on a Cisco 3560 | anthonyvictorbooth

  7. Jeff January 19, 2014 at 11:40 am

    thanks for the how-to. One minor note that i found when upgrading the 3560: To change the boot file, you need to enter configuration mode first – eg:

    Switch# configure terminal
    Switch(config)# boot system flash:c3560-ipservicesk9-mz.122-52.SE.bin
    Switch(config)# end

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: