Upgrade 2800 series router to support USB boot

A while ago we were faced with a 2800-series router with no software in its CF card. As all 2800-series routers have USB slots, I started investigating whether you could boot the IOS image from an USB flash token. The product documentation states you can't, but as always, reality changes quicker than documentation in Ciscosphere.To support IOS boot from USB token, you need a newer version of 2800-series ROMMON which you'll get from the ROMMON download page (registered CCO users only). You need ROMMON release 12.4(13r)T (description: C2800 ROMMON Upgrade; adds boot from usb flash drive capability).

After you've downloaded the file onto a USB token, upgrade the router ROMMON with the upgrade rom-monitor file usbflash0:C2800NM_RM2.srec.124-13r.T command (requires router reboot).

Test the upgraded ROMMON with the dev command. You should see the USB flash devices:

rommon 1 > dev
Devices in device table:
id name
flash: compact flash
bootflash: boot flash
usbflash0: usbflash0
usbflash1: usbflash1
eprom: eprom
You can use USB token-resident IOS releases in two ways:
  • As an emergency boot mechanism when you have problems with the CF card. Remove the CF card, insert USB token, restart the router and use the boot rommon command, for example boot usbflash0:c2800nm-advipservicesk9-mz.124-11.T1.bin.

  • As a regular boot image. Use the boot system global configuration command to specify the USB token image to use, for example boot system usbflash0:c2800nm-advipservicesk9-mz.124-11.T1.bin. The router will not boot off USB token without the boot system command ... and, obviously, you should never remove the USB token from the router.

26 comments:

Roel Koops said...

Hi,

I can't find the ROMMON-images on that page :-(

http://www.cisco.com/cgi-bin/tablebuild.pl/2800rommon:
"Cisco 2800 Series ROMMON Upgrades

NOTE:
There are currently no files for this type."

Ivan Pepelnjak said...

I just tested the link again and it shows me the files. Obviously what you see depends on your CCO user level; if you can't get the files on CCO, you'll have to contact your Cisco support partner.

Roel Koops said...

Ok, thanks!

Jacques said...

Hi,

Like to clarify the Boot system usbflash command. I am using a notmal (non cisco) USB Flash Device) I do not get the USBFLASH option.

Does this only work with Cisco USB Flash drives ?

Ivan Pepelnjak said...

I had a similar situation: The CLI help didn't show it (at least until I've upgraded ROMMON, not sure what happened afterwards), but it worked. However, if you use this setup before upgrading ROMMON, the FLASH image boots first and then it loads the USBFLASH image.

Jacques said...

Ivan,

Here is what I have:

System Bootstrap, Version 12.4(13r)T, RELEASE SOFTWARE (fc1)

Can access USBFLAHS0:

Router#dir usbflash0:
Directory of usbflash0:/

1 ---- 0 Nov 13 2007 08:01:24 +00:00 Recycled
2 -rw- 4096 Nov 13 2007 10:02:26 +00:00 ._.Trashes
3 drw- 0 Nov 13 2007 10:02:26 +00:00 .Trashes
4 drw- 0 Nov 13 2007 10:02:26 +00:00 .Spotlight-V100
60 -rw- 28783540 Jan 22 2007 19:48:52 +00:00 c2801-advipservicesk9-mz.124-10b.bin
61 -rw- 4096 Nov 15 2007 13:07:04 +00:00 ._c2801-advipservicesk9-mz.124-10b.bin

128690176 bytes total (98965504 bytes free)

Can not add to boot system ?

Router(config)#boot system ?
WORD TFTP filename or URL
flash Boot from flash memory
ftp Boot from a server via ftp
mop Boot from a Decnet MOP server
rcp Boot from a server via rcp
rom Boot from rom
tftp Boot from a tftp server

Can I use any make or model or does it need tobe a Cisco specific USB Flash

Ivan Pepelnjak said...

Jacques, I've told you the boot system CLI help will NOT show you the usbflash: device. Just type the path in and test it.

Antonio said...

Hello, I always get an error monitor: command "boot" not found"

I made an exact copy of another flash card to the usbflash and I have all the files in it but when I try the boot system command, it throws me this error.

