CCNA online course

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:

  1. Power is applied and hardware is initialized.
  2. POST checks critical hardware.
  3. Bootstrap code locates boot instructions and an IOS image.
  4. IOS is loaded into RAM and starts.
  5. The startup configuration is copied into the running configuration.
  6. 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 TypeVolatileTypical ContentsRole During Boot
ROMNoPOST, bootstrap code, and recovery functionalityProvides low-level startup capabilities before normal IOS is running.
Flash memoryNoIOS image files and other filesUsually supplies the IOS image that is loaded into RAM.
RAMYesRunning IOS, running-config, routing tables, buffers, and processesHolds the active operating system and working data.
NVRAMNoTraditionally, startup-configRetains 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

StageWhat HappensPrimary Memory or ComponentExpected Result
1. Power and hardware initializationPower is applied and the platform initializes processors, memory, buses, and other hardware.Hardware and ROM startup codeThe device begins executing low-level startup code.
2. POSTPOST, or power-on self-test, checks essential hardware such as memory and platform components.ROM and hardware diagnosticsCritical hardware passes, or an error is reported.
3. BootstrapBootstrap code begins the process of finding boot instructions and an IOS image.ROM, boot variables, and platform boot configurationA boot target is selected.
4. IOS loadingThe selected IOS image is read from flash or another supported location and loaded into RAM.Flash and RAMIOS starts executing.
5. Configuration loadingIOS reads startup-config from NVRAM or the platform's equivalent and applies it to running-config.NVRAM or configuration storage, then RAMSaved settings become active.
6. Operational initializationInterfaces, routing processes, management services, and other configured features initialize.RAM and hardware interfacesThe 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

ConditionLikely SymptomLikely CauseInitial Administrative Response
Missing, corrupt, or incompatible IOS imageImage load error, repeated boot attempts, or ROMMON promptFile is absent, damaged, incompatible, or incompleteInspect local files, validate compatibility and integrity, then select or transfer a known-good image.
Insufficient flash or RAMImage cannot be copied, decompressed, or executedImage exceeds available storage or memoryCheck resources and platform requirements; use a supported image or storage/recovery plan.
Incorrect boot variable or boot orderOld or unintended IOS release loadsBoot target points to the wrong file or an earlier search choice winsInspect boot settings and flash contents, correct the intended target, and plan a controlled reload.
Device enters ROMMONLow-level prompt instead of IOS promptNormal IOS startup could not proceed or was bypassedReview console output and use an approved platform-specific recovery process.
Missing startup configurationSetup dialog appears or device has default settingsNo saved configuration was found or loading was bypassedCheck 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 with dir 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.

CommandInformation ReturnedWhen to Use ItPlatform Notes
show versionIOS version, active image, uptime, memory details, and configuration-register information where supportedConfirm what booted and review basic platform state.Output fields vary by platform.
dir flash:Files and available IOS images in local flashConfirm that an image exists and compare filenames.File-system names may differ.
show running-config | include ^bootConfigured classic IOS boot system statementsCheck explicit boot targets.Useful where boot system syntax is supported.
show bootBoot environment variables and boot settings where supportedInspect platform boot targets and order.Not available or identical on every platform.
show startup-configSaved configuration, if presentConfirm whether a saved configuration exists.Access and output vary with platform and privilege.
show running-configActive configuration in RAMCompare active settings with the saved configuration.Requires appropriate privilege.

Practical examples

Normal startup with a saved configuration

  1. Power is applied and the device initializes its hardware.
  2. POST validates essential components.
  3. Bootstrap code finds a configured or default boot target in flash.
  4. The IOS image moves from flash into RAM and begins execution.
  5. IOS reads startup-config from NVRAM and applies it to running-config in RAM.
  6. 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.