Had an issue where I was not able to successfully upgrade the IOS firmware on a Cisco 4351 router. This model of router runs IOS-XE and has some slight differences in feature set compared to legacy IOS. For example “ip dns server” was not an available command in the version the customer was running and so we needed to upgrade to the latest version which had support for running a DNS server.
I had uploaded the firmware (which was a whopping 470MB) to the flash and then entered in:
boot system flash isr4300-universalk9.03.16.00c.S.155-3.S0c-ext.SPA.bin
I then saved and rebooted the device, but the old firmware was still loaded. I discovered that the proper syntax for this series of router needs to be:
boot system bootflash:/isr4300-universalk9.03.16.00c.S.155-3.S0c-ext.SPA.bin
After a save and reboot we were on the new firmware and sure enough “ip dns server” was now a supported command.
On the Cisco 4351 with 15.5 code the boot var should actually read as follows:
boot system flash bootflash:
Example:
boot system flash bootflash:isr4300-universalk9.16.06.03.SPA.bin
Hope this helps. Make sure the flash keyword is after system.