Copy IOS image To Cisco Router From ROMmon Mode

If you are having problems with uploading the IOS image in ROMmon mode, here is the complete guide on how to do so step by step.

Copy IOS image To Cisco Router From ROMmon Mode

One of the more difficult tasks in configuring Cisco routers is when you have to copy the IOS image to Cisco Router from the ROMmon Mode. ROMmon mode is a very basic mode where most of the IOS commands will not work.

If you want to see which commands work in ROMmon mode, you can see them using the ? or help commands while inside ROMmon mode.

Most of the times ROMmon mode is activated if the configuration register of the Cisco router is not set. You only need to set that register value in order to boot properly through the Flash image file. Confreg is the command for setting the correct register value.

Cisco IOS

But if you want to load a new IOS image in the router Flash, you will need the tftpdnld command for this purpose. Tftpdnld command runs in ROMmon mode and has some requirements before it can be executed. Before going to the requirements, let’s go through the Router connections.

  1. You will need have a valid Cisco IOS image which is to be loaded in the Flash of the router. The image should be placed inside the TFTP working directory.
  2. A TFTP server needs to be running on the network from where the router can get the IOS image.
  3. The PC on which you are operating and the router should be connected to the same network.
  4. You will need to connect to the router using the console port.
  5. The first FastEthernet interface of router is used to copy the image from the TFTP server by default.

At ROMmon mode, issue the following commands with variables according to your own environment.

rommon 1> IP_ADDRESS=
rommon 2> IP_SUBNET_MASK=
rommon 4> TFTP_SERVER=
rommon 5> TFTP_FILE=c2800nm-ipbase-mz.124-3h.bin

There are two things that should be noted. These commands are case sensitive. That means IP_ADDRESS should not be typed as ip_address. It didn’t work for me. And the second thing is that the subnet mask that is accepted is I work with the general subnet mask of which didn’t work and the router gave Illegal IP Address error upon execution of tftpdnld command.

After setting the above variable, you will need to run the tftpdnld -r command. The -r switch will automatically load the IOS image that will be uploaded through tftpdnld command. Before running the tftpdnld command, you may use the set command to see that all the variables are set correctly.

After the copying of the new IOS image is complete, the router will automatically load it into the memory. You may be prompted for the initial configuration if there is no startup-config available to the router.

You may reboot the router by using the reload command and confirm to see if the router boots to the newly installed IOS image by default. Otherwise you will need to configure the configuration register by using the confreg command.

In my case, although the router booted successfully using the new IOS image, but the image was not present in the router flash memory. To see your flash contents, issue the following command:

router>show flash

In ROMmon mode this command will not work. You will need to use the following command instead:

rommon 1>dir flash:

You can use the copy command to copy the new IOS image to the flash once the IOS loaded from ROMmon is running.

router>copy tftp flash

I hope this will be helpful for network administrators working with Cisco equipment. I had hard time finding out all this information that why decided to document it here so that everyone else can find and implement it easily. Your comments will be highly appreciated.

Also see:

Usman Khurshid is a seasoned IT Pro with over 15 years of experience in the IT industry. He has experience in everything from IT support, helpdesk, sysadmin, network admin, and cloud computing. He is also certified in Microsoft Technologies (MCTS and MCSA) and also Cisco Certified Professional in Routing and Switching.


  1. I tried this on a Cisco 4331 router and was able to enter the IP/SM/GW etc. The command “tftpdnld -r” does not exist from rommon mode. Any suggestions?

  2. Very good trick! Thanks!

  3. Alex Frunza says:

    Very helpful.
    Thank you very much!

  4. Shaun Kellogg says:

    Thanks this helped me out!

  5. Hi ,
    Cannot run this on IOS EX ( ASR 1002 X ) , dont know why.
    Anyone ? ?

  6. Vladimir Tancik says:

    Thanks, I found this very useful!

  7. prasanna venkatesan says:

    thanks.. Amazing information… You made my day.. I had OS issue with my 1941 router

  8. Mahesh Kannan says:

    Thanks for sharing such a wonderful information. it is really very helpful. I had also stucked in the same situation but with BDCOM OLT P3310.

Leave a Reply

Your email address will not be published. Required fields are marked *