Upgrading your router's IOS is a critical operation. You need to be careful and cautious with every command you write. Take a look on these hints and tips before you start upgrading.
1. Before considering upgrading, evaluate the real need to a new IOS. If your current IOS covers all the jobs that you need the router to do, no upgrade is needed. Upgrade is usually necessary when you are adding new hardware, the router is not capable of handling what you want, or there is a problem with the old IOS. Sometime there appear to be some security glitches in the IOS so you might need to upgrade even if the router is performing smoothly.
2. To see the contents of the flash and check for the available space use the following command,
if your router has PCMCIA flash, use this command instead,
3. If the space is not enough for the old and new copies of IOS together, you will have to erase the old one. DO NOT do that manually using ‘delete flash:XXXXX.bin’. Once you start copying the new IOS, you will be asked to erase or keep the old contents of the flash. If you have enough space for
both copies, do not erase the flash.
4. If the flash of your router is Class B and have more than one bank, you can partition the flash. Partitioning the flash is useful in any copying operations because the router would be able to hold and maintain two different copies of IOS files. Partitioning protects you of risking erasing the old copy of IOS accidentally while upgrading.
Read the rest of the article in the Router Geek Book: Guide to Cisco Routers Configuration