I really need some help trying to make this router work because the flash card apparently disappeared.... so... would love an answer soon.

Working on a 2811 ISR with the 12.4 version so I can "see" the usbflash

Ivan Pepelnjak said...

"boot system" is a router configuration command, not a ROMMON command. Try getting help in ROMMON and select the correct command to boot an IOS image.

Guto Melo said...

someone put a link to download the ROMMON release 12.4 (13R) T ?

Anonymous said...

I always get this error:

rommon 1 > dir usbflash0:
program load complete, entry point: 0x8000f000, size: 0x3d240

*** TLB (Load/Fetch) Exception ***
Access address = 0x364
PC = 0x8003d878, Cause = 0x8, Status Reg = 0x3040a803

monitor: command "dir" aborted due to exception

rommon 1 > boot usbflash0:c2800nm-advipservicesk9-mz.124-15.T7.bin
program load complete, entry point: 0x8000f000, size: 0x3d240

*** TLB (Load/Fetch) Exception ***
Access address = 0x364
PC = 0x8003d878, Cause = 0x8, Status Reg = 0x3040a803

monitor: command "boot" aborted due to exception

I upgraded to:

ROM: System Bootstrap, Version 12.4(13r)T6, RELEASE SOFTWARE (fc1)

Note: I am using a generic 256 MB flash drive and able to see the device and verified image when inserting the flash drive (while booting using compact flash) just when i restart it without CF, the usb flash won't work.

Ivan Pepelnjak said...

@Anonymous: You should open a case with Cisco TAC. This is definitely a weird error.

Yakov said...

I'm using a generic 64mb usb and 12.4(13r)T5 and getting same result
*** TLB (Load/Fetch) Exception ***
Access address = 0x364
PC = 0x8003d878, Cause = 0x8, Status Reg = 0x3040a803

Anonymous said...

Any chance on just copying from the non-Cisco flash drive to the internal flash?

Ivan Pepelnjak said...

Sure you can ... just insert the USB key and use the COPY command.

jonesnco said...

Ivan,

Is there any specific formatting requirement for the USB drive? I know Cisco was moving toward FAT32 on flash devices.

oldpaul said...

I had heard that only Cisco-supplied USB drives would work. Maybe I could test it out today.

Anonymous said...

I've booted my 2811 OK from a non-Cisco USB stick. It didnt work when I formatted it with fkfs.msdos in Linux, but it worked fine when I formatted it in Windows, with the "DOS" option. So it is a little particular about the formatting.

Anonymous said...

Oops. I meant mkfs.msdos

Anonymous said...

Dear Ivan,

While i was trying to upgrade the Rommon IOS via USB, I found the below error message.


cisco#upgrade rom-monitor fileusbflash0:C2800NM_RM2.srec.124-13r.T
%Error: srec file read failed

Kindly advise

BR
Mohamed Ibrahim

Ivan Pepelnjak said...

Dear Mohamed!

I cannot tell you what's wrong with your particular router or USB drive. Assuming you've typed in the command correctly and the ROMMON file is on the USB drive, it's best if you'd open a case with Cisco TAC (or your support partner).

Best regards
Ivan

Jay said...

Hello,

I have a c871 router which has 128mb ram and 24mb flash and so I can only fit in the advsecurity IOS. I would like to run the advipservices version which requires 28mb of flash...do you think I could run it off a usb stick?

Thanks

Michael said...

Apparently the 800 series can NOT boot from USB, despite what some documentation I have read states. Rommon does NOT support anything but xmodem, tftp, and flash booting...

Bret said...

Ivan,

Were you ever able to pull the release notes for this version of ROMMON software? I have been looking all over the place for it.

Ivan Pepelnjak said...

Just tried. No luck.

Bret said...

Thanks. I've seen a new version which promises "C2800 ROMMON Upgrade: DRAM access optimization". It certainly would be nice to have some release notes to describe the functionality in greater detail.

Ivan Pepelnjak, CCIE#1354, is the chief technology advisor for NIL Data Communications. He has been designing and implementing large-scale data communications networks as well as teaching and writing books about advanced technologies since 1990. See his full profile, contact him or follow @ioshints on Twitter.