I recently upgraded my Cisco 877’s with additional Flash memory modules to max them out, and let them take the newer (larger) IOS images.

And I have to say, I hit an unexpected issue when I was doing the upgrade.  It seems the config files (as well as however the flash listing is stored) persists – even if you change out the Flash module. This resulted in the router attempting to boot an image that was no longer present (although when I checked later, it appeared in a dir flash: listing, with a zero file size), and ended up at rommon. A little bit of work later and I copied an IOS image over from my tftp server to the router, and restarted it.

The rommon commands for loading and IOS image by the way are (all the following are essential):

IP_ADDRESS=<ip address for router>
IP_SUBNET_MASK=<subnet mask of your network>
DEFAULT_GATEWAY=<gateway for network>
TFTP_SERVER=<ip of your tftp server>
TFTP_FILE=<filename of IOS Image>

Then enter tftpdnld and hit enter - this actually starts the download.

One router recovered, one didn’t – it just complained about being out of memory, and crashed.

I dropped back into rommon, reset the configuration register to 0x2142 so that it would try loading with no configuration – incredibly it worked. After wiping the saved config (copy running-config startup-config, while booted with no config, and resetting the configuration register) the router worked happily – all I had to do was plug all the settings back in.

It took me a while (not helped by forgetting to save the first time around!), but I eventually got there. I really don’t understand why the router was complaining to start with – both are running near identical configurations, on the same hardware revision – and that even after reconfiguring everything back to how it was, it is now still behaving.

Most odd – one thing to bear in mind, it seems, when upgrading Cisco’s is that you might need to prune your config if it fails to boot your new IOS … that and, always keep your console cable handy!!!