Cisco Router Boot Process Steps, Diagram and Different Memories Associated with Cisco

By | January 20, 2015

When you power on a Cisco router, it runs a bunch of boot process before getting into work. Having an awareness of Cisco router booting process lets you to troubleshoot technical issues like IOS corruption, boot failure etc. Here’s a rundown of some of the key processes occurring just after powering on a Cisco router that is Cisco Router Boot Sequence Steps. Why do we look into Cisco boot process? It reveals what’s actually happening behind the scenes of a Cisco router. Cisco certification courses online may not covers Cisco router booting process steps. Here comes my tutorial delivering Cisco IOS boot and various kinds of memories equipped in a Cisco router, as Cisco router booting process is directly or indirectly linked with these memories. Basically a Cisco router boot process goes via these memory modules.

Ok, let me get in to the topics, 1st I’m gonna describe the different kinds of memories in a Cisco router. Add on this knowledge to your CCNA training and get more from us.


Types of Memories in Cisco Router

To store IOS image, configuration files, VLAN data and other security data, routers use memory modules.

1. ROM (Read only Memory)

ROM stores four constituents such as

  1. POST
  2. Bootstrap program
  3. ROMMON mode
  4. Mini IOS

These programs are hard coded in the router, meaning it won’t get erased or damaged, it is permanent forever a router exists. It is just like a firmware program.
So let’s see what are those? What do they do?

POST (Power On Self Test)

It is a kind of diagnostic utility that performs essential tests in the router such as verifying whether the important hardware components are present or not, checking module slots for new hardware, etc.


This is ultimately a search process for IOS. Perhaps IOS image is located on different location (Flash, RAM etc.). Bootstrap program is liable for invoking the router. After search process it eventually loads IOS to the RAM. There is a parameter called ‘Configuration Register Value’, depending upon this value IOS load to RAM. (Consider if there are two IOS images in the flash which one will select and load? It is specified by the Configuration Register Value’)
Bootstrap reads configuration register value to determine how the router will boot up.

ROMMON (ROM Monitor Mode)

ROMMON lets you to do several diagnostic tests. This is one of the favorite tools for recovery process. This mode is used to replace corrupted IOS and for password recovery. This mode may not be always visible to the administrators, Boot order will get into this mode automatically, if it fails to load IOS to RAM from all available locations. Once bootstrap successfully loaded IOS to RAM boot sequence will never enter in this ROMMON mode.

Cisco router boots to rommon Mode

We can enter in this mode manually by interrupting the normal boot process for some sort of diagnostic purpose. For this hit ‘CTRL + C’ key together while booting Cisco router.

System Bootstrap, Version 12.3(8r)T8, RELEASE SOFTWARE (fc1)
Cisco 1841 (revision 5.0) with 114688K/16384K bytes of memory.

Readonly ROMMON initialized

Self decompressing the image :
monitor: command "boot" aborted due to user interrupt
rommon 1 >
rommon 1 >

Alternatively we can enter to this mode by changing config-reg value to 0x2100

Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#config-register 0x2100
%SYS-5-CONFIG_I: Configured from console by console
Building configuration...
Proceed with reload? [confirm]
System Bootstrap, Version 15.1(4)M4, RELEASE SOFTWARE (fc1)
Technical Support:
Copyright (c) 2010 by cisco Systems, Inc.
Total memory size = 512 MB - On-board = 512 MB, DIMM0 = 0 MB
CISCO2911/K9 platform with 524288 Kbytes of main memory
Main memory is configured to 72/-1(On-board/DIMM0) bit mode with ECC disabled

Readonly ROMMON initialized

rommon 1 >

So, how to exit from this mode? Return back config-reg value to default 0x2102

System Bootstrap, Version 15.1(4)M4, RELEASE SOFTWARE (fc1)
Technical Support:
Copyright (c) 2010 by cisco Systems, Inc.
Total memory size = 512 MB - On-board = 512 MB, DIMM0 = 0 MB
CISCO2911/K9 platform with 524288 Kbytes of main memory
Main memory is configured to 72/-1(On-board/DIMM0) bit mode with ECC disabled

