Upgrading ROMMON
After the last trouble without tftp-server in ROMMON, I figure I would upgrade it... it was a lot easier than updating the IOS, and I don't think you can screw it up. By the looks of it, it has a primary and 'upgrade' (secondary) ROMMON... so if the upgrade ROMMON doesn't boot up... the original one does.
There is more screen output than commands here... there is only one command!
Before the upgrade we see that there is no upgraded rommon running.
r2#show rom-monitor ReadOnly ROMMON version: System Bootstrap, Version 12.2(8r)T2, RELEASE SOFTWARE (fc1) TAC Support: http://www.cisco.com/tac Copyright (c) 2002 by cisco Systems, Inc. No upgrade ROMMON programmed or not yet run Currently running ROMMON from ReadOnly region ROMMON from ReadOnly region is selected for next boot
The rommon is not like the IOS, a copy is not stored in flash to be uncompressed, so I had to download the ROMMON binary to the router's flash before I made the router as a TFTP server.
r1(config)#tftp-server flash:C3725_RM2.srec.123-10r
Then I upgraded R2 You can specify a new ROMMON directly from TFTP:
r2#upgrade rom-monitor file tftp://10.0.0.1/C3725_RM2.srec.123-10r
It downloads, and automatically asks if you want to restart.
Loading C3725_RM2.srec.123-10r from 10.0.0.1 (via FastEthernet0/0): !!! [OK - 613864 bytes] This command will result in a 'power-on reset' of the router! Continue? [yes/no]: yes System configuration has been modified. Save? [yes/no]: yes Building configuration... [OK] ROMMON image upgrade in progress. Erasing boot flash eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Programming boot flash pppp
After the system reload, it boots the system rommon, followed by the new rommon.
Now Reloading System Bootstrap, Version 12.2(8r)T2, RELEASE SOFTWARE (fc1) TAC Support: http://www.cisco.com/tac Copyright (c) 2002 by cisco Systems, Inc. Running new upgrade for first time System Bootstrap, Version 12.3(10r) [dchih 10r], RELEASE SOFTWARE (fc1) Copyright (c) 2004 by cisco Systems, Inc. c3725 processor with 262144 Kbytes of main memory Main memory is configured to 64 bit mode with parity disabled Upgrade ROMMON initialized
After the upgrade, here is the result of the 'show rom-mon'
r2#show rom-monitor System Bootstrap, Version 12.2(8r)T2, RELEASE SOFTWARE (fc1) TAC Support: http://www.cisco.com/tac Copyright (c) 2002 by cisco Systems, Inc. Upgrade ROMMON version: System Bootstrap, Version 12.3(10r) [dchih 10r], RELEASE SOFTWARE (fc1) Copyright (c) 2004 by cisco Systems, Inc. Currently running ROMMON from Upgrade region ROMMON from Upgrade region is selected for next boot
Start up a Cisco IOS quickly without TFTP
While upgrading my IOS to 12.4T on my 3750, the IOS must have gotten corrupted,because on my reload I got this:
Readonly ROMMON initialized program load complete, entry point: 0x80008000, size: 0xcac0 loadprog: bad file magic number: 0x0 boot: cannot load "flash:c3725-adventerprisek9-mz.124-15.T9.bin
So I tried to load an IOS via TFTP server in ROMmon mode, but my ROMmon was 12.2, so that was out of the question.
I could xmodem it... but that takes a really long time, which I didn't have at the time.
I upgraded 3 3750s and I took one of them off the rack, took the flash out, and put it into slot0 and then rebooted the router and the IOS from slot0 came up.
After, I tried to verify the hash of the IOS
router#verify flash:c3725-adventerprisek9-mz.124-15.T9.bin router#
nothing... came up.
When I verify the same file from slot0, it works.
router#verify slot0:c3725-adventerprisek9-mz.124-15.T9.bin Verifying file integrity of slot0:c3725-adventerprisek9-mz.124-15.T9.bin.. ........... lots of dots later..............................Done! Embedded Hash MD5 : AE963FE294C20FAAA7B65C1F02E0E3FF Computed Hash MD5 : AE963FE294C20FAAA7B65C1F02E0E3FF CCO Hash MD5 : 3FA5B289DC2E9C1D760778200BA6465D
So I deleted the corrupted IOS and copied the one from slot0 over.
router#delete flash:c3725-adventerprisek9-mz.124-15.T9.bin Delete filename [c3725-adventerprisek9-mz.124-15.T9.bin]? Delete flash:c3725-adventerprisek9-mz.124-15.T9.bin? [confirm] router#copy slot0:c3725-adventerprisek9-mz.124-15.T9.bin flash: Destination filename [c3725-adventerprisek9-mz.124-15.T9.bin]? Copy in progress...CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Verify the new file is good
router#verify flash:c3725-adventerprisek9-mz.124-15.T9.bin Embedded Hash MD5 : AE963FE294C20FAAA7B65C1F02E0E3FF Computed Hash MD5 : AE963FE294C20FAAA7B65C1F02E0E3FF CCO Hash MD5 : 3FA5B289DC2E9C1D760778200BA6465D
Then take the memory card out of slot0 (you can do this while its running) and reboot.
I have never had a corrupted IOS, but I will verify from now on before rebooting.
Reading around, I didn't find this solution anywhere, and its by far the fastest one (if tftp isn't working). I think it might even be faster than tftp for some people, depending on if you have to set a tftp server up or not. Total time spent: about 15min.