View Cart
0 Items | Total: US$0.00
Welcome,      Register

You are here

Cisco ISR 4000 Router Upgrade Guide from 3.x to Denali 16.2

Average: 5 (2 votes)

ISR 4000Since Cisco announced an intention to unify software version across routing and switch platforms, we have already seen the first software release of Denali 16.1 on Cisco IOS XE switches. Subsequently, Cisco has also released the first common software version between router and switch with Denali 16.2.1. While you can upgrade a switch as you normally would, upgrading a router requires a closer attention. In this article, we will show you how to upgrade an ISR 4000 to Denali 16.2.1. We will be using ISR 4321 running IOS XE 3.6.

What you need to know?

  • The router must have minimum ROMMON version of 16.2(1r)
  • The following procedures are specific to ISR 4000. Procedures for ASR 1000 and CSR may slightly differ


  • Download router ROMMON from (unless your router already meet the requirement of 16.2(1r) or newer)
  • Download router Denali 16.x IOS XE from

Step 1:
Verify current ROMMON version. Here we are running 15.4(3r)S3 which is older than 16.2(1r) so upgrade is required

LabMinutes#show rom-monitor r0

System Bootstrap, Version 15.4(3r)S3, RELEASE SOFTWARE
Copyright (c) 1994-2014 by cisco Systems, Inc.

LabMinutes#sh platform
Chassis type: ISR4321/K9

Slot Type State Insert time (ago)
--------- ------------------- --------------------- -----------------
0 ISR4321/K9 ok 01:26:51
0/0 ISR4321-2x1GE ok 01:25:41
R0 ISR4321/K9 ok, active 01:26:51
F0 ISR4321/K9 ok, active 01:26:51
P0 PWR-4320-AC ok 01:26:34
P2 ACS-4320-FANASSY ok 01:26:34

Slot CPLD Version Firmware Version
--------- ------------------- ---------------------------------------
0 15030325 15.4(3r)S3
R0 15030325 15.4(3r)S3
F0 15030325 15.4(3r)S3

Step 2:
Copy the new ROMMON file and software image to router flash

LabMinutes#copy ftp://<username>:<password>@<IP Address>/isr4300-rommon.162-1r.pkg flash:
Destination filename [isr4300-rommon.162-1r.pkg]?
Accessing ftp://*:*@
Loading isr4300-rommon.162-1r.pkg !!!!!!!!!!!
[OK - 2646988/4096 bytes]

2646988 bytes copied in 1.295 secs (2044006 bytes/sec)

LabMinutes#copy ftp://<username>:<password>@<IP Address>/isr4300-universalk9.16.02.01.SPA.bin flash:
Destination filename [isr4300-universalk9.16.02.01.SPA.bin]?
Accessing ftp://*:*@
Loading isr4300-universalk9.16.02.01.SPA.bin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 497494797/4096 bytes]

497494797 bytes copied in 199.583 secs (2492671 bytes/sec)

Step 3:
Verify files are in flash and check for file MD5 checksum

LabMinutes#dir bootflash: | in isr
17 -rw- 2646988 Apr 2 2016 11:00:47 -07:00 isr4300-rommon.162-1r.pkg
18 -rw- 497494797 Apr 2 2016 10:54:31 -07:00 isr4300-universalk9.16.02.01.SPA.bin

LabMinutes#verify /md5 flash:isr4300-rommon.162-1r.pkg
verify /md5 (bootflash:isr4300-rommon.162-1r.pkg) = 2afd598e38c5420162762ec80b285f14

Step 4:
Perform ROMON upgrade. Make sure the file is being referenced in bootflash: and NOT flash:. Reload the router afterwards

LabMinutes#upgrade rom-monitor filename flash:isr4300-rommon.162-1r.pkg all

Invalid file: flash:isr4300-rommon.162-1r.pkg <---- Failed if reference to flash:

LabMinutes#upgrade rom-monitor filename bootflash:isr4300-rommon.162-1r.pkg all
Chassis model ISR4321/K9 has a single rom-monitor.

Upgrade rom-monitor

Target copying rom-monitor image file
selected : 0
Booted : 0
Reset Reason: 0

Info: Upgrading entire flash from the rommon package
4259840+0 records in
4259840+0 records out
262144+0 records in
262144+0 records out
655360+0 records in
655360+0 records out
4194304+0 records in
4194304+0 records out
File is a FIPS ROMMON image
FIPS-140-3 Load Test on has PASSED.
Authenticity of the image has been verified.
Switching to ROM 1
8192+0 records in
8192+0 records out
Upgrade image MD5 signature is b702a0a59a46a20a4924f9b17b8f0887
4259840+0 records in
4259840+0 records out
4194304+0 records in
4194304+0 records out
4194304+0 records in
4194304+0 records out
262144+0 records in
262144+0 records out
Upgrade image MD5 signature verification is b702a0a59a46a20a4924f9b17b8f0887
Switching back to ROM 0
ROMMON upgrade complete.
To make the new ROMMON permanent, you must restart the RP.


Step 5:
Verify that the ROMMON upgrade was successful

LabMinutes#sh rom-monitor R0

System Bootstrap, Version 16.2(1r), RELEASE SOFTWARE
Copyright (c) 1994-2016 by cisco Systems, Inc.

LabMinutes#show platform
Chassis type: ISR4321/K9

Slot Type State Insert time (ago)
--------- ------------------- --------------------- -----------------
0 ISR4321/K9 ok 00:04:37
0/0 ISR4321-2x1GE ok 00:03:24
R0 ISR4321/K9 ok, active 00:04:37
F0 ISR4321/K9 ok, active 00:04:37
P0 PWR-4320-AC ok 00:04:20
P2 ACS-4320-FANASSY ok 00:04:20

Slot CPLD Version Firmware Version
--------- ------------------- ---------------------------------------
0 15030325 16.2(1r)
R0 15030325 16.2(1r)
F0 15030325 16.2(1r)

Step 6:
Update boot variable to the new software image, save the configuration and reload the router

LabMinutes(config)#no boot system bootflash:isr4300-universalk9.03.16.00c.S.155-3.S0c-ext.SPA.bin
LabMinutes(config)#boot system bootflash:isr4300-universalk9.16.02.01.SPA.bin
Building configuration...

Step 7:
Verify that the router software upgrade was successful. The router is now running 16.2.1

LabMinutes#sh ver
Cisco IOS XE Software, Version 16.02.01
Cisco IOS Software, ISR Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version Denali 16.2.1, RELEASE SOFTWARE (fc1)
Technical Support:
Copyright (c) 1986-2016 by Cisco Systems, Inc.
Compiled Mon 28-Mar-16 03:45 by mcpre

Release Notes for the Cisco 4000 Series ISRs, Cisco IOS XE Denali 16.x

About Author

Metha Cheiwanichakorn, CCIE#23585 (RS, Sec, SP), is a Cisco networking enthusiast with years of experience in the industry. He is currently working as a consulting engineer for a Cisco partner. As a founder of and an instructor at, Metha enjoys learning and challenges himself with new Cisco technologies.


I read somewhere we need to accept EULA on boot-up going from 3.x to 16.x ? Does this make remote upgrade impossible?

We have not come across such behavior. EULA is usually accepted when you are already in the CLI.