The Cisco IOS Software Boot Sequence
The basic boot sequence for a Cisco router is:
Step 1: The router performs a power-on self-test (POST) to discover and verify the hardware.
Step 2: The router loads and runs bootstrap code from ROM.
Step 3: The router finds the IOS or other software and loads it.
Step 4: The router finds the configuration file and loads it into running config.
All routers attempt all four steps each time that the router is powered on or reloaded. The POST code and
functions cannot be changed by the router administrator. The location of the bootstrap code, the IOS to load,
and the configuration file can be changed by the administrator-but you almost always use the default
location for the bootstrap code (ROM) and for the initial configuration (NVRAM). So, the location of IOS
or other software is the only part that typically is changed.
Three categories of operating systems can be loaded into the router:
• The full-function IOS image, which is typically located in Flash memory but can also be located on a
TFTP server. This is the normal, full-feature IOS used in production;
• A limited-function IOS that resides in ROM; and provides basic IP connectivity when Flash memory is
faulty and you need IP connectivity to copy a new IOS into Flash memory. This limited-function IOS is
called RXBOOT mode.
• A different non-IOS operating system that is also stored in ROM. This operating system, called ROM
Monitor (ROMMON) mode, is used for low-level debugging and for password recovery. Unless you
are performing password recovery, you would seldom use ROMMON mode.
The configuration register tells the router whether to use a full-featured IOS, ROMMON, RXBOOT mode.
The configuration register is a 16-bit software register in the router, and its value is set using the configregister
global configuration command. The boot field is the name of the low-order 4 bits of the
configuration register. This field can be considered a 4-bit value, represented as a single hexadecimal digit.
If the boot field is hex 0, ROMMON is loaded. If the boot field is hex 1, RXBOOT mode is used. For
anything else, it loads a full-featured IOS.
The second method used to determine where the router tries to obtain an IOS image is through the use of the
boot system configuration command. If the configuration register calls for a full-featured IOS, the router
reads the configuration file for boot system commands.
If there are no boot system commands, the router takes the default action, which is to load the first file in
Flash memory. Table 1.7 lists the configuration register and the boot system command.
| Boot Filed Value |
Function |
| 0x0 |
Loads ROMMON and ignores boot system commands. |
| 0x1 |
Loads IOS from ROM and ignores boot system commands.
This is also known as RXBOOT mode. |
| 0x2-0xF |
If used with the no boot command, the first IOS file in Flash
memory is loaded; if that fails, the router broadcasts looking for
an IOS on a TFTP server. If that fails, IOS from ROM is loaded. |
| 0x2-0xF |
If used with the boot system ROM command, IOS from ROM is
loaded. |
| 0x2-0xF |
If used with the boot system flash command, the first file
from Flash memory is loaded. |
| 0x2-0xF |
If used with the boot system flash file_name command,
IOS with the specified file_name is loaded from Flash memory. |
| 0x2-0xF |
If used with the boot system tftp file_name 10.1.1.1
command, IOS with the specified file_name is loaded from the
TFTP server. |
| 0x2-0xF |
If used with multiple boot system commands, an attempt
occurs to load IOS based on the first boot command in
configuration. If that fails, the second boot command is used,
etc., until an IOS is loaded successfully. |
TABLE 1.7: The boot system Commands