Problem solve Get help with specific problems with your technologies, process and projects.

Cisco IOS disaster recovery

This article explains how to recover from a bad IOS upgrade.

After a bad IOS upgrade I had a router that wouldn't reboot. When running an enterprise network this is NOT what you need. So, calm down, take a deep breath -- it can be fixed!

Tools needed:
You will need a console cable, tftp server, and db9 serial adapter for the console cable.

  1. Connect to the router and you will see:
      rommon 1:gt;
  2. Set some variables for the router:
    The required variables are:

    Optional Variables are:
    TFTP_VERBOSE: Print Setting. 0=Quiet, 1=progress(default), 2=verbose
    TFTP_RETRY_COUNT: Retry count for ARP and TFTP (default=7)
    TFTP_TIMEOUT: Overall timeout of operation in seconds (default=7200)
    TFTP_CHECKSUM: Perform checksum test on image, 0=no, 1=yes (default=1)

    Command line options:
    -r : do not write to flash, load to DRAM only and launch image.

  3. Download your TFTP server to your PC. I use the 3Com 3CServer. A search on for 3Com TFTP server will return it as the first result. The filename is Install the program and start the TFTP server by opening the application. Place your IOS image in the TFTP server. It is best to use the backup IOS image if you have one. To find out where to place the IOS file you can click "Setup" in the 3CServer. I use C:IOS but anything will work as long as you place the IOS image in the directory.
  4. Set the IP address, subnet mask, default gateway, tftp server, and tftp file. For example:
    rommon 1> IP_ADDRESS=
    rommon 2> IP_SUBNET_MASK=
    rommon 3> DEFAULT_GATEWAY=
    rommon 4> TFTP_SERVER=
    rommon 5> TFTP_FILE=c827v-y6-mz.121-1
  5. The last step is to put it all together. Here I list the commands and the output from console. This step has my settings just simply replace these with your own. The "set" command will show you the set variables. Make sure the required variables are set and that your settings are correct. You can enter them again if there is an error. The tftpdnld command is the command used after the variables are set. This will download the IOS image and prompt you to erase flash and continue. Select "Y" or yes to continue. Once the image is downloaded it will copy the file to flash and erase the current flash. After erasing the flash the router will go into a programming cycle for the IOS image.
    rommon 6 > set
    PS1=rommon ! >
    rommon 8 > tftpdnld
               TFTP_FILE: c1700-y-mz.121-3
    Invoke this command for disaster recovery only.
    WARNING: all existing data in all partitions on flash will be lost!
    Do you wish to continue? y/n:  [n]:  y
    Receiving c1700-y-mz.121-3 from !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    File reception completed.
    Copying file c1700-y-mz.121-3 to flash.
    Erasing flash at 0x607e0000
    program flash location 0x602e0000
  6. You will need to do a cold restart for the router once this has been completed. The router will restart with the previous configuration and all should be well.

Remember to backup your IOS image and you startup configuration as well. If this type of issue ever arises again you will have a backup image to restore.

This tip was submitted to by Brian Clark, Senior Network Engineer/CEO of Resiware, Inc.

This was last published in January 2004

Dig Deeper on Network management and monitoring