Table Of Contents
Modifying the Switch Boot Configuration
Understanding the Switch Boot Configuration
Understanding the Boot Process
Understanding the ROM Monitor
Understanding the Configuration Register
Understanding the BOOT Environment Variable
Default Switch Boot Configuration
Setting the Configuration Register and BOOT Environment Variable
Setting the Boot Field in the Configuration Register
Setting the ROM-Monitor Console Port Baud Rate
Setting the Switch to Ignore the NVRAM Configuration
Setting the Complete Configuration Register Value
Setting the BOOT Environment Variable
Displaying the Switch Boot Configuration
Clearing the BOOT Environment Variable Settings
Modifying the Switch Boot Configuration
This chapter describes how to modify the switch boot configuration, including the BOOT environment variable and the configuration register.
Note
For complete syntax and usage information for the commands used in this chapter, refer to the Command Reference for your switch.
This chapter consists of these sections:
•
Understanding the Switch Boot Configuration
•
Default Switch Boot Configuration
•
Setting the Configuration Register and BOOT Environment Variable
Understanding the Switch Boot Configuration
These sections describe how the boot configuration works on the Catalyst 5000 series Supervisor Engine III and Catalyst 4000 and 2948G series switches:
•
Understanding the Boot Process
•
Understanding the ROM Monitor
•
Understanding the Configuration Register
•
Understanding the BOOT Environment Variable
Understanding the Boot Process
The boot process on the Catalyst 5000 series Supervisor Engine III and the Catalyst 4000, 2948G, and 2926G series switches involves two software images: ROM monitor and supervisor engine system code. When the switch is powered up or reset, the ROM-monitor code is executed. Depending on the nonvolatile RAM (NVRAM) configuration, the switch either stays in ROM-monitor mode or loads the supervisor engine system code.
Two user-configurable parameters determine how the switch boots: the configuration register and the BOOT environment variable. The configuration register is described in the "Understanding the Configuration Register" section. The BOOT environment variable is described in the "Understanding the BOOT Environment Variable" section.
Understanding the ROM Monitor
The ROM monitor code executes upon switch power-up, reset, or when a fatal exception occurs. The system enters ROM-monitor mode if the switch does not find a valid system image, if the NVRAM configuration is corrupted, or if the configuration register is set to enter ROM-monitor mode. From ROM-monitor mode, you can manually load a system image from Flash memory, from a network server file, or from bootflash.
Note
For complete syntax and usage information for the ROM monitor commands, refer to the Command Reference for your switch.
On the Catalyst 5000 and 2926G series switches, you can enter ROM-monitor mode by restarting the switch and then pressing the Break key during the first 60 seconds of startup. If you are connected through a terminal server, you can escape to the Telnet prompt and enter the send break command to enter ROM-monitor mode.
On the Catalyst 4000 and 2948G series switches, you can enter ROM-monitor mode by restarting the switch and then pressing Control-C during the first five seconds of startup. If you are connected through a terminal server, you can escape to the Telnet prompt and press Control-C to enter ROM-monitor mode.
Note
The Break key is always enabled for 60 seconds after rebooting the system, regardless of whether the configuration-register setting has the Break key disabled.
The following functionality is built into the ROM monitor:
•
Power-on confidence test
•
Hardware initialization
•
Boot capability (allows manual boot and autoboot)
•
Debug utility and crash analysis
•
Monitor call interface (EMT calls—the ROM monitor provides information and some functionality to the running system images via EMT calls)
•
File system (the ROM monitor knows the simple file system and supports the newly developed file system through the dynamic linked file system library [MONLIB])
•
Exception handling
Understanding the Configuration Register
The configuration register determines whether the switch loads an operating system image and where the system image is stored. The configuration register boot field determines if and how the ROM monitor loads a supervisor engine system image at startup. You can modify the boot field to force the switch to boot a particular system image at startup instead of using the default system image.
The lowest four bits (bits 3, 2, 1, and 0) of the 16-bit configuration register form the boot field. The default boot field value is 0x10F. The possible configuration register boot field settings are as follows:
•
When the boot field equals 0000, the switch does not load a system image. Instead, it enters ROM-monitor mode from which you can enter ROM-monitor commands to manually load a system image.
•
When the boot field equals 0001, the switch loads the first valid system image found in onboard Flash memory.
•
When the boot field equals a value between 0010 and 1111, the switch loads the system image specified by boot system commands in the NVRAM configuration. It attempts to boot the image in the order in which you entered the boot system commands. If it cannot boot any image in the BOOT environment variable list, the switch remains in ROM-monitor mode. The exact booting sequence is defined by the ROM monitor.
The function of other bits in the configuration register are as follows:
•
Bit 6 (0x0040): Causes system software to clear NVRAM contents.
•
Bit 7 (0x0080): Enables OEM bit (not used).
•
Bit 8 (0x0100): Disables break.
•
Bit 9 (0x0200): Uses secondary bootstrap (not used by the ROM monitor).
•
Bit 10 (0x0400): Provides IP broadcast with all zeros (not used).
•
Bits 11/12 (0x0800/0x1000): On the Catalyst 5000 and 2926G series switches, provide console line speed: 0/0=9600, 0/1=1200, 1/0=4800, 1/1=2400 (Default is 9600). On the Catalyst 4000 and 2948G series switches, these bits are always set to 0/0 (9600 baud).
•
Bit 13 (0x2000): Boots default Flash software if network boot fails (not used).
•
Bit 14 (0x4000): IP broadcasts do not have network numbers (not used).
•
Bit 15 (0x8000): Enables diagnostic messages and ignores NVRAM contents (not used).
Understanding the BOOT Environment Variable
The BOOT environment variable specifies a list of image files on various devices from which the switch can boot at startup.
You can add several images to the BOOT environment variable to provide a fail-safe boot configuration. If the first file fails to boot the switch, subsequent images specified in the BOOT variable are tried until the switch boots or there are no additional images to attempt to boot. If there is no valid image to boot, the system enters ROM-monitor mode where you can manually specify an image to boot.
The system stores and executes images in the order in which you added them to the BOOT variable. If you want to change the order in which images are tried at startup, you can either prepend and clear images from the BOOT variable to attain the desired order or you can clear the entire BOOT environment variable and then redefine the list in the desired order.
Default Switch Boot Configuration
shows the default switch boot configuration.
Table 17-1 Default Switch Boot Configuration
Feature
|
Default Configuration
|
Configuration register value
|
0x10f
|
Boot method
|
System boots from the image specified in the BOOT environment variable
|
ROM monitor console port baud rate
|
9600 baud1
|
ignore-config parameter
|
Disabled
|
BOOT environment variable
|
Empty
|
Setting the Configuration Register and BOOT Environment Variable
Note
Configuration register and BOOT environment variable settings are not copied automatically to a redundant supervisor engine (if present). You must set these parameters separately for each supervisor engine in the switch.
The following sections describe how to modify the configuration register and BOOT environment variable on the Catalyst 5000 series Supervisor Engine III and Catalyst 4000, 2948G, and 2926G series switches:
•
Setting the Boot Field in the Configuration Register
•
Setting the ROM-Monitor Console Port Baud Rate
•
Setting the Switch to Ignore the NVRAM Configuration
•
Setting the Complete Configuration Register Value
•
Setting the BOOT Environment Variable
•
Displaying the Switch Boot Configuration
•
Clearing the BOOT Environment Variable Settings
Setting the Boot Field in the Configuration Register
You can determine the boot method the switch will use at the next startup by setting the boot field in the configuration register. This command affects only the configuration register bits that control the boot field and leaves the remaining bits unaltered. The following boot methods are supported:
•
ROM monitor—Use the rommon keyword to force the switch to remain in ROM-monitor mode at startup
•
Bootflash—Use the bootflash keyword to cause the switch to boot from the first image stored in the onboard Flash
•
System—Use the system keyword to boot from the image specified in the BOOT environment variable (the default)
Note
We recommend that you use only the rommon and system options to the set boot config-register boot command.
To set the configuration register boot field, perform this task in privileged mode:
Task
|
Command
|
Specify the boot field in the configuration register.
|
set boot config-register boot {rommon | bootflash | system} [mod_num]
|
This example shows how to force the switch to enter ROM-monitor mode at the next startup:
Console> (enable) set boot config-register boot rommon
Configuration register is 0x140
Setting the ROM-Monitor Console Port Baud Rate
On the Catalyst 5000 and 2926G series switches, you can change the console port baud rate used by the ROM monitor. The new baud rate is used the next time the switch is restarted. This command affects only the configuration register bits that control the baud rate and leaves the remaining bits unaltered.
On the Catalyst 4000 and 2948G series switches, you cannot change the ROM monitor console port baud rate; it is always set to 9600 baud.
Note
The baud rate specified in the configuration register is used by the ROM monitor only and is different from the baud rate specified by the set system baud command.
To change the ROM-monitor console port baud rate in the configuration register, perform this task in privileged mode:
Task
|
Command
|
Change the ROM-monitor console port baud rate in the configuration register.
|
set boot config-register baud {1200 | 2400 | 4800 | 9600} [mod_num]
|
This example shows how to change the ROM-monitor console port baud rate in the configuration register to 2400:
Console> (enable) set boot config-register baud 2400
Configuration register is 0x190f
boot: image specified by the boot system commands
Setting the Switch to Ignore the NVRAM Configuration
You can cause the system software to ignore the configuration information stored in NVRAM the next time the switch is restarted. This command affects only the configuration register bits that control whether the switch ignores the NVRAM configuration and leaves the remaining bits unaltered. This command affects the next system restart only.
|
|
Caution  Enabling the ignore-config parameter is the same as entering the clear config all command; that is, it clears the entire configuration stored in NVRAM the next time the switch is restarted.
|
To set the switch to ignore the NVRAM configuration at the next startup, perform this task in privileged mode:
Task
|
Command
|
Set the switch to ignore the contents of NVRAM at startup.
|
set boot config-register ignore-config enable
|
This example shows how to set the switch to ignore the NVRAM configuration at the next startup:
Console> (enable) set boot config-register ignore-config enable
Configuration register is 0x14f
boot: image specified by the boot system commands
Setting the Complete Configuration Register Value
To set the entire configuration register value, perform this task in privileged mode:
Task
|
Command
|
Set the configuration register.
|
set boot config-register 0xvalue [mod_num]
|
This example shows how to set the configuration register value to 0x90f:
Console> (enable) set boot config-register 0x90f
Configuration register is 0x90f
boot: image specified by the boot system commands
Setting the BOOT Environment Variable
To set the BOOT environment variable, perform this task in privileged mode:
Task
|
Command
|
Specify a system image to add to the BOOT environment variable.
|
set boot system flash device:[filename] [prepend] [mod_num]
|
This example shows how to add system images to the BOOT environment variable:
Console> (enable) set boot system flash bootflash:cat5000-sup3.3-2-1b.bin
BOOT variable = bootflash:cat5000-sup3.3-2-1b.bin,1;
Console> (enable) set boot system flash bootflash:cat5000-sup3.4-1-2.bin
BOOT variable = bootflash:cat5000-sup3.3-2-1b.bin,1;bootflash:cat5000-sup3.4-1
Console> (enable) set boot system flash slot0:cat5000-sup3.4-2-1.bin prepend
BOOT variable = slot0:cat5000-sup3.4-2-1.bin,1;bootflash:cat5000-sup3.3-2-1b.
bin,1;bootflash:cat5000-sup3.4-1-2.bin,1;
Displaying the Switch Boot Configuration
To display the current configuration register and BOOT environment variable settings, perform this task:
Task
|
Command
|
Display the current configuration register and BOOT environment variable settings.
|
show boot [mod_num]
|
This example shows how to display the current configuration register and BOOT environment variable settings:
Console> (enable) show boot
BOOT variable = slot0:cat5000-sup3.4-2-1.bin,1;bootflash:cat5000-sup3.3-2-1b.
bin,1;bootflash:cat5000-sup3.4-1-2.bin,1;
Configuration register is 0x10f
boot: image specified by the boot system commands
Clearing the BOOT Environment Variable Settings
To clear entries from the BOOT environment variable, perform one of these tasks in privileged mode:
Task
|
Command
|
• Clear a specific image from the BOOT environment variable.
|
clear boot system flash device:[filename] [mod_num]
|
• Clear the entire BOOT environment variable.
|
clear boot system all [mod_num]
|
This example shows how to clear a specific entry from the BOOT environment variable:
Console> (enable) clear boot system flash bootflash:cat5000-sup3.3-2-1b.bin
BOOT variable = slot0:cat5000-sup3.4-2-1.bin,1;bootflash:cat5000-sup3.4-1-2.bin,1;
This example shows how to clear the entire BOOT environment variable:
Console> (enable) clear boot system all