How to recover from a incorrectly entered boot system command.
This past week I learned a valuable lesson about upgrading the IOS to a newer version on a cisco switch. Always specify the location (flash: in my case) of the image before the image name when using the boot system imagename command.
For some reason I entered the command boot system c2950-i6q4l2-mz.121-6.EA2c.bin into the configuration for the switch I was upgrading to a new version of the IOS I had just copied over, forgetting the location of the image, in this case flash:. I then saved the configuration and rebooted the switch, which of course failed to come back up. When I consoled into the switch I was presented with the following error message upon reboot:
Loading “c2950-i6q4l2-mz.121-6.EA2c.bin”…c2950-i6q4l2-mz.121-6.EA2c.bin: permission denied
Error loading “c2950-i6q4l2-mz.121-6.EA2c.bin”
Interrupt within 5 seconds to abort boot process.
Boot process failed…
The system is unable to boot automatically. The BOOT
environment variable needs to be set to a bootable
To correct the problem you need to enter the boot flash:image-name.bin (substituting image-name with the actual name of the IOS file you wish to boot to) while in rommon and the switch will reload into the IOS image you specify. If you are unsure of the name of the image you need to boot into simply issue a dir flash: command while in rommon, this will give you a list of all the files located in flash.
Once back into the IOS, login and enter exec mode command boot system flash:image-name.bin, again substituting image-name with the name of the IOS file in flash you want to use. Save the config and you are good to go.