Readonly ROMMON initialized

rommon 1 > confreg 0x2102
rommon 2 > reset

Important config-reg values

0x2102: The default. Router looks for a startup configuration file in NVRAM and for a valid IOS image in Flash.
0x2142: NVRAM contents are bypassed, startup configuration is ignored (Used to reset password).
0x2100: Router boots into ROM Monitor mode.

Mini-IOS [RxBOOT- Router(boot)]

Mini-IOS is a fallback utility that contains a minimal featured IOS image stored in ROM used for recovery purpose (seen in some old routers eg: 2500). This is used in crucial circumstances where IOS image in flash is not found. Mini-IOS supports some basic IOS commands like assigning IP, interface up etc.
Mini-IOS helps to load IOS from other sources such as TFTP Server. This mode is termed as RxBOOT mode.
To enter to this mode we have to change configuration register value.

2. Flash


Flash is a nonvolatile memory. Data stored in flash is not lost when you turn the router off. You can assume flash as hard disk of router. Like data stored in hard disk remains safe, data stored in flash also remain safe. Router use flash to store IOS image. During the boot process router loads IOS file from flash to RAM.

3. NVRAM (Non Volatile RAM)

As the name indicates it is a non-volatile permanent memory. Data stored in NVRAM is continuing safe. It uses battery to keep the data even after power off. Configuration files are usually stored in NVRAM.

4. RAM


RAM is a fast performing temporary memory. Information kept in RAM does not persist after power off. Everything in RAM is cleared, when you turn off the router. In an active router, RAM holds all the data required to work the router.
These are the memories available in a typical Cisco router. I hope this was informative for you and I would like to move onto the next section explaining Cisco Router Boot Process

Cisco Router Boot Process

How a Cisco router keeps up and running? What are the process happening behind the scene while a router starts powering on? A better realization of the processes associated with Cisco router booting helps you to troubleshoot issues faster. Refer the flow chart showing Cisco router boot process diagram.
POST (Checking hardware components and interfaces- Already explained above) BOOTSTRAP (search for IOS) is happening inside the ROM.
Router boots up depending upon the value in configuration register.
BOOTSTRAP program will searche for the IOS image in all possible locations (ROM, FLASH, TFTP).
Once it finds IOS, the image will be loaded to RAM (Sometimes it decompresses the image also).
If BOOTSTRAP couldn’t find the IOS image, boot sequence fallen to ROMMON mode, there we can do basic troubleshooting, reinstalling IOS etc.
RAM stores ARP, CDP neighbor, routing and other tables.
Once IOS is successfully loaded to RAM, the IOS will try to get the ‘Configuration file (running-config)’ from NVRAM.
Previously configured router has ‘running-config’ file located at NVRAM. After loading the configuration, router will prompt Router>
If there is no ‘running-config’ in the NVRAM ‘system configuration dialog’ will open up (Continue with configuration dialog? [yes/no]:)
That’s it, our Cisco router is booted up and running now!

Now let me show you the console CLI of Cisco 1941 router
I Hope you guys got the knowledge regarding Cisco router booting. In my next article I will be coming with other wonderful Cisco administration guides. Please share the article and like us to get latest updates.

2 thoughts on “Cisco Router Boot Process Steps, Diagram and Different Memories Associated with Cisco

  1. Lord Ely Evangelista

    thanks for posting your guide,.

    i have bought cisco router 1941 from ebay,.however the router was not reset to factory,.now im having problem trying to reset to factory default,.
    i did try to the ctrl+break but the loading of ios ignoring it,.hint im using putty and hyperterminal.
    i did try your guide which is ctrl+c to interupt loading ios,and it wans’t work,.
    is there anymore tips and tricks?
    please help thanks

    1. Mubashir VP Post author

      Did you try the second method we explained above, by changing config-reg value to 0x2100 ? Even if that doesn’t help try this:
      1. In the putty terminal set the baud rate as 1200, click Open button.
      2. Restart the router and hit Space Bar for 10 to 15 seconds
      3. Now Exit the terminal and re-open with old baud rate of 9600.


Leave a Reply

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