In this tutorial I will explain router booting process with example. Router follows a boot sequence to bring it up. Knowing this sequence will help you in managing this device easily.
Router goes through the three steps when booting up
- POST (Power on self test)
- Locate and load IOS
- Locate and run device configuration file
Before we start exploring this procedure in more deeply, let's be familiar with the type of memories used by router. Usually router uses four types of memory.
ROM ( Read only memory ) stores four components POST, Bootstrap program, ROMMON mode and Mini IOS.
POST ( Power on self test ) is a low level diagnostic utility that performs various tests on hardware components. It verifies that all necessary components are present and operational. Modular slots are checked in this process for any hardware change like installing new interface or removing existing interfaces.
Bootstrap is the second utility in booting sequence. It controls the search and load process of IOS. Bootstrap program is responsible for bringing up the router, finding IOS on all possible locations and loading it in RAM.
ROMMON is a portable IOS program that allows us to perform various diagnostic tests. This program is also used for password recovery procedure. It has its own mode ( Check our previous article to know more about Cisco IOS mode) known as ROMMON mode. Boot sequence follows a conditional rule for this mode. If bootstrap successes in finding and loading operation of IOS, then boot sequence will not enter in this mode. Boot sequence will enter in this mode automatically, if it fails to load IOS in RAM from all possible locations.
You can manually enter in this mode for diagnostic purpose. Run reload command from privileged mode to reboot the router. Press + C key combination ( CTRL Key with C Key ) in first 60 seconds of boot sequence.
Mini-IOS is a fallback utility that contains a stripped down version of IOS. This is used in critical situations where IOS image in flash is not found. Mini-IOS contains only IP code that allows you to load IOS from other resources such as TFTP Server. Cisco IOS mode used by this stripped down IOS utility known as RXBOOT mode.
Flash is a nonvolatile memory. Data store in flash is not lost when you turn the router off. You could assume flash as hard disk of router. Like data stored in hard disk remain safe, same as data stored in flash remain safe. Router uses flash to store IOS image. During the boot process router load IOS file from flash to ram.
NVRAM is another permanent memory. Data stored in NVRAM is also remain safe. Router use NVRAM to store configuration files. NVRAM uses a battery to maintain the data during the power off stage.
RAM is a temporary memory. Information stored in RAM does not remain in power off stage. Everything in RAM is erased, when you turn off the router. RAM is the fastest memory among these memories. In a powered on router, RAM contains all the information required to function the device.
- During the boot process IOS is copied and decompressed in RAM from Flash.
- Same as ISO, running configuration is also copied in RAM from NVRAM.
- RAM stores ARP, CDP neighbor, routing and other tables.
- Interface input and output buffers are also stored in RAM.
Now we know the memories used by router to store the data. It's time to understand the process followed by router to boot the device.
Configuration register value
Configuration register value is a special register that is used to control the booting process. You can check current configuration register value with "show version" command from exec mode .
- It is a four characters hexadecimal value, that can be changed from privileged mode.
- Default value is 0x2102.
- "0x" indicates that the characters that follow are in hexadecimal.
- The third character in the configuration register can modify how the router loads the configuration file.
- The fourth character in the configuration register is known as the boot field. Changing this value, will change booting process.
- Setting of 0x2100 will always boot router in ROMMON mode.
- Setting of 0x2101 will always boot router in RXBOOT mode.
- Setting of 0x2102 to 0x210F will always load first valid IOS from flash.
- values of 2 through F for the fourth character specify other IOS image files in flash.
- Router keeps password in startup-config file that is stored in NVRAM.
- The setting of 0x2142 causes the router to ignore the startup-config file in NVRAM and proceed without a configuration. Thus the setting of 0x2142 is used for password recovery process of router.
Router booting process
Router goes through the following steps during the boot process.
- Router is powered on.
- Power on self test (POST) is performed to check hardware components including memory and interfaces.
- Bootstrap program is loaded and executed.
- Bootstrap reads configuration register value to determine how the router will boot up.
- Depending on the value of configuration register, bootstrap program finds and loads the IOS image.
- If bootstrap fails to load IOS from all possible locations it will drop boot sequence in ROMMON mode for troubleshooting.
- If IOS is loaded, the IOS will try to find and load the configuration.
- If configuration is not presented, system configuration dialog would be launched.
- If configuration is loaded, you would be presented in CLI interface.