Introduction
This document describes how to recover a Catalyst 9800 controller based on ROMMON mode and no image in the flash.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
- Catalyst Wireless Controllers 9800
Components Used
The information in this document is based on these software and hardware versions:
- Catalyst 9800 version 16.10.1
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.
Configure
Password Recovery Procedure for Virtual 9800 (9800-CL)
Step 1. Reboot the 9800-CL. You quickly see a boot selection screen:

Step 2. Press C on this screen to get the grub prompt.
Step 3. You can change the config register in that prompt with the config 0x2142
command.

Step 4. Press the ESC key to return to the boot selection prompt and chose the packages.conf
to boot on the regular image.
Step 5. Your WLC boots without configuration. Recover it.
Step 6. Do not forget to repeat the Procedure from step 1 and to set the config register back to the original value of 0x2002 so that the configuration gets saved and loaded upon reboots.
Password Recovery Procedure for Appliance via ROMMON
Step 1. Send break key when you see ##### printed on the console for the system that loads the image. Then, the system breaks the bootup process and goes to the ROMMON prompt. You can either do this when you press break or ctrl+break on the keyboard. You can also send the break from terminal program (for example, Putty Special Command > Break, Teraterm Control > Send Break).
Caution: Password recovery requires the system to be dropped into ROMMON. In classic Cisco IOS®, the config-register setting determines whether the system could return to ROMMON. A config-register of 0x2102 would prevent return to ROMMON when break is issued. By default, all 9800 appliances (9800-40, 9800-80, 9800-L) have the config-register set 0x2102. However, since they run Linux based Cisco IOS XE®, this is ignored and the only way to prevent return to ROMMON is to configure the command no service password-recovery.
Caveat: On 9800-L that runs ROMMON older than 16.12(3r), this bit in config-register prevents break into ROMMON to do password-recovery.
Fix: If you run older ROMMON, upgrade ROMMON with instructions documented at: Upgrade Field Programmables for Cisco Catalyst 9800-L Wireless Controller
Workaround: If upgrade cannot be done; modify the config-register to 0x2002 as a workaround and prevent lock out of ROMMON.
File size is 0x01d191f3
Located C9800-rpboot.16.10.01.SPA.pkg
Image size 30511603 inode num 874837, bks cnt 7450 blk size 8*512
################################################################################
################################################################################
################################################################################
##########################################################
Boot image size = 30511603 (0x1d191f3) bytes
ROM:RSA Self Test Passed
ROM:Sha512 Self Test Passed
Package header rev 3 structure detected
Calculating SHA-1 hash...done
validate_package_cs: SHA-1 hash:
calculated e36f46af:2c06b38d:eeb6e65b:ffaeb429:a6982d29
expected e36f46af:2c06b38d:eeb6e65b:ffaeb429:a6982d29
Validating main package signatures
monitor: command "boot" aborted due to user interrupt
rommon 1 >
Step 2.Change config register to 0x2142 with the confreg 0x2142
command from ROMMON prompt.
rommon 1 > confreg 0x2142
You must reset or power cycle for new config to take effect
Step 3. To save rommon config change, execute sync
at the rommon prompt, reset
rommon to applied change from rommon prompt.
rommon 2 > sync
rommon 3 > reset
Resetting .......
Initializing Hardware ...
System integrity status: 90170200 12030107
System Bootstrap, Version 16.10(2r), RELEASE SOFTWARE
Copyright (c) 1994-2018 by cisco Systems, Inc.
Current image running: Boot ROM0
Last reset cause: LocalSoft
C9800-40-K9 platform with 33554432 Kbytes of main memory
File size is 0x000015c9
Located packages.conf
Image size 5577 inode num 874834, bks cnt 2 blk size 8*512
#
File size is 0x01d191f3
Located C9800-rpboot.16.10.01.SPA.pkg
Image size 30511603 inode num 874837, bks cnt 7450 blk size 8*512
################################################################################
################################################################################
################################################################################
##########################################################
Boot image size = 30511603 (0x1d191f3) bytes
ROM:RSA Self Test Passed
ROM:Sha512 Self Test Passed
Package header rev 3 structure detected
Calculating SHA-1 hash...done
validate_package_cs: SHA-1 hash:
calculated e36f46af:2c06b38d:eeb6e65b:ffaeb429:a6982d29
expected e36f46af:2c06b38d:eeb6e65b:ffaeb429:a6982d29
Validating main package signatures
RSA Signed RELEASE Image Signature Verification Successful.
Image validated
Jun 21 02:30:21.565: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable u
sed for process bt_logger
Jun 21 02:30:24.561: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable u
sed for process bt_logger
Both links down, not waiting for other chassis
Chassis number is 1
Jun 21 02:30:25.327: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable u
sed for process bt_logger
Jun 21 02:30:27.293: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable u
sed for process bt_logger
Jun 21 02:30:33.770: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable u
sed for process bt_logger
Jun 21 02:30:37.045: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable u
sed for process bt_logger
Restricted Rights Legend
Use, duplication, or disclosure by the Government is
subject to restrictions as set forth in subparagraph
(c) of the Commercial Computer Software - Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
(c) (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS sec. 252.227-7013.
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134-1706
Cisco IOS Software [Gibraltar], C9800 Software (C9800_IOS XE), Version 16.10.1, R
ELEASE SOFTWARE (fc4)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2018 by Cisco Systems, Inc.
Compiled Mon 19-Nov-18 08:27 by mcpre
PLEASE READ THE FOLLOWING TERMS CAREFULLY. INSTALLING THE LICENSE OR
LICENSE KEY PROVIDED FOR ANY CISCO SOFTWARE PRODUCT, PRODUCT FEATURE,
AND/OR SUBSEQUENTLY PROVIDED SOFTWARE FEATURES (COLLECTIVELY, THE
"SOFTWARE"), AND/OR WITH SUCH SOFTWARE CONSTITUTES YOUR FULL
ACCEPTANCE OF THE FOLLOWING TERMS. YOU MUST NOT PROCEED FURTHER IF YOU
ARE NOT WILLING TO BE BOUND BY ALL THE TERMS SET FORTH HEREIN.
Your use of the Software is subject to the Cisco End User License Agreement
(EULA) and any relevant supplemental terms (SEULA) found at
http://www.cisco.com/c/en/us/about/legal/cloud-and-software/software-terms.html.
You hereby acknowledge and agree that certain Software and/or features are
licensed for a particular term, that the license to such Software and/or
features is valid only for the applicable term and that such Software and/or
features may be shut down or otherwise terminated by Cisco after expiration
of the applicable license term (for example, 90-day trial period). Cisco reserves
the right to terminate any such Software feature electronically or by any
other means available. While Cisco may provide alerts, it is your sole
responsibility to monitor your usage of any such term Software feature to
ensure that your systems and networks are prepared for a shutdown of the
Software feature.
cisco C9800-40-K9 (1GL) processor (revision 1GL) with 7866660K/6147K bytes of me
mory.
FIPS: Flash Key Check : Key Not Found, FIPS Mode Not Enabled
Processor board ID TTM22500DAL
1 Virtual Ethernet interface
4 Ten Gigabit Ethernet interfaces
32768K bytes of non-volatile configuration memory.
33554432K bytes of physical memory.
26255359K bytes of eUSB flash at bootflash:.
234365527K bytes of SATA hard disk at hard disk:.
0K bytes of WebUI ODM Files at webui:.
Base Ethernet MAC Address : D4:C9:3C:CC:F2:E0
Installation mode is INSTALL
Press RETURN to get started!
*Jun 21 02:31:00.165: %IOS XE_PLATFORM-3-WDC_NOT_FOUND: WDC returned length: 0
*Jun 21 02:31:00.185: %SMART_LIC-6-EXPORT_CONTROLLED: Usage of export controlled
features is not allowedAdding registry invocations for the WLC platform
*Jun 21 02:31:01.743: %SMART_LIC-6-AGENT_READY: Smart Agent for Licensing is ini
tialized
*Jun 21 02:31:01.743: %SMART_LIC-6-AGENT_ENABLED: Smart Agent for Licensing is e
nabled
*Jun 21 02:31:01.743: %SMART_LIC-6-EXPORT_CONTROLLED: Usage of export controlled
features is not allowed
*Jun 21 02:31:04.732: mcp_pm_subsys_init : Init done sucessfullyRA Tracing tool
registry return: 0SID Manager, starting initialization ...
*Jun 21 02:31:05.511: Notifications initializedSID Manager, completed initializa
tion ...
*Jun 21 02:31:07.298: %SPANTREE-5-EXTENDED_SYSID: Extended SysId enabled for typ
e vlan
*Jun 21 02:31:08.999: %CRYPTO-4-AUDITWARN: Encryption audit check could not be p
erformed
*Jun 21 02:31:09.081: %VOICE_HA-7-STATUS: CUBE HA-supported platform detected.
*Jun 21 02:31:09.317: %IOSXE_VMAN-3-MSGINITFAIL: Failed to initialize required V
irt-manager resource: Initalize MQIPC
*Jun 21 02:31:09.333: mcp_pm_init_done : Called
*Jun 21 02:31:09.338: %LINK-3-UPDOWN: Interface Lsmpi0, changed state to up
*Jun 21 02:31:09.345: %LINK-3-UPDOWN: Interface EOBC0, changed state to up
*Jun 21 02:31:09.345: %LINEPROTO-5-UPDOWN: Line protocol on Interface VoIP-Null0
, changed state to up
*Jun 21 02:31:09.346: %LINEPROTO-5-UPDOWN: Line protocol on Interface LI-Null0,
changed state to up
*Jun 21 02:31:09.346: %LINK-3-UPDOWN: Interface GigabitEthernet0, changed state
to down
*Jun 21 02:31:09.351: %LINK-3-UPDOWN: Interface LIIN0, changed state to up
*Jun 21 02:30:33.738: %PMAN-3-PROC_EMPTY_EXEC_FILE: Chassis 1 R0/0: pvp: Empty e
xecutable used for process bt_logger
*Jun 21 02:30:37.011: %PMAN-3-PROC_EMPTY_EXEC_FILE: Chassis 1 R0/0: pvp: Empty e
xecutable used for process bt_logger
*Jun 21 02:30:39.576: %CMFP-6-CRYPTO_MODULE: Chassis 1 R0/0: cman_fp: Crypto Har
dware Module is present
*Jun 21 02:31:01.754: %LMRP-3-RTU_UNINITIALIZED: Chassis 1 R0/0: lman: RTU not y
et initialized: stack enabled 0
*Jun 21 02:31:09.489: %SMART_LIC-6-HA_ROLE_CHANGED: Smart Agent HA role changed
to Active.
*Jun 21 02:31:10.295: %IOSXE_MGMTVRF-6-CREATE_SUCCESS_INFO: Management vrf Mgmt-
intf created with ID 1, ipv4 table-id 0x1, ipv6 table-id 0x1E000001
*Jun 21 02:31:10.344: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, cha
nged state to down
*Jun 21 02:31:10.345: %LINEPROTO-5-UPDOWN: Line protocol on Interface Lsmpi0, ch
anged state to up
*Jun 21 02:31:10.394: %LINEPROTO-5-UPDOWN: Line protocol on Interface EOBC0, cha
nged state to up
*Jun 21 02:31:10.394: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEth
ernet0, changed state to down
*Jun 21 02:31:10.394: %LINEPROTO-5-UPDOWN: Line protocol on Interface LIIN0, cha
nged state to up
*Jun 21 02:31:10.966: %ONEP_BASE-6-SS_ENABLED: ONEP: Service set Base was enable
d by Default
*Jun 21 02:31:12.842: %SYS-6-STARTUP_CONFIG_IGNORED: System startup configuratio
n is ignored based on the configuration register setting.
*Jun 21 02:31:12.854: %IOSXE_OIR-6-REMSPA: SPA removed from subslot 0/0, interfa
ces disabled
*Jun 21 02:31:12.913: %SPA_OIR-6-OFFLINECARD: SPA (BUILT-IN-4X10G/1G) offline in
subslot 0/0
*Jun 21 02:31:12.919: %IOSXE_OIR-6-INSCARD: Card (fp) inserted in slot F0
*Jun 21 02:31:12.920: %IOSXE_OIR-6-ONLINECARD: Card (fp) online in slot F0
*Jun 21 02:31:12.946: %IOSXE_OIR-6-INSCARD: Card (cc) inserted in slot 0
*Jun 21 02:31:12.946: %IOSXE_OIR-6-ONLINECARD: Card (cc) online in slot 0
*Jun 21 02:31:13.111: % Redundancy mode change to SSO
*Jun 21 02:31:13.112: %VOICE_HA-7-STATUS: NONE->SSO; SSO mode can not take effe
ct until after a platform reload.
*Jun 21 02:31:13.231: %IOSXE_OIR-6-INSSPA: SPA inserted in subslot 0/0
*Jun 21 02:31:14.793: %SYS-5-RESTART: System restarted --
Cisco IOS Software [Gibraltar], C9800 Software (C9800_IOSXE), Version 16.10.1, R
ELEASE SOFTWARE (fc4)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2018 by Cisco Systems, Inc.
Compiled Mon 19-Nov-18 08:27 by mcpre
*Jun 21 02:31:14.834: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF
*Jun 21 02:31:14.834: %CRYPTO-6-GDOI_ON_OFF: GDOI is OFF
*Jun 21 02:31:16.976: %LINK-3-UPDOWN: Interface GigabitEthernet0, changed state
to up
*Jun 21 02:31:17.079: %SYS-6-BOOTTIME: Time taken to reboot after reload = 325
seconds
*Jun 21 02:31:17.977: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEth
ernet0, changed state to up
*Jun 21 02:31:21.579: %SPA_OIR-6-ONLINECARD: SPA (BUILT-IN-4X10G/1G) online in s
ubslot 0/0
*Jun 21 02:31:21.638: %IOSXE_SPA-6-UPDOWN: Interface TenGigabitEthernet0/0/0, li
nk down due to remote fault
*Jun 21 02:31:21.708: %IOSXE_SPA-6-UPDOWN: Interface TenGigabitEthernet0/0/1, li
nk down due to local fault
*Jun 21 02:31:21.748: %IOSXE_SPA-6-UPDOWN: Interface TenGigabitEthernet0/0/2, li
nk down due to local fault
*Jun 21 02:31:21.788: %IOSXE_SPA-6-UPDOWN: Interface TenGigabitEthernet0/0/3, li
nk down due to local fault
*Jun 21 02:31:21.855: %PNP-6-PNP_DISCOVERY_STOPPED: PnP Discovery stopped (Start
up Config Present)
*Jun 21 02:31:23.541: %LINK-3-UPDOWN: Interface TenGigabitEthernet0/0/0, changed
state to down
*Jun 21 02:31:23.571: %LINK-3-UPDOWN: Interface TenGigabitEthernet0/0/1, changed
state to down
*Jun 21 02:31:23.572: %LINK-3-UPDOWN: Interface TenGigabitEthernet0/0/2, changed
state to down
*Jun 21 02:31:23.575: %LINK-3-UPDOWN: Interface TenGigabitEthernet0/0/3, changed
state to down
*Jun 21 02:31:24.680: %IOSXE_SPA-6-UPDOWN: Interface TenGigabitEthernet0/0/0, li
nk down due to local fault
*Jun 21 02:31:23.618: %LINK-3-UPDOWN: SIP0/0: Interface TenGigabitEthernet0/0/0,
changed state to down
*Jun 21 02:31:29.036: %PKI-2-NON_AUTHORITATIVE_CLOCK: PKI functions can not be i
nitialized until an authoritative time source, like NTP, can be obtained.
*Jun 21 02:31:29.491: %LINK-3-UPDOWN: Interface TenGigabitEthernet0/0/0, changed
state to up
*Jun 21 02:31:30.492: %LINEPROTO-5-UPDOWN: Line protocol on Interface TenGigabit
Ethernet0/0/0, changed state to up
*Jun 21 02:31:29.491: %LINK-3-UPDOWN: SIP0/0: Interface TenGigabitEthernet0/0/0,
changed state to up
*Jun 21 02:31:30.495: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, cha
nged state to up
*Jun 21 02:31:37.119: %CRYPTO_ENGINE-5-KEY_ADDITION: A key named CISCO_IDEVID_SU
DI_LEGACY has been generated or imported by pki-sudi
*Jun 21 02:31:39.050: %CRYPTO_ENGINE-5-KEY_ADDITION: A key named CISCO_IDEVID_SU
DI has been generated or imported by pki-sudi
Step 4. Now system boots without any config. Ignore startup config wizard.
Step 5. Once system comes up, copy startup-config to running-config.
Step 6. Reconfigure enable password or log in credentials, and check if you can access the device via telnet or ssh.
C9800-40#telnet 172.22.175.1
Trying 172.22.175.1 ... Open
User Access Verification
Username: admin
Password:
C9800-40#
Step 7. Change config-register back to 0x2002.
C9800-40(config)#config-register 0x2002
Note: Do not use 0x2102. With 0x2102, you are not allowed to send break anymore.
Step 8. Save config.
C9800-40#write memory
Building configuration...
[OK]
Password Recovery Procedure for Appliance via USB
Boot the WLC from ROMMON
If you get stuck in ROMMON and boot does not work:
rommon 12 > boot
File size is 0x0001dfe6
Located memleak.tcl
Image size 122854 inode num 12, bks cnt 30 blk size 8*512
##
Boot image size = 122854 (0x1dfe6) bytes
Unsigned package found, aborting package loading...
Failed to Free memory block at address 0x00000000cd50b000
File size is 0x00000023
Located pnp-tech-time
Image size 35 inode num 13, bks cnt 1 blk size 8*512
Boot image size = 35 (0x23) bytes
Unsigned package found, aborting package loading...
Failed to Free memory block at address 0x00000000cd4d3000
File size is 0x0001ad3f
Located pnp-tech-discovery-summary
Image size 109887 inode num 14, bks cnt 27 blk size 8*512
#
Boot image size = 109887 (0x1ad3f) bytes
Unsigned package found, aborting package loading...
Failed to Free memory block at address 0x00000000cd49b000
File size is 0x00000268
Located vlan.dat
Image size 616 inode num 15, bks cnt 1 blk size 8*512
Boot image size = 616 (0x268) bytes
Unsigned package found, aborting package loading...
Failed to Free memory block at address 0x00000000cd463000
boot: cannot determine first file name on device "bootflash:/"
rommon 13 >
The flash does not have any image to boot from:
rommon 13 > dir bootflash:
File System: EXT2/EXT3
11 16384 drwx------ lost+found
850305 4096 drwxr-xr-x .installer
588673 4096 drwxrwxrwx .prst_sync
948417 4096 drwxr-xr-x .rollback_timer
1381745 4096 drwxr-xr-x dc_profile_dir
12 122854 -rw-r--r-- memleak.tcl
506913 4096 drwxr-x--- vman_fdb
670433 4096 drwxr-xr-x .dbpersist
793073 4096 drwxr-xr-x onep
13 35 -rw-r--r-- pnp-tech-time
14 109887 -rw-r--r-- pnp-tech-discovery-summary
15 616 -rw-r--r-- vlan.dat
You can recover the box by either:
- Loading an image through a USB pen drive.
- Loading an image through Gigabit0 (out of band management interface).
Load Image through USB
Step 1. Have a USB pen drive with the .bin file loaded to the 9800 controller. (on 9800-80, due to Cisco bug ID CSCvn82287, a USB 3.0 flash drive cannot be recognized in ROMMON).
Note: The procedure is the same in case of a virtual 9800-CL, but you have to plug the USB drive on the VMhost and map it to the VM.
Step 2. Connect the USB driver to the USB port 0 of the 9800.
Front view:

Step 3. Log in from the console to the controller and ensure it can read the USB.
rommon 19 > dir usb0:
File System: FAT32
!
!--Output omitted--
!
335644 1009389904-rw- <filename>SSA.bin
Step 4. Configure the 9800 to boot from the USB image.
rommon 21 > boot usb0:<filename>.bin
Located qwlc-universalk9_wlc.BLD_V169_THROTTLE_LATEST_20180601_191011.SSA.bin, start cluster is 335644
########################################################################################################
########################################################################################################
########################################################################################################
Step 5. Once the 9800 runs, copy the image from the USB to the bootflash:
WLC# copy usb0:<filename>.bin bootflash:
Destination filename [qwlc-universalk9_wlc.BLD_V169_THROTTLE_LATEST_20180601_191011.SSA.bin]?
Copy in progress...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Step 6. Change the 9800 from bundle mode to install mode.
When you boot the controller from a USB, it boots in Bundle mode:
!
!--Output omitted--
!
FIPS: Flash Key Check : Key Not Found, FIPS Mode Not Enabled
Processor board ID TTM22071510
1 Virtual Ethernet interface
4 Ten Gigabit Ethernet interfaces
32768K bytes of non-volatile configuration memory.
33554432K bytes of physical memory.
26910719K bytes of eUSB flash at bootflash:.
234365527K bytes of SATA hard disk at hard disk:.
15243680K bytes of USB flash at usb0:.
0K bytes of WebUI ODM Files at webui:.
Base Ethernet MAC Address : 00:A3:8E:23:A2:40
Installation mode is BUNDLE
%INIT: waited 0 seconds for NVRAM to be available
From 16.12, in the UI, you can chose to move to INSTALL mode at the next upgrade. Provide any software file, which includes current release to move to INSTALL mode.
Step 7. Edit the boot variable if it does not point towards a packages.conf file already.
WLC#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
WLC(config)#no boot system
WLC(config)#boot system bootflash:packages.conf
WLC(config)#end
WLC#write
Building configuration...
[OK]
WLC#show boot
BOOT variable = flash:packages.conf,12;
CONFIG_FILE variable does not exist
BOOTLDR variable does not exist
Configuration register is 0x2102
Standby not ready to show bootvar
Make sure that the config register is 0x2002.
Step 8. Reload the WLC:
WLC#reload
After this, the controller boots up in Install mode.
WLC#show version
!
!--Output omitted--
!
Installation mode is INSTALL Configuration register is 0x2002
Load an Image from TFTP
To load an image from the network, you must have the GigabitEthernet0 management port physically connected to an access port.
From the ROMMON, you can verify the variables at any time with command set
.
rommon 1 > set
PS1=rommon ! >
?=0
DEFAULT_GATEWAY=10.1.1.1
ETHER_SPEED_MODE=4
TFTP_RETRY_COUNT=36
SWITCH_NUMBER=1
DLC_DONE=TRUE
RET_2_RTS=
RET_2_RCALTS=
MCP_STARTUP_TRACEFLAGS=00000000:00000000
TFTP_MACADDR=00:db:ad:ba:d0:52
IP_SUBNET_MASK=255.255.255.0
IP_ADDRESS=10.1.1.152
TFTP_SERVER=10.1.1.1
TFTP_FILE=C9800-80-universalk9_wlc.BLD_V1610_1_THROTTLE_LATEST_20181016_174328_2.bin
BSI=0
RANDOM_NUM=1650632109
You can then set the variables one by one. There is no need to type set
before the variable name as you do for other devices ROMMON. Avoid typos when you type the variable name as there is no verification of any sort.
rommon 2 > IP_ADDRESS=10.48.71.113
rommon 3 > IP_SUBNET_MASK=255.255.255.128
rommon 4 > DEFAULT_GATEWAY=10.48.71.5
Once the IP settings are in place, you can boot from a TFTP image with the next command:
rommon 5 > boot tftp://10.48.39.33/C9800-80-universalk9_wlc.16.10.01.SPA.bin
IP_ADDRESS: 10.48.71.113
IP_SUBNET_MASK: 255.255.255.128
DEFAULT_GATEWAY: 10.48.71.5
TFTP_SERVER: 10.48.39.33
TFTP_FILE: C9800-80-universalk9_wlc.16.10.01.SPA.bin
TFTP_MACADDR: 70:6d:15:35:99:ff
TFTP_VERBOSE: Progress
TFTP_RETRY_COUNT: 36
TFTP_TIMEOUT: 7200
TFTP_BLKSIZE: 1460
TFTP_CHECKSUM: Yes
ETHER_PORT: 3
ETHER_SPEED_MODE: 1000MB/HD
link up
Receiving C9800-80-universalk9_wlc.16.10.01.SPA.bin from 10.48.39.33
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
You end up in the Cisco IOS command line. Do not forget to actually copy the Cisco IOS image to the flash or hard disk and set the boot variable correctly. You can resume the procedure from the USB, previous as of step 6, once the file is copied in the flash or hard disk:
Troubleshoot
If you keep seeing the rommon telling you "Please reset before booting" when you try to boot from a file in memory, USB or TFTP like this :
rommon 4 > boot bootflash:C9800-L-universalk9_wlc.V176_1.SPA.bin
Please reset before booting
All you have to do is to nullify the config register and reset. The problem goes away after reboot and you can boot from any source.
confreg 0x0
reset
Other Useful ROMMON Commands
The dev
command lists the storage devices available (bootflash, harddisk, usb, and so on).
The command showmon
shows the ROMMON version.
Related Information