Upgrading a Cisco 3750 IOS from a .bin image file
I just wasted hours trying to figure out how to upgrade a Cisco Catalyst 3750 using the .bin image instead of the .tar archive, since I don’t want any fancy web interface on any of my core network devices.
All of the current documentation explains only how to use the archive
command, which can’t be used in this case, and I’ve tried /imageonly
option to download-sw
which still needs the .tar archive. And the only bits of documentation I found which referenced the .bin method were actually misleading.
The solution is quite simple : Just copy
the image you want to the device, I did that using xmodem since I was too lazy to plug in a network cable (yeah, old school, especially given the archive
tool doesn’t even support xmodem!). Of course, you can use tftp or any other supported protocol :
copy xmodem: flash:c3750-advipservicesk9-mz.122-35.SE5.bin
Once the copy is over, the file is on the flash filesystem. Now comes the trivial yet tricky part : How to activate the image. A quick look at the boot vars show which image will be used. Here we see that it’s still the original one :
Switch#show boot BOOT path-list : flash:/c3750-ipbase-mz.122-35.SE5/c3750-ipbase-mz.122-35.SE5.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 :
And all of the documentation I found references the boot
command to select which image to boot, even a Cisco Wiki page for the 3750 (which I suspect was wrong about this). That command doesn’t seem to exist on the 3750. The proper command is this one, run in configure terminal
mode :
boot system flash:/c3750-advipservicesk9-mz.122-35.SE5.bin
It does seem completely obvious now, but I had it in front of my nose for hours without seeing it in any Cisco documentation. Running show boot
again will now list the new image :
Switch#show boot BOOT path-list : flash:/c3750-advipservicesk9-mz.122-35.SE5.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 :
Then just reload
the switch and you’re done. You can later remove the older image using delete /force /recursive
, but you can also just leave it, as the switch will automatically boot the first image it finds alphabetically if the ones from the boot path-list aren’t found.
Update 2011/09 : To update other members in a running stack once you have prepared the master, you must copy and enable the image on each of them as follows :
Switch#copy flash1:/c3750-advipservicesk9-mz.122-35.SE5.bin flash2: Destination filename [c3750-advipservicesk9-mz.122-35.SE5.bin]? Copy in progress...CCCCCCCCCCCCCCCC[...] Switch#configure terminal Switch(config)#boot system switch all flash:/c3750-advipservicesk9-mz.122-35.SE5.bin
You need to repeat the above for each available flash* otherwise the boot system command will fail.
Thanks for the great post.
But I’d like to update you about a new telnet client with easy scripting
It’s called Polyscript, google it :)
Just a note, you missed a trailing / while issuing the boot system command, it should be:
boot system flash:/c3750-advipservicesk9-mz-122-35.SE5.bin
If you miss out the slash then the switch will load the first image file in flash so it will still work, however you get the following error:
Loading “flash:c3750-ipservices-mz-122-25.SEE4.bin”…flash:c3750-ipservices-mz-122-25.SEE4.bin: no such file or directory
Error loading “flash:c3750-ipservices-mz-122-25.SEE4.bin”
Interrupt within 5 seconds to abort boot process.
Loading “flash:/c3750-ipservices-mz.122-25.SEE4.bin”.
Good catch, thanks a lot! It’s fixed now.
Nice post! Helped us avoid using the .tar file for upgradeing a ME-3400 system. Greatly appreciate your putting this up.
Worked like a charm, I will remember this for now on because I was banging my head on my desk trying to figure it out.
Nice. Thank you
Very helpful – thanks
huh, I had some problems on C3750-PS. it have only 16MB of Flash and it didnt accept new image.
I had to delete old image to make more room and than it worked. Just do not reboot it after you delete old image :=)