Exploring Cisco Router Boot Processes
BackBy Avner Izhar
Q: My old Cisco 2600 router has stopped responding after our last power outage. When I logged in with the console cable, it displayed a ROMmon>prompt. How can I recover from that?
A: This behavior can result from several issues, and to understand them, we need first to explain the Cisco 2600 boot process.
Under normal circumstances, a typical router — once powered on — goes through a predefined boot process, which is programmed into its read-only memory (ROM).
The ROM instructs the router to load its operating system from a specific file that can be located locally in the router’s flash memory or remotely in a trivial file transfer server (TFTP server). The file is a binary file with a .bin extension and has a name that contains the hardware platform it is suitable for — Cisco 2600, in this case — and the functionality that is provided by this file.
For example, a Cisco 2610 router operating system file name is c2600-i-mz.122-46a.bin. This file is for the basic routing features only (as indicated by the letter “i”); it is compressed (as indicated by the “mz” letters); and it is for version 12.2(46a).
If the router is unable to load the operating system file, it fails into a special mode called ROMmon (ROM monitor), which is what you are experiencing. There are many reasons for not loading the OS file: It’s corrupted or missing; it’s the wrong file type (e.g., 2690 file for a 2610 router); it has bad configuration settings, which point to a nonexisting file name; or if the router is loading the file over the network, there might be a network or server issue.
Now that we’ve discussed the router boot process and possible reasons for the ROMmon prompt you are seeing, the first step is to reboot the router while connected to the console port.
The reboot can be initiated by entering the “reset” command in the router’s ROMmon > prompt or by powering it off and back on. Before initiating the reboot process, make sure your terminal emulator is capable of logging the session’s output to a text file, and turn the logging on. Some applications that can do so are Windows Hyper Terminal — under the transfer menu, select “capture text” — or PuTTY — under session logging, select the “All Session Output” option.
After reboot, the router will go through the initial ROM processing and, in a few seconds, it will try to load the OS. At that point, it will try to boot from the configured OS file. Watch this process closely to determine the cause of the failure.
Since this problem started after a power outage, my first guess is that the OS image file is either corrupted or missing from the router’s internal flash memory. If this is the case, you will need to get another file from Cisco. You can log on to the Web site and download one. Or better yet, use the backed-up image file you saved previously. If you haven’t done it yet, don’t wait for your next failure; make backup copies of all your files.
Another option is to search existing routers of the same make and model. If this is the case for you, you can download it from the router using a TFTP server with the command “copy flash:/image_file_name.bin tftp://tftp_server_ip_address.”
Once the file is locally available, you can load it using TFTP or Xmodem. TFTP will require a TFTP server, which can be found at http://tftpd32.jounin.net/. Then, using the router’s ROMmon interface, you will need to use the tftpdnld command. This command allows a basic TFTP download.
You will make use of the “set” command to configure the IP address, subnet mask, default gateway, TFTP server and TFTP file. A more detailed explanation of this command is available online here.
If the problem is not related to a failed or missing OS image file, the options are related to misconfiguration. The most common one is a combination of flash file content and bad config. The router usually tries to load from the config, but will also try the first image file on the flash. If your file is not the first on the flash, it fails to ROMmon.
Avner Izhar, CCIE, CCVP, CCSI, is a consulting system engineer at World Wide Technology, Inc., a leading technology and supply chain solutions provider.
He can be reached at firstname.lastname@example.org.