How Cisco IOS Devices Power On and Boot
Learn how Cisco routers and switches boot: POST, bootstrap, IOS image loading, configuration loading, boot variables, ROMMON, and recovery.
Why the Cisco IOS startup process matters
A Cisco router or switch cannot forward traffic immediately when power is applied. It must first verify essential hardware, locate its operating software, load that software, and apply its saved configuration.
Cisco IOS is the network operating system used by many Cisco routers and switches. The startup process loads IOS and prepares the device to operate.
Startup is different from interface activation and network connectivity. A device may finish booting while an interface remains administratively shut down, disconnected, incorrectly configured, or unable to reach another network.
The normal sequence is:
- Power is applied and hardware is initialized.
- POST checks critical hardware.
- Bootstrap code locates boot instructions and an IOS image.
- IOS is loaded into RAM and starts.
- The startup configuration is copied into the running configuration.
- Interfaces and configured services initialize.
The exact messages and mechanisms vary by hardware platform and IOS family. The sequence below describes the common concepts used for CCNA-level troubleshooting.
Hardware and memory used during boot
Several memory types participate in startup. Understanding whether storage is volatile or nonvolatile helps explain what survives a restart.
| Memory Type | Volatile | Typical Contents | Role During Boot |
|---|---|---|---|
| ROM | No | POST, bootstrap code, and recovery functionality | Provides low-level startup capabilities before normal IOS is running. |
| Flash memory | No | IOS image files and other files | Usually supplies the IOS image that is loaded into RAM. |
| RAM | Yes | Running IOS, running-config, routing tables, buffers, and processes | Holds the active operating system and working data. |
| NVRAM | No | Traditionally, startup-config | Retains the saved configuration across a power cycle. |
ROM
ROM is nonvolatile memory. On relevant platforms it contains hardware startup code, bootstrap capabilities, and a low-level recovery environment called ROMMON, short for ROM Monitor. ROMMON is not normal IOS mode; it is used when normal IOS startup cannot proceed or when recovery is intentionally started.
Flash memory
Flash memory is nonvolatile storage commonly used for IOS images. A device can contain more than one image or additional files, so the boot process needs a selection method.
RAM
RAM is volatile working memory. IOS executes from RAM after it is loaded, and the active running-config is held there. Routing tables, interface state, buffers, and other processes also use RAM.
NVRAM and configuration files
The startup-config is the saved configuration used during a normal startup. It is traditionally stored in NVRAM. The running-config is the active configuration currently in RAM. Changes made to running-config disappear after a restart unless they are saved to startup-config.
Some newer platforms use different file systems or configuration storage mechanisms. The terms and operational idea remain important, but platform documentation takes precedence.
Configuration register
The configuration register is a startup control value, especially important on classic IOS routers. The commonly used normal value is 0x2102. Register settings can influence whether the device loads startup-config, how it boots, or whether it enters ROMMON.
Modern platforms may use different boot controls, package modes, or commands. Do not assume that a classic router recovery procedure applies unchanged to every switch or IOS family.
The normal Cisco IOS startup sequence
| Stage | What Happens | Primary Memory or Component | Expected Result |
|---|---|---|---|
| 1. Power and hardware initialization | Power is applied and the platform initializes processors, memory, buses, and other hardware. | Hardware and ROM startup code | The device begins executing low-level startup code. |
| 2. POST | POST, or power-on self-test, checks essential hardware such as memory and platform components. | ROM and hardware diagnostics | Critical hardware passes, or an error is reported. |
| 3. Bootstrap | Bootstrap code begins the process of finding boot instructions and an IOS image. | ROM, boot variables, and platform boot configuration | A boot target is selected. |
| 4. IOS loading | The selected IOS image is read from flash or another supported location and loaded into RAM. | Flash and RAM | IOS starts executing. |
| 5. Configuration loading | IOS reads startup-config from NVRAM or the platform's equivalent and applies it to running-config. | NVRAM or configuration storage, then RAM | Saved settings become active. |
| 6. Operational initialization | Interfaces, routing processes, management services, and other configured features initialize. | RAM and hardware interfaces | The device reaches an operational IOS prompt. |
Conceptually, the memory movement is:
IOS image in flash --load--> IOS executing in RAM
startup-config --apply-> running-config in RAM
Router and switch boot behavior
Routers and switches share the major stages: hardware initialization, POST, bootstrap, IOS loading, configuration loading, and service initialization.
Switches commonly load IOS from flash and then apply startup-config. Some switch families use platform-specific boot variables, install modes, packages, or a boot loader that differs from classic router behavior. Exact console messages, file systems, storage locations, and recovery commands vary by platform and IOS family.
Use the platform's documentation to confirm image compatibility, supported commands, package requirements, and recovery procedures before changing boot settings.
Startup-config, running-config, and setup mode
When a valid startup configuration exists
During normal startup, IOS reads the saved startup-config and applies it to running-config. Hostnames, interface settings, routing protocols, authentication, and management settings can then take effect.
A configuration can exist but still fail to produce the expected state if it contains errors, references unavailable features, or is not the configuration you intended to use. Compare both configurations when troubleshooting.
When no startup configuration exists
If no usable startup-config is found, the device may display an initial setup dialog, also called setup mode. This interactive prompt asks for basic configuration information.
You can either use the dialog for a basic initial setup or decline it and configure the device manually from privileged EXEC mode. Declining setup mode does not create a complete production configuration; it simply lets you use normal IOS commands.
Would you like to enter the initial configuration dialog? [yes/no]:
When startup-config loading is bypassed
Ignoring startup-config is useful in approved password-recovery and troubleshooting procedures. The device can boot IOS without applying the saved configuration, allowing an administrator to inspect or repair the configuration.
After recovery, normal startup behavior must be restored. The temporary boot setting should be corrected, the intended configuration should be loaded or repaired, and the result should be saved. Exact password-recovery steps are platform-specific and require console access and approved procedures. See Configure Passwords in IOS for related IOS access concepts.
How an IOS image is selected
At a conceptual level, the bootstrap process checks the platform's boot instructions and available storage, then attempts to load a suitable image. If explicit instructions are absent or unusable, the platform may use a default search process.
Boot system statements
On applicable classic IOS platforms, the boot system command specifies a preferred image. For example:
configure terminal
boot system flash:<image-filename>
end
An explicit image setting helps prevent an upgrade from accidentally causing the device to load an older or unintended image that remains in flash.
To remove explicit boot statements and return to the platform's default image-selection behavior where appropriate:
configure terminal
no boot system
end
The BOOT environment variable
The BOOT variable is an environment setting that identifies boot targets or image paths. It is commonly inspected from the boot loader or with platform-specific IOS commands. A configured variable can affect which image is attempted and in what order.
Do not treat the BOOT variable and boot system statements as interchangeable on every platform. Their use and display depend on the operating system and hardware family.
Inspecting image selection
dir flash:
show running-config | include ^boot
show boot
dir flash: lists available local files. The filtered running configuration shows classic IOS boot system statements. show boot displays boot environment information on platforms that support it.
Compare the desired image filename with the configured boot target. Also check available storage, image integrity, platform compatibility, and resource requirements before selecting an image.
Configuration register and ROMMON
ROMMON is a low-level recovery environment. A device may enter it because an image is missing or corrupt, a boot target is invalid, a startup control is set to interrupt normal boot, or an administrator intentionally entered recovery.
On classic IOS routers, a normal configuration register of 0x2102 generally permits normal booting and startup-config loading. Other values can cause the router to ignore startup-config, alter boot behavior, or enter ROMMON. The meaning and command syntax can differ on modern platforms.
Console output is especially important in ROMMON. It can reveal whether POST completed, whether an image was found, and why an image load failed. Recovery may involve selecting another local image, correcting boot settings, transferring an image, or restoring configuration. The exact commands depend on the platform and available recovery interfaces.
Common failure and recovery conditions
| Condition | Likely Symptom | Likely Cause | Initial Administrative Response |
|---|---|---|---|
| Missing, corrupt, or incompatible IOS image | Image load error, repeated boot attempts, or ROMMON prompt | File is absent, damaged, incompatible, or incomplete | Inspect local files, validate compatibility and integrity, then select or transfer a known-good image. |
| Insufficient flash or RAM | Image cannot be copied, decompressed, or executed | Image exceeds available storage or memory | Check resources and platform requirements; use a supported image or storage/recovery plan. |
| Incorrect boot variable or boot order | Old or unintended IOS release loads | Boot target points to the wrong file or an earlier search choice wins | Inspect boot settings and flash contents, correct the intended target, and plan a controlled reload. |
| Device enters ROMMON | Low-level prompt instead of IOS prompt | Normal IOS startup could not proceed or was bypassed | Review console output and use an approved platform-specific recovery process. |
| Missing startup configuration | Setup dialog appears or device has default settings | No saved configuration was found or loading was bypassed | Check startup-config, restore a known-good configuration if appropriate, and save it. |
Diagnostic paths
- ROMMON prompt: Check console output for an image failure, inspect available images, review boot settings, and use the approved recovery method to select, restore, or transfer IOS.
- IOS starts without expected settings: Check startup-config, determine whether loading was bypassed, compare startup-config with running-config, and restore a known-good configuration if appropriate.
- Old image loads: Use
show version, inspect flash withdir flash:, review boot statements or the BOOT variable, and configure the desired image before a controlled reload. - Upgrade image fails: Validate the filename and path, platform compatibility, image integrity, and memory requirements. Keep a known-good fallback image when possible.
- Changes disappear after restart: Compare the two configurations and save running-config to startup-config. If saving fails, investigate storage or write errors.
Verification after startup
Successful startup normally ends with usable console output, IOS startup messages, interface initialization messages, and an IOS command prompt. Error messages, repeated image searches, boot loops, or a ROMMON prompt indicate that startup did not complete normally.
| Command | Information Returned | When to Use It | Platform Notes |
|---|---|---|---|
show version | IOS version, active image, uptime, memory details, and configuration-register information where supported | Confirm what booted and review basic platform state. | Output fields vary by platform. |
dir flash: | Files and available IOS images in local flash | Confirm that an image exists and compare filenames. | File-system names may differ. |
show running-config | include ^boot | Configured classic IOS boot system statements | Check explicit boot targets. | Useful where boot system syntax is supported. |
show boot | Boot environment variables and boot settings where supported | Inspect platform boot targets and order. | Not available or identical on every platform. |
show startup-config | Saved configuration, if present | Confirm whether a saved configuration exists. | Access and output vary with platform and privilege. |
show running-config | Active configuration in RAM | Compare active settings with the saved configuration. | Requires appropriate privilege. |
Practical examples
Normal startup with a saved configuration
- Power is applied and the device initializes its hardware.
- POST validates essential components.
- Bootstrap code finds a configured or default boot target in flash.
- The IOS image moves from flash into RAM and begins execution.
- IOS reads startup-config from NVRAM and applies it to running-config in RAM.
- Interfaces, routing protocols, and management services initialize according to the configuration.
In this example, the IOS image is stored persistently in flash, the saved configuration is stored persistently in NVRAM, and the active IOS and running configuration occupy RAM.
First-time startup
A new or erased device may have no startup-config. After IOS loads, setup mode may ask whether to enter the initial configuration dialog. Choose the dialog for an interactive basic setup, or answer no and configure manually from privileged EXEC mode.
Confirming the selected image
show version
dir flash:
show running-config | include ^boot
show boot
Use show version to identify the image currently running. Use dir flash: to list candidates, then compare the desired filename with boot system statements or the BOOT variable.
Planned restart after saving changes
copy running-config startup-config
reload
Use these commands only during an approved maintenance window. After the device returns, verify that the expected saved configuration was loaded with show startup-config, show running-config, and show version.
Image problem and ROMMON recovery
If the device falls into ROMMON, normal IOS did not load. First inspect console messages and determine whether the problem is a missing file, corrupt image, wrong boot path, incompatible image, or insufficient resources. Then check available local images and alternate boot settings. If no usable image exists, transfer or restore one using the platform's approved recovery procedure.
Temporarily bypassing startup-config
For an approved access-recovery procedure, a temporary startup control can cause IOS to boot without applying startup-config. The administrator can then inspect or repair access settings. Once finished, restore normal startup controls, load or rebuild the intended configuration, and save it. Never leave a production device in a recovery boot state.
Operational safety
- Save running-config to startup-config before a planned reload.
- Use console access when changing boot variables, upgrading IOS, or performing recovery.
- Keep a verified backup image and a known-good configuration before making boot changes.
- Confirm image compatibility, integrity, flash capacity, RAM requirements, and platform-specific instructions.
- Use a maintenance window and a recovery plan, especially for remotely managed production devices.
Exam-relevant notes
- POST verifies hardware; it does not load IOS or configure interfaces.
- Bootstrap is low-level startup code that helps locate and load IOS.
- Flash commonly stores IOS, RAM runs IOS and holds running-config, and NVRAM traditionally stores startup-config.
- Startup-config is saved; running-config is active. Saving is required for changes to survive a reload.
- The normal classic IOS router configuration register is commonly
0x2102. - ROMMON is a recovery environment, not the normal IOS operating mode.
- A missing startup-config can lead to setup mode; bypassing startup-config is useful for approved recovery procedures.
- Exact boot messages and recovery commands vary by platform and IOS family.
Related skills
Startup troubleshooting depends on understanding device configuration, console access, and basic network operation. Review Computer Network Explained for foundational networking concepts and Configure Passwords in IOS for related access and recovery concepts.