IBM Support

ROM Monitor (ROMMON) on Cisco 1100 Series — Overview & Procedures

How To


Summary

ROM Monitor (ROMMON) is a low-level bootstrap on Cisco 1100 routers that initializes hardware and loads IOS XE. It is used for recovery, manual booting, and troubleshooting. You can enter ROMMON by interrupting boot or if the router fails to load IOS. Key commands include boot, confreg, dir, set, and upgrade rom-monitor. To upgrade ROMMON, copy the .pkg file to bootflash:, run upgrade rom-monitor filename <path> all, then reload the router. Always verify the ROMMON version after upgrade.

Objective

Usage / Why ROMMON Matters in Upgrades

  • Many new IOS XE versions require a minimum ROMMON version to be installed; if your router has an older ROMMON, the IOS XE image might not load or may behave incorrectly.

  • The ROM Monitor guide is essential if your router fails to boot or needs a forced boot into a specific image.

  • In scenarios such as initial hardware bringup, recovery, or image upgrade, understanding ROMMON commands and environment helps troubleshoot issues like “no image to boot” or corrupt IOS.

Environment

What is ROMMON?

  • ROM Monitor (also called ROMMON, boot helper, bootstrap) is a low-level bootstrap program that runs before IOS XE. It initializes hardware, then loads the Cisco IOS XE image. 

  • If the router cannot find a valid IOS image during boot, it may enter ROMMON mode automatically. 

  • ROMMON is separate from IOS XE; the router never runs both simultaneously.

  • ROMMON handles tasks like:

    • Booting a chosen IOS image,

    • Bypassing NVRAM / config register settings (useful for password recovery),

    • Letting you modify boot parameters.

Steps

Entering & Exiting ROMMON Mode

Entering ROMMON

You can get into ROMMON mode via:

  • Interrupt during the router boot sequence (e.g. pressing the break key)

  • If the router fails to find a bootable IOS image

  • Direct console connection when the router is already in ROMMON mode

Once in ROMMON, you’ll see a prompt like:

rommon 1 >

While in ROMMON:

  • All IOS XE features (interfaces, routing, etc.) are unavailable—the router is in a minimal state. 

  • Only the console port is usable. 

Exiting ROMMON

To leave ROMMON and boot into IOS:

  1. Run the confreg command at the ROMMON prompt, and respond to prompts to set the config register (usually to enable booting into IOS). 

  2. Use the reset command to reboot the router. 

After reboot, the router should load the IOS image per the new config register / boot settings.


Viewing / Using ROMMON Commands & Environment

Checking ROMMON Version

From IOS (when running):

Router# show rom-monitor r0

Or:

Router# show platform 

These commands display the current ROMMON version and hardware details. 

ROMMON Commands (Common)

In ROMMON mode, useful commands include:

CommandPurpose
boot <image>Manually boot a specified IOS image file
confregChange or view configuration register settings
devList available local storage devices
dirList files on a storage device
resetReboot / reset the system
setShow current environment variable settings
syncSave the environment variables (persist to NVRAM)
unsetRemove / clear an environment variable
help or ?Show available commands or syntax help 

Note that ROMMON commands are case-sensitive. Pressing Ctrl-C can abort some commands. 

You can also change the ROMMON prompt (with PS1=) if managing multiple routers in ROMMON. 

Environment Variables & Configuration Register

  • ROMMON maintains environment variables that define how the router boots (e.g. which image to use, TFTP server, IP settings). 

  • Common variables include:

    • IP_ADDRESS, IP_SUBNET_MASK

    • DEFAULT_GATEWAY

    • TFTP_SERVER, TFTP_FILE

    • BOOT (which image file to load) 

  • Use set in ROMMON to display current variables.

  • After setting new variables, use sync to save them so they persist after reset. 

  • The configuration register setting controls boot behavior (whether to boot to IOS, ignore config, etc.). confreg shows or changes it. 


How to Upgrade / Update ROMMON

When you upgrade your router’s ROMMON (for example enough for newer IOS compatibility), follow these steps:

Summary Steps

  1. Check current ROMMON version (e.g. via show platform or show rom-monitor slot)

  2. Copy the ROMMON .pkg file to bootflash: or a USB (e.g. usb0:)

  3. Verify the file was copied (e.g. dir bootflash:)

  4. Use the upgrade rom-monitor filename <location> all command to start the upgrade

  5. After the process completes, reload the router

  6. If autoboot is disabled (i.e. config register isn’t 0x2102), manually boot the IOS image from ROMMON

  7. Once booted, run show platform or show rom-monitor slot to confirm the ROMMON upgrade succeeded 

Detailed Steps w/ Notes & Warnings

  • Be careful not to interrupt power or hardware during the ROMMON upgrade. While recovery is possible in many cases, interruptions may cause unpredictable issues. 

  • The ROMMON upgrade isn’t considered permanent until the router boots successfully into IOS XE after the upgrade. 

  • If autoboot (via config register) isn’t enabled, you'll need to manually boot filesystem:/<image> in ROMMON after reload. 

A sample sequence:

Router# show platform
Router# copy usb0:C1100-rommon-168-1r.pkg bootflash:
Router# dir bootflash:
Router# upgrade rom-monitor filename bootflash:C1100-rommon-168-1r.pkg all [ wait for output … ]
Router# reload

If required:

rommon> boot bootflash:c1100-universalk9.<version>.bin

Then:

Router# show platform Router# show rom-monitor r0 

Check that the ROMMON version matches the newly installed one.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB66","label":"Technology Lifecycle Services"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSWG8KZ","label":"MVS Network - CISCO"},"ARM Category":[{"code":"a8m3p000000Goj3AAC","label":"MVS Network - CISCO"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}]}]

Product Synonym

c1100

Document Information

Modified date:
24 October 2025

UID

ibm17248738