On Monday I visited another customer who had problems saving the running configuration of a Cisco devices. The devices involved were a Cisco 2620 and a Cisco 2610XM router. Both routers weren’t able to save their running configuration.
Both routers show the following error-message:
startup-config file open failed (Bad file number)
By both routers I was able to look at the contents of the flash memory, but I wasn’t able to look at the contents of the NVRAM. When trying to look at the contents of NVRAM, you receive the following error-message:
Directory of nvram:/
%Error opening nvram:/ (Bad file number)
No space information available
22w0d: %SYS-4-NV_BLOCK_INITFAIL: Unable to initialize the geometry of nvram
The following information can be found on the error-message on the Cisco website:
%SYS-4-NV_BLOCK_INITFAIL : Unable to initialize the geometry of nvram
Explanation The software has detected that it failed to initialize the NVRAM block geometry (a part of the NVRAM that hosts non-configuration data files). Typically, these files are used by SNMP to store and retrieve non-configuration persistent data across a system reload. This condition may occur when the entire NVRAM is packed with the configuration, and the newer version of software that supports this feature could not find enough room in the NVRAM to initialize the block file system.
Recommended Action Reduce the configurations in the NVRAM by at least 2Kb.
Luckily one of the two routers was the old production router, which was swapped and the customer thought the NVRAM was broken. So I could use that router for testing purposes.
I started looking at the some physical aspects of both routers. They both had the following hardware specifications:
- 16 MB Flash memory
- 64 MB RAM memory
- 32K NVRAM
- IOS version 12.4(5)
While looking at the running configuration of the active router, I noticed that the running configuration was almost 2900 bytes (29K), which is stored in NVRAM. I believed that the error-messages were generated because NVRAM was full. I started deleting some configuration from the broken router, until the running configuration was only 20K. But I still wasn’t able to save the running configuration.
The last change I had was updating the IOS. I downloaded the last Main Release, which is 12.4(23). I formatted the flash memory and uploaded the image to the spare router. And fortunately, after a reload, I was able to save the running configuration.
The running configuration was still almost 2900 bytes. I issues the command to compress the configuration:
Now the running configuration is compressed from almost 2900 bytes to 1000 bytes.