This tutorial will attempt to guide you through a Cisco IOS upgrade.

First I want to be sure of which version I'm coming from and which version I will be going to.

I want to pick an IOS that has the same capability but with more features and less bugs!
(I know... I'm greedy...)

If you don't already understand the Cisco IOS naming convention look at the following site.

Cisco IOS Naming Convention
(Note: Had to link to google... AO doesn't like the link and keeps inserting breaks...)

To find out which version I'm currently using:

cisco#show version
Cisco IOS Software, C806 Software (C806-K9O3SY6-M), Version 12.3(7)T1, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2004 by Cisco Systems, Inc.
Compiled Thu 22-Apr-04 10:11 by eaarmas

ROM: System Bootstrap, Version 12.2(4r)XM3, RELEASE SOFTWARE (fc1)

cisco uptime is 1 day, 5 hours, 50 minutes
System returned to ROM by reload
System image file is "flash:c806-k9o3sy6-mz.123-7.T1.bin"
cisco#show flash:

System flash directory:
File Length Name/status
1 6563540 c806-k9o3sy6-mz.123-7.T1.bin
2 10729 startup-config
[6650468 bytes used, 1738140 available, 8388608 total]
8192K bytes of processor board System flash (Read/Write)
I look at Cisco's IOS upgrade planner for my router. (Cisco 806 Broadband Router)

I see that there is a 12.3.8T version available with some new features! Time to play!

There are many different ways to transfer the IOS to the router.
I prefer to use tftp. It is fast and very easy.

I use the version from SolarWinds. Its free and easy to use.
http://solarwinds.net/

Now, lets set the LAN ethernet port with an IP address. In my case, the interface is called "ethernet 0".

If you already have this setup, skip this part. Just connect via telnet or ssh.
Move to where we actually start checking the IOS version and the upgrade itself.


Connect to the router using to the console port via the cable that is included with the router.
Use hyperterminal to connect. Com 1 or 2, whichever you are using. Most newer PCs only have a Com 1.
Set the connection to 9600 bps, 8-N-1.

Press enter a couple of times to get connected.

For mine, I'll use 192.168.1.0 subnet with a subnet mask of 255.255.255.0

Cisco
192.168.1.1
255.255.255.0

PC
192.168.1.10
255.255.255.0

You should already know how to set your IP static on your workstation. I hope...

You will have to get into enable mode... (Privledge Exec)

cisco>enable
Password:
cisco#config t
Enter configuration commands, one per line. End with CNTL/Z.
cisco(config)#int eth 0
cisco(config-if)#ip address 192.168.1.1 255.255.255.0
cisco(config-if)#end
cisco#
Ping to make sure that you have connectivity between the two.

C:\Documents and Settings\user>ping 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data:

Reply from 192.168.1.1: bytes=32 time=2ms TTL=255
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255
Reply from 192.168.1.1: bytes=32 time=2ms TTL=255

Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 2ms, Average = 2ms

If you haven't set up your terminal access, you can continue to use the console.
I've configured my terminals to use ssh... so I'm going to connect via ssh.

To start though... just use the console since you already have the cable hooked up.

After you have connectivity with the router, fire up your tftp server and put the IOS image in the root of the tftp server.

Now would also be a good time to grab a backup copy of your startup-config just in case you have problems.

cisco#copy startup-config tftp
Address or name of remote host []? 192.168.1.10
Destination filename [cisco-confg]? startup-config
!!!!
10729 bytes copied in 0.508 secs (21120 bytes/sec)
Now it is time to copy over the new IOS image to flash.

cisco#copy tftp flash:
Address or name of remote host [192.168.1.10]?
Source filename [startup-config]? c806-k9o3sy6-mz.123-8.T.bin
Destination filename [c806-k9o3sy6-mz.123-8.T.bin]?
Accessing tftp://192.168.1.10/c806-k9o3sy6-mz.123-8.T.bin...
Erase flash: before copying? [confirm]
Erasing the flash filesystem will remove all files! Continue? [confirm]
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ...erasedee
Erase of flash: complete
Loading c806-k9o3sy6-mz.123-8.T.bin from 192.168.1.10 (via Ethernet0):

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 6849744 bytes]

Verifying checksum... OK (0x9E2D)
6849744 bytes copied in 154.404 secs (44362 bytes/sec)
We can see that it was sucessful. That is a GOOD thing.
I've had it fail on me before... and that is NOT fun at all.

Now we want to make sure that we have a good startup-config.
It was there and everything was fine. I did't post it because it isn't relevant.

Just for backup, I like to have a copy of that in flash too.
Just make sure NOT to erase your flash when you tftp it to flash!

cisco#copy tftp flash:
Address or name of remote host [192.168.1.10]?
Source filename [c806-k9o3sy6-mz.123-8.T.bin]? startup-config
Destination filename [cisco-confg]? startup-config
Accessing tftp://192.168.1.10/startup-config...
Erase flash: before copying? [confirm]n
Loading startup-config from 192.168.1.10 (via Ethernet0): !!!
[OK - 10729 bytes]

Verifying checksum... OK (0x7212)
10729 bytes copied in 0.460 secs (23324 bytes/sec)
I'm overparinoid and I like to be SURE that when I reload this router, it is going to come back up.

cisco#copy flash: startup-config
Source filename []? startup-config
Destination filename [startup-config]?
[OK]
10729 bytes copied in 2.552 secs (4204 bytes/sec)
Now check the filesystem to be sure you have everything in there you want/need.
(Really only the IOS, but like I said... I like the config for backup purposes.)

cisco#show flash

System flash directory:
File Length Name/status
1 6849744 c806-k9o3sy6-mz.123-8.T.bin
2 10729 startup-config
[6860604 bytes used, 1265860 available, 8126464 total]
8192K bytes of processor board System flash (Read/Write)
Now time for a reload. The worst part of it all... cross your fingers!!!

cisco#reload
Proceed with reload? [confirm]
Whew! Those couple of seconds seem like a lifetime...

Now that its back up, lets check the version again to show that we did indeed upgrade the IOS.

cisco>show version
Cisco IOS Software, C806 Software (C806-K9O3SY6-M), Version 12.3(8)T, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2004 by Cisco Systems, Inc.
Compiled Fri 14-May-04 00:33 by eaarmas

ROM: System Bootstrap, Version 12.2(4r)XM3, RELEASE SOFTWARE (fc1)

broadband uptime is 1 minute
System returned to ROM by reload
System image file is "flash:c806-k9o3sy6-mz.123-8.T.bin"
There we are. Thats all there is to a Cisco IOS upgrade.

Now.. wasn't that fun!? Not quite rocket science... but entertaining either way.