This document describes how to modify certain bootup system parameters with commands on Catalyst 9000 switches that run Cisco IOS® XE.
There are no specific requirements for this document.
The information in this document is based on these software and hardware versions:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
On classic Cisco IOS platforms, the configuration register is a 16-bit value stored in Non-Volatile Random Access Memory (NVRAM). The configuration register controls specific boot behaviors, such as whether the device boots normally, stops in ROM Monitor (ROMMON), ignores the startup configuration, enables BREAK during boot, or uses a specific console baud rate.
On Catalyst 9000 Series Switches that run Cisco IOS XE, these boot related behaviors are not controlled with the traditional config-register command. Instead, Cisco IOS XE uses specific Command Line Interface (CLI) commands and ROMMON variables to configure equivalent behavior.
For this reason, commands such as boot manual, boot enable-break, system ignore startupconfig, and system disable password recovery are used to configure the equivalent settings on Cisco IOS XE platforms. Additionaly the CLI command show romvar can be used to verify the current boot related parameters.
Note: Please note that the command for Catalyst 9000 Series Switches show romvar was introduced in Cisco IOS XE Gibraltar 16.10.1
The config-register can be used to change switch behavior and operational settings to:
Startup Configuration Handling: It can tell the device to either load the saved configuration file (startup-config) stored in NVRAM or intentionally ignore the startup configuration. Bypassing the startup-config is widely used for password recovery procedures so an administrator can gain access to a locked device.
Console Port Baud Rate: The configuration register can be modified to change the speed (baud rate) of the console port, such as changing it from the default 9600 to 115200.
On Classic platforms that run on Cisco IOS software, the configuration register is set from configuration mode with the config-register command or from ROMMON with the confreg command. The show version command allows you to view the current setting of the configuration register.
On Catalyst 9000 Series Switches that run Cisco IOS XE, the confreg command was still available to configure, and the current setting appeared in show version as well, but the actual config-register command was ineffective and malfunctioned which caused confusion.
This is because Cisco IOS XE does not use this config-register command and provides alternate CLI commands to handle the boot behavior.
The solution explains how to configure Cisco IOS XE commands that provide behavior equivalent to common Cisco IOS configuration register settings. Use these equivalent Cisco IOS XE commands on Catalyst 9000 switches to control boot behavior instead of using the traditional config-register command from Cisco IOS.
| Operation |
Description |
Cisco IOS config-register Value |
Equivalent Cisco IOS XE Commands |
Verification |
| Boot Normally |
Configures the switch to automatically boot the configured Cisco software image during startup. |
0x2102 |
Switch(config)#no boot manual |
show romvar confirms MANUAL_BOOT=no |
| Boot to ROMMON |
Configures the switch to stop at the ROMMON prompt instead of automatically booting Cisco software image. |
0x0,0x2120 |
Switch(config)#boot manual |
show romvar confirms MANUAL_BOOT=yes |
| Enable Break |
Allows the BREAK signal to interrupt the boot process. |
0x2120 |
Switch(config)#boot enable-break |
show romvar confirms ENABLE_BREAK=yes |
| Disables Break/Ignores Break |
Prevents the BREAK signal from interrupting the boot process.
Note: On classic Cisco IOS platforms, some configuration register settings ignored BREAK during most of the boot process but still allowed a limited window, typically about 60 seconds after reload, during which a BREAK sequence could interrupt the boot process.
Note: On Catalyst 9000 switches that run Cisco IOS XE, if BREAK is disabled with no boot enable-break, the console BREAK sequence cannot be used to interrupt the automatic boot process. To interrupt boot and access ROMMON in this state, use the physical MODE button during the switch startup process. |
0x102, 0x2101, 0x2102, 0x2122, 0x2124, 0x2142, 0x2902, 0x2922, 0x3122, 0x3902, 0x3922 |
Switch(config)#no boot enable-break |
show romvar confirms ENABLE_BREAK=no |
| Setting Console Speed (Baud Rate) |
Configures the console line baud rate used for terminal access.
Note: Valid speeds are typically 9600, 1200,19200, 38400, 57600, 115200. Also verify the console line configuration and confirm that the terminal emulator uses the same speed. |
0x102, 0x2101, 0x2102, 0x2142: 9600 baud rate 0x1202: 1200 baud rate 0x2120 0x2122, 0x2124: 19200 baud rate 0x2902: 4800 baud rate 0x2922: 38400 baud rate 0x3122: 57600 baud rate 0x3922: 115200 baud rate 0x3902: 2400 baud rate |
Switch(config)#line console 0 Switch(config-line)#speed <supported-baud-rate> <0-4294967295> Transmit and receive speeds range |
show romvar confirms |
| Ignore Startup Configuration |
Configures the switch to bypass the startup configuration during the next boot. |
0x2142 |
Switch(config)#system ignore startupconfig switch {all|<1-8>} |
show romvar confirms SWITCH_IGNORE_STARTUP_CFG=1 |
| Disable Password Recovery |
Prevents use of the standard password recovery process. |
0x102 |
Switch(config)#system disable password recovery |
show romvar confirms SWITCH_DISABLE_PASSWORD_RECOVERY=1 |
Caution: If a change to the console speed is needed, configure the terminal emulator to use the same baud rate. Otherwise, a baud rate mismatch can prevent the console output from displaying correctly and can prevent console access until the terminal emulator is configured with the correct speed.
Note: While in ROMMON mode, use the set command to display the current values of the ROMMON environment variables.
Some Cisco IOS XE boot related commands set ROMMON environment variables that affect how the switch behaves during startup. Combining these settings can impact system behavior, particularly when both startup configuration handling and password recovery are modified. Review the next behavior before enabling or disabling the startup configuration ignore or password recovery options.
If both system ignore startupconfig and system disable password recovery are enabled, the next ROMMON environment variables are set:
SWITCH_DISABLE_PASSWORD_RECOVERY=1 SWITCH_IGNORE_STARTUP_CFG=1
To verify the value of these variables while in ROMMON, use the command set as in the next example:
switch: set
ABNORMAL_RESET_COUNT=0
AUTO_SWITCH_CONSOLE_DISABLE=0
BAUD=9600
BOARDID=20611
BOOT=flash:packages.conf;
BOOTLDR=
BSI=0
CALL_HOME_DEBUG=0000000000000
CONFIG_FILE=
CONSOLE_MIRRORING_DISABLE=0
CRASHINFO=crashinfo:crashinfo_RP_00_00_20260119-021210-UTC
CSDL_ENTROPY_REQUIREMENT_DISABLE=
CSDL_MODE_DISABLE=
DC_COPY=yes
D_STACK_DAD=Te1/0/2,
D_STACK_DISTR_STACK_LINK1=Te1/0/1,
D_STACK_DISTR_STACK_LINK2=
D_STACK_DOMAIN_NUM=
D_STACK_MODE=none
ENABLE_BREAK=yes
FIPS_MODE=
LICENSE_BOOT_LEVEL=network-advantage+dna-advantage,all:C9500_16X;
MAC_ADDR=C0:2C:17:09:92:80
MANUAL_BOOT=yes
MCP_STARTUP_TRACEFLAGS=00000000:00000000
MFIPS_MODE=1
MODEL_NUM=C9500-16X
MODEL_REVISION_NUM=F1
MOTHERBOARD_ASSEMBLY_NUM=73-18709-01
MOTHERBOARD_REVISION_NUM=E0
MOTHERBOARD_SERIAL_NUM=FJZ27071YAV
RANDOM_NUM=1681596677
RECOVERY_RELOAD_DISABLE=
RET_2_RCALTS=1784573061
RET_2_RTS=
ROMMON_AUTOBOOT_ATTEMPT=3
ReloadReason=ISSU RET_2_RCALTS=1780512931
SWITCH_DISABLE_PASSWORD_RECOVERY=1 SWITCH_IGNORE_STARTUP_CFG=1
SWITCH_NUMBER=1
SWITCH_PRIORITY=15
SYSTEM_SERIAL_NUM=FJC27081FSY
TEMPLATE=distribution
USB_DISABLE=0
VERSION_ID=V02
If both startup configuration ignore and password recovery disable are enabled, the switch can prompt during boot to erase the startup configuration:
Warning: Answering y erases the startup configuration and can cause service impact. Be careful when responding to this prompt during boot. If the saved configuration is erased, the switch can start without the expected production configuration, which can affect management access, Layer 2 or Layer 3 connectivity, and other configured services. Before you respond y, confirm that you intentionally want to erase the startup configuration and that you have a recent backup of the device configuration. If you do not intend to erase the configuration, or if you are unsure, respond n, which is the default option.
Booting...
<snip>
Both ignore startup configuration and disable password are set
This will result in erasing the startup config
Do you want to Erase the config? Default: n, Answer y/n:
User response is YES, erasing the startup config
Removing FIPS Key. Disabling FIPS MODE
All TCP AO KDF Tests Pass
service password-encryption
service password-recovery no
confirm
Note: To complete a password recovery on a Catalyst 9000 Series Switch, refer to the Perform Password Recovery on Catalyst 9000 Series Switches
Use show romvar to verify ROMMON variables after the configuration is saved and the device reloads. Key variables include:
| Behavior |
ROMMON Variable / Config to Verify |
Value |
|---|---|---|
| Line Console Speed |
BAUD |
9600 |
| Normal Boot |
MANUAL_BOOT |
no |
| BREAK Enabled |
ENABLE_BREAK |
yes |
| Ignore Startup Configuration |
SWITCH_IGNORE_STARTUP_CFG |
0 |
| Password Recovery Disabled |
SWITCH_DISABLE_PASSWORD_RECOVERY |
0 |
Note: The no system ignore startupconfig switch all command clears the setting that causes a Cisco Catalyst switch to ignore the startup configuration during boot. This command is commonly used on platforms such as the 3850, 9200, 9300, and 9400 Series when the switch does not load the saved configuration after a reload and instead starts the initial setup dialog. This issue usually occurs when the internal ROMMON variable that controls startup configuration handling is set to 1, which tells the switch to ignore the startup configuration. The command changes that variable to 0, so the switch loads the saved startup configuration during the next boot.
Switch displayed values:
C9K#show romvar
----------------------------------
ROMMON variables for Active Switch
----------------------------------
ABNORMAL_RESET_COUNT=0
AUTO_SWITCH_CONSOLE_DISABLE=0
BAUD=9600 BOARDID=20611
BOOT=flash:packages.conf;
BOOTLDR=
BSI=0
CALL_HOME_DEBUG=0000000000000
CONFIG_FILE=
CONSOLE_MIRRORING_DISABLE=0
CRASHINFO=crashinfo:crashinfo_RP_00_00_20260119-021210-UTC
CSDL_ENTROPY_REQUIREMENT_DISABLE=
CSDL_MODE_DISABLE=
DC_COPY=yes
D_STACK_DAD=Te1/0/2,
D_STACK_DISTR_STACK_LINK1=Te1/0/1,
D_STACK_DISTR_STACK_LINK2=
D_STACK_DOMAIN_NUM=
D_STACK_MODE=none
ENABLE_BREAK=yes
FIPS_MODE=
LICENSE_BOOT_LEVEL=network-advantage+dna-advantage,all:C9500_16X;
MAC_ADDR=C0:2C:17:09:92:80
MANUAL_BOOT=no
MCP_STARTUP_TRACEFLAGS=00000000:00000000
MFIPS_MODE=1
MODEL_NUM=C9500-16X
MODEL_REVISION_NUM=F1
MOTHERBOARD_ASSEMBLY_NUM=73-18709-01
MOTHERBOARD_REVISION_NUM=E0
MOTHERBOARD_SERIAL_NUM=FJZ27071YAV
RANDOM_NUM=1681596677
RECOVERY_RELOAD_DISABLE=
RET_2_RCALTS=
RET_2_RTS=
ROMMON_AUTOBOOT_ATTEMPT=3
ReloadReason=ISSU RET_2_RCALTS=1780512931
SWITCH_DISABLE_PASSWORD_RECOVERY=0 SWITCH_IGNORE_STARTUP_CFG=0
SWITCH_NUMBER=1
SWITCH_PRIORITY=15
SYSTEM_SERIAL_NUM=FJC27081FSY
TEMPLATE=distribution
USB_DISABLE=0
| Revision | Publish Date | Comments |
|---|---|---|
4.0 |
20-Jul-2026
|
Recertification |
3.0 |
02-Dec-2024
|
Recertificaiton, took Cisco out of title, checked spelling and formatting. |
2.0 |
15-Dec-2022
|
Updated formatting per TZ and CCW standards. Recertification. |
1.0 |
24-Feb-2021
|
Initial Release |