When a Cisco router boots up, it performs a series of steps, called the router boot sequence, to test the hardware and load the necessary software.
Cisco router boot sequence consists of the following steps:
1. The router performs a POST (Power On Self Test). The POST (Power On Self Test) tests the hardware to verify that all components of the device are operational and present. For example, the POST checks for the different interfaces on the router. The POST is stored in and run from ROM (read-only memory).
2. The bootstrap program (The bootstrap is a program in ROM that is used to execute programs) checks the Configuration Register value to find where to load the IOS. The default value of configuration register is 0x2102 (hexadecimal value). The configuration register value 0x2102 indicates that the router should load Cisco IOS Operating System software image from Flash memory and load the startup configuration with a console speed of 9600 baud rate. The bootstrap looks for and loads the Cisco IOS software from flash if the configuration register value is 0x2102.
The Bootstrap program is responsible for initializing hardware and finding where IOS program is located and then loading IOS image. By default, the IOS software is loaded from flash memory in all Cisco routers. Other possible location of the IOS image is a TFTP (Trivial File Transfer Protocol) server, configured in a computer).
If the Bootstrap program is not able to find a valid IOS image, it will act as ROM Monitor. ROM Monitor is capable of providing a command-line environment that can be used to perform certain configuration tasks, such as downloading IOS image using TFTP, recovering a lost password, changing the configuration register value etc.
4. If a Startup Configuration (startup-config) file is present in NVRAM, the router will load and apply the configuration commands in Startup Configuration (startup-config) file. If a valid Startup Configuration (startup-config) file is not in NVRAM, IOS will display System Configuration setup.
5. Once the startup-config configuration is loaded, IOS will present CLI interface in User mode.