show boot
Verify which IOS image is set to boot and confirm the configuration register value controls the boot process correctly.
Definition: show boot is a Cisco IOS privileged exec command. Displays the current boot system configuration including the IOS image file the router will load on next reload, the configuration register setting, and BOOT environment variable.
Overview
The 'show boot' command in Cisco IOS is a vital diagnostic tool that displays the current boot settings of a router or switch, including the boot system commands configured in the startup configuration and the location of the startup configuration file itself. This command is essential for verifying and troubleshooting the device's boot process, ensuring that the correct IOS image is loaded and that the device boots from the intended configuration file. Understanding the boot process is fundamental for network engineers because a misconfigured boot setting can lead to device failure to boot, loading an incorrect IOS version, or booting from a backup configuration that may be outdated or incorrect.
The command provides a snapshot of the boot variables, such as the BOOT variable (which lists the IOS images to attempt to load), the configuration register setting (which controls boot behavior like ignoring startup config or entering ROMmon mode), and the location of the startup config (usually NVRAM or a remote server). Network engineers reach for 'show boot' when they need to confirm that a new IOS image upgrade will take effect after reload, when troubleshooting a device that fails to boot properly, or when verifying that the device will boot from a specific configuration file (e.g., for disaster recovery). Alternatives include 'show version' (which shows the currently running IOS but not the boot settings), 'show running-config | include boot' (which shows boot system commands in the running config), and 'dir' commands to check file systems.
However, 'show boot' consolidates all boot-related information in one concise output. In the broader workflow, 'show boot' is typically used before a reload to verify that the intended boot image and config are set, and after a reload to confirm the device booted as expected. It is also used during initial device deployment to ensure the boot settings are correctly configured.
The command is available in privileged EXEC mode (enable mode) and does not require any special privilege level beyond 15. It does not affect the running configuration or the device's operation; it is purely a display command. The output is buffered and may be lengthy if multiple boot system commands are configured.
It is important to note that the boot system commands in the running configuration are not used until they are saved to the startup configuration and the device is reloaded. Therefore, 'show boot' reads from the startup configuration, not the running config. This distinction is crucial for troubleshooting: if you change boot settings in running config but do not save them, 'show boot' will still show the old settings.
In summary, 'show boot' is a cornerstone command for any network engineer managing Cisco devices, providing clear visibility into the boot process and ensuring that devices boot reliably and predictably.
show bootWhen to Use This Command
- Confirm the correct IOS image is set before a planned maintenance reload
- Verify configuration register is 0x2102 (normal boot from flash) vs 0x2142 (password recovery mode)
- Check BOOT variable after using boot system commands to change the startup image
- Troubleshoot a router booting wrong image after an upgrade
Command Examples
Typical show boot output
Router# show boot SYSBOOT: flash:/c2900-universalk9-mz.SPA.155-3.M4a.bin Configuration register is 0x2102 Enable Break: yes Manual boot: no Wait for Enbl: 5 (seconds) Boot Variables on next reload: BOOT variable = flash:/c2900-universalk9-mz.SPA.155-3.M4a.bin
Understanding the Output
SYSBOOT line shows the currently running image path. Boot Variables on next reload shows what will load after reload — if different from current, the router will switch images. Configuration register 0x2102 = normal operation. 0x2142 = ignores startup config (password recovery). 0x2100 = ROMMON only.
Configuration Scenarios
Configure boot system to load a specific IOS image from flash
A network engineer needs to ensure that a Cisco router boots from a specific IOS image stored in flash memory, perhaps after an upgrade or to revert to a previous version. This scenario demonstrates how to set the BOOT variable to point to a specific image file.
Topology
Single router (R1) with flash containing multiple IOS images.Steps
- 1.Step 1: Enter global configuration mode: configure terminal
- 2.Step 2: Specify the IOS image to boot: boot system flash flash0:c2900-universalk9-mz.SPA.157-3.M8.bin
- 3.Step 3: (Optional) Add a fallback image: boot system flash flash0:c2900-universalk9-mz.SPA.152-4.M7.bin
- 4.Step 4: Exit configuration mode and save the configuration: end, write memory
- 5.Step 5: Verify the boot settings: show boot
! configure terminal boot system flash flash0:c2900-universalk9-mz.SPA.157-3.M8.bin boot system flash flash0:c2900-universalk9-mz.SPA.152-4.M7.bin end write memory !
Verify: Use 'show boot' to confirm the BOOT variable lists the images in order. Expected output includes lines like: BOOT variable = flash0:c2900-universalk9-mz.SPA.157-3.M8.bin;flash0:c2900-universalk9-mz.SPA.152-4.M7.bin Configuration register is 0x2102
Watch out: A common mistake is forgetting to save the configuration with 'write memory' or 'copy running-config startup-config'. The 'show boot' command reads from the startup configuration, so if you don't save, the boot settings will not be applied after reload.
Configure boot system to load IOS from a TFTP server
In a scenario where flash memory is corrupted or insufficient, a router can be configured to boot an IOS image from a TFTP server. This is often used for network boot or recovery. The engineer must ensure network connectivity and TFTP server availability.
Topology
R1(Gi0/0)---192.168.1.0/24---TFTP Server (192.168.1.100)Steps
- 1.Step 1: Enter global configuration mode: configure terminal
- 2.Step 2: Specify the TFTP server and image: boot system tftp://192.168.1.100/c2900-universalk9-mz.SPA.157-3.M8.bin
- 3.Step 3: Ensure the router has an IP address on the interface connected to the TFTP server: interface GigabitEthernet0/0, ip address 192.168.1.1 255.255.255.0, no shutdown
- 4.Step 4: Exit and save: end, write memory
- 5.Step 5: Verify: show boot
! configure terminal boot system tftp://192.168.1.100/c2900-universalk9-mz.SPA.157-3.M8.bin interface GigabitEthernet0/0 ip address 192.168.1.1 255.255.255.0 no shutdown end write memory !
Verify: Use 'show boot' to see the BOOT variable pointing to the TFTP URL. Also verify connectivity with 'ping 192.168.1.100'. Expected output: BOOT variable = tftp://192.168.1.100/c2900-universalk9-mz.SPA.157-3.M8.bin Configuration register is 0x2102
Watch out: A common mistake is not configuring the IP address on the interface or having a misconfigured default gateway. The router must be able to reach the TFTP server during boot, which requires the interface to be up and have an IP in the same subnet as the server, or a static route if the server is on a different subnet.
Troubleshooting with This Command
When troubleshooting boot issues, 'show boot' is the first command to run. Healthy output shows a clear BOOT variable with valid file paths or URLs, a configuration register set to 0x2102 (which means boot from flash, ignore break, and use startup config), and the startup configuration file location pointing to NVRAM or a valid file. Problem indicators include: an empty BOOT variable (meaning the router will use the first image in flash, which might be incorrect), a BOOT variable pointing to a non-existent file (e.g., typo in filename), a configuration register set to 0x2142 (which ignores startup config, causing the router to boot to factory defaults), or a startup config location showing 'unknown' or a file that doesn't exist.
Focus on the 'BOOT variable' field: if it lists multiple images, the router tries them in order; if none succeed, it enters ROMmon mode. Also check the 'Configuration register' field: common values are 0x2102 (normal), 0x2142 (ignore startup config), and 0x2100 (boot to ROMmon). If the router boots to ROMmon, 'show boot' is not available; instead, use 'set' to view boot variables.
Common symptoms: router boots to ROMmon (often due to missing or corrupt IOS image), router boots with factory defaults (configuration register 0x2142), or router loads an unexpected IOS version (BOOT variable points to wrong image). Step-by-step diagnostic flow: 1) Connect via console and observe boot messages. 2) If router boots to prompt, run 'show boot' to check settings. 3) If BOOT variable is empty, check flash contents with 'dir flash0:' to see available images. 4) If BOOT variable has a file, verify the file exists with 'dir flash0:<filename>'. 5) If the file is missing, correct the boot system command or copy a valid image to flash. 6) If configuration register is wrong, use 'config-register 0x2102' to set it back. 7) After making changes, save and reload. Correlate 'show boot' output with 'show version' (to see current IOS and uptime), 'show flash' (to list files), and 'debug boot' (to see boot process in real time).
For example, if 'show boot' shows a valid BOOT variable but the router still boots to ROMmon, use 'debug boot' during reload to see which image it attempts to load and any error messages. In summary, 'show boot' is the cornerstone of boot troubleshooting, providing a clear picture of what the router intends to do at next reload.
CCNA Exam Tips
CCNA exam: 0x2102 is the default and normal configuration register. 0x2142 is used for password recovery (ignores startup-config so you can bypass enable password)
After password recovery, change config-register back to 0x2102 with config-register 0x2102 in global config
Common Mistakes
Leaving config-register at 0x2142 after password recovery — router permanently ignores startup-config
Confusing show boot (next boot image) with show version (currently running image and uptime)
Not saving boot system commands with write memory before reload
show boot vs show inventory
While both show boot and show inventory are system-level commands used during troubleshooting and documentation, they serve distinct purposes. show boot focuses on the boot process and configuration, whereas show inventory provides a detailed hardware list. They are often confused because both may be used to verify system identity, but show boot is related to software boot settings and show inventory to physical hardware.
| Aspect | show boot | show inventory |
|---|---|---|
| Scope | Boot system settings | Hardware components |
| Data Source | Boot variables and config register | Hardware inventory database |
| Persistence | Configuration persists across reloads | Read-only hardware information |
| Typical Use | Verify next boot image and config register | Identify hardware PIDs, VIDs, serial numbers |
| Impact on Operations | Helps troubleshoot boot issues | Helps inventory management and RMA |
Use show boot when verifying which IOS image will load on next reload or checking the configuration register setting.
Use show inventory when documenting hardware components for asset management or troubleshooting hardware compatibility issues.
Platform Notes
In IOS-XE (e.g., Catalyst 9000 switches), the 'show boot' command syntax and output are similar but may include additional fields like 'BOOT path-list' and 'Configuration register' is often displayed as 'BOOT variable' and 'Configuration register'. The command is available in privileged EXEC mode. In NX-OS (e.g., Nexus switches), the equivalent command is 'show boot' as well, but the output format differs: it shows 'sup-1' and 'sup-2' boot variables for dual-supervisor modules, and the configuration register is not displayed (instead, 'boot mode' is shown).
The NX-OS command also includes 'kickstart' and 'system' image settings. For ASA firewalls, the equivalent is 'show boot' but it displays the boot image location and configuration register; however, ASA uses a different boot process (e.g., 'boot system disk0:/asa9-12-4-smp-k8.bin'). In IOS-XR (e.g., ASR 9000), the command is 'show boot' but it shows the 'boot variable' and 'configuration register' in a different format; IOS-XR also has 'show running-config' for boot settings.
Between IOS versions, the output has remained largely consistent from 12.x to 15.x and 16.x, though newer versions may show additional fields like 'BOOT variable = flash:packages.conf' for IOS-XE. On older IOS (12.x), the command may not show the 'startup configuration file location' field; that was added in later versions. Always check the specific platform documentation for exact syntax.
Related Commands
dir
Lists files in the specified filesystem (flash, NVRAM, USB, bootflash). Shows file names, sizes in bytes, dates, and total/free space available.
reload
Restarts the Cisco device, loading the IOS image specified by show boot and the startup configuration from NVRAM. Can be scheduled for a future time using 'reload in' or 'reload at'.
show inventory
Displays hardware inventory including chassis, modules, power supplies, and fan trays with their product IDs (PIDs), version IDs (VIDs), and serial numbers.
Practice for the CCNA 200-301
Test your knowledge with practice questions covering all CCNA 200-301 exam domains.
Practice CCNA 200-301 Questions