If the IOS of a cisco router is stored in flash, why then is the default behaviour (config reg: 0x2102) to get the boot-sequence from NVRAM instead of flash?

This source states that during runtime, flash on the router is ROM. So the only reason I can see to put the boot-sequence in NVRAM is to be able to edit it during runtime, but is that ever really necessary? You would have to reboot to make it effective anyway. So what is gained by making this the default?

Is manually changing the boot-sequence something that happens often in practice?

  • 2
    That link is citing basically 2500-class routers - or, put another way, boxes that were somewhat long in the tooth 20 years ago. Keep in mind that the boxes in question were maxed out at 16 megabytes of flash and that all sorts of tricks had to be played to make it work. In more modern boxes the idea of using NVRAM also reflects the variety of different boot devices (and the potential lack/insufficiency of onboard flash).
    – rnxrx
    Jan 17, 2018 at 19:31

2 Answers 2


The flash is where the IOS image is stored in a compressed file (.bin). The NVRAM is the uncompressed file from Flash.

Changing the configuration register is sometimes needed in the case of the password recovery process. It can also be used for:

  • How the router boots (into ROMmon, NetBoot)
  • Options while booting (ignore configuration, disable boot messages)
  • Console speed (baud rate for a terminal emulation session)

Cisco's complete guide to config register commands/use on ALL routers: https://www.cisco.com/c/en/us/support/docs/routers/10000-series-routers/50421-config-register-use.html

Personally i've only made use of changing the config register in practice a few times, mostly password recovery on the old Cisco 2600 and 2800 Series Routers.

Once i had to fiddle about with the baud rate in order to send a file faster to a router via console.

  • But why is not stored in NVRAM by default instead? Jan 17, 2018 at 19:02
  • @RungeKutta, NVRAM is large and expensive for a relatively small amount of fast, non-volatile storage.
    – Ron Maupin
    Jan 17, 2018 at 19:05

In Cisco IOS, "NVRAM" is the name of the area where the startup-config resides.

"flash:" (or on some Cisco platforms, "bootflash:") is the name of the area where user files reside. On a factory-fresh device, this area contains the Cisco IOS image, but it can be used to store any arbitrary files.

Now: on most modern Cisco IOS devices, there is not necessarily a 1:1 relationship between these names ("NVRAM" and "flash") and the underlying hardware storage device(s) where the storage is implemented.

See, for example, the data sheet for the Cisco 4500X switch here. Under the "CPU and Memory" section, you only see one entry for a 2GB "NVRAM". This actually refers to a single 2GB flash memory chip on the board which contains the storage for both the IOS NVRAM as well as the IOS "flash:" file system. IOS software partitions the single hardware flash storage device into logical "NVRAM" and "flash:" areas. If you run the IOS EXEC command "format flash:", that would wipe out the contents of the "flash:" partition but leave the NVRAM partition intact (i.e. leave the startup-config intact), although both partitions reside on the same physical device, at least in the case of the Cisco 4500X.

So to answer the question: flash is the area where the user is allowed to store any arbitrary files, and is subject to operations like "format". This usage of flash must not interfere with the startup-config - after all, you don't want "wr mem" to fail because you've filled up the flash with your vacation photographs :-) - which is why it is a good idea to have the storage for startup-config reside on a separate partition which, for historical/traditional reasons is called NVRAM.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.