Introduction
This document describes how to modify certain system parameters using CLI commands on Catalyst 9000 switches running Cisco® IOS-XE. These commands are an alternative to changing the configuration-register value on Cisco® IOS.
Problem
Config-register is a 16-bit software register value that is preconfigured in NVRAM and can be used to change switch behavior in several ways, such as:
-
how the switch boots (into ROMmon, NetBoot)
-
options while booting (ignore configuration, disable boot messages)
-
console speed (baud rate for a terminal emulation session)
On Classic platforms that run on Cisco IOS software, the configuration register can be set from configuration mode using the config-register command or from ROMmon using the confreg command. Theshow versioncommand allows viewing the current setting of the configuration register.
On Catalyst 9000 switches that run on Cisco IOS-XE, the config-register command was still available to configure, and the current setting as appearing in show version as well, but the actual config-register command was ineffective and was malfunctioning causing confusion.
This is because Cisco IOS-XE doesn’t use this config-register command and provides alternate CLI commands to handle the same.
Note: The incorrect display of configuration register value on show version output is removed from 16.12.4 and 17.3.1 release onwards.
Solution
Here are the equivalent CLI commands on Cisco IOS-XE that allows user to perform same tasks done by setting config-register value on Cisco IOS.
Operation
|
IOS Config-register value
|
Equivalent IOS-XE CLI
|
Boot normally
|
0x2102
|
Switch(config)#no boot manual
|
Boot to rommon
|
0x0,0x2120
|
Switch(config)#boot manual
|
Enable Break/Disable Break
|
0x2120/ remaining register values
|
Switch(config)#[no]boot enable-break
|
Setting Baud/ Console line 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 ?
<0-4294967295> Transmit and receive speeds
|
Ignore startup
|
0x2142
|
Switch(config)#system ignore startupconfig
|
Ignores break
|
0x102, 0x2101, 0x2102, 0x2122, 0x2124, 0x2142, 0x2902, 0x2922, 0x3122, 0x3902, 0x3922
|
Switch(config)#[no]boot manual
Switch(config)#[no]boot enable-break
|
Disable password recovery
|
0x102
|
Switch(config)#system disable password recovery
|
Note: If a system running on Cisco IOS-XE fails to boot for 5 consecutive times in less than 25mins of uptime for each reload, then the software auto-sets ROMmon variable MANUAL_BOOT="yes". In other words, if a system fails to boot for any reason it auto boots into ROMmon after 5 consecutive tries.
If both ignore config and disable password recovery is enabled then the respective ROMmon variables are set.
SWITCH_DISABLE_PASSWORD_RECOVERY=1
SWITCH_IGNORE_STARTUP_CFG=1
If both these variables are set, the switch prompts during bootup to confirm before erasing the startup-config.
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 noconfirm