Cisco Support Community

A 1700 series router with a VPN module installed fails at bootup and displays the SYSTEM INIT: INSUFFICIENT MEMORY TO BOOT THE IMAGE! error message due to a shortage of I/O memory

Core Issue

If the Cisco 1700 series router has only the minimum memory requirements installed, it cannot enable the VPN module.


To resolve this issue, boot the router.

Perform these steps:

  1. Verify that the router has enough RAM to support the installed Cisco IOS  Software image. To obtain this information, issue the dir flash: and meminfo commands at the ROM Monitor (ROMmon) prompt, as shown in this example:

    ROMmon 1 > dir flash:
    program load complete, entry point: 0x80008000, size: 0xb2a0
    Directory of flash:
    2      6474952   -rw-     c1710-k9o3sy-mz.122-4.XM4.bin
    ROMmon 2 > meminfo
    Main memory size: 32 MB.
    Available main memory starts at 0x10000, size 32768KB
    IO (packet) memory size: 25 percent of main memory.
    NVRAM size: 32KB

  2. Once the file and the amount of memory are determined, refer to the Find software compatible with my hardware section of Software Advisor for the Cisco IOS Software memory requirements.

  3. If the router does not meet the minimum memory requirements, add memory or use a Cisco IOS Software image. The Cisco IOS Software image is supported by the amount of RAM installed.

  4. If the router meets the minimum memory requirements, but still boots with the SYSTEM INIT: INSUFFICIENT MEMORY TO BOOT THE IMAGE! error message, perform these steps:

    1. Power off the router and remove all WAN Interface Cards (WICs) and Voice Interface Cards (VICs). 

    2. Set the configuration register to bypass the startup configuration by issuing the confreg 0x2142 command at the ROMmon prompt, as shown in this example:   
      ROMmon1 > confreg 0x2142
    3. Reset the router by issuing the reset command, as shown in this example: 

      ROMmon2 > reset

  5. If the router still does not boot properly, perform these steps:

          a. Power off the router.   

          b. Remove the internal VPN module.   

          c. Power the router back on.   

          d. If the router boots properly, it prompts you to enter the initial configuration mode. Respond by selecting No.   

          e. If the router has been configured previously, go into enable mode and issue the show start command, as shown in this example: 

Router > enable
Router#show start

          f. Highlight the show start command output.   

          g. Provide a backup of the configuration by copying the show start command output configuration into a text file.   

          h. To see if the processor or I/O memory is low, issue the show memory command, as shown in this example:     


Router#show memory summary
          Head   Total(b) Used(b) Free(b)  Lowest(b) Largest(b)
Processor C0E48  13885880 1615712 12270168 12077808  12077808 
I/O       E00000 2097152  2088396  8756     8756      8588


These are the descriptions of each field:


  • Total is the total memory allocated to the processor or I/O memory. This does not include the amount of memory taken up by the Cisco IOS Software.     

  • Used is the amount of memory being used at the time the show memory summary command is issued.     

  • Free is the amount of free memory available at the time the show memory summary command is issued.     

  • Lowest is the lowest amount of memory available since the last reload.     

  • Largest is the largest amount of free contiguous memory at the time the show memory summary command is issued.    


          i. In this sample output, the free I/O memory is very low (8756 bytes) and the free processor memory is large (12270168 bytes or about 12MB). 

          To have sufficient I/O memory, you can borrow memory from the processor pool by issuing the memory-size iomem i/o-memory-percentage     global configuration command.    

          If the router has 32MB of RAM, the memory-size iomem 10 command allocates 10 percent of 32MB (3.2MB) to the I/O pool. In this example, the memory for the I/O pool is 2097152 bytes (about 2MB). This memory adds 1.2MB to the I/O pool and takes the same amount from the processor pool.

          j. After issuing the memory-size iomem command, the configuration must be saved for the changes to take effect at the next reload.

  6. If the router has been previously configured, perform these steps:

          a. Back up the configuration. 

          b. Save the configuration by issuing the write memory or copy command.     

         running-config startup-config

          c. Issue the config-reg 0x2102 global configuration command so the router will not ignore the startup configuration, as shown in this example: 

Router#config t
Router(config)#config-reg 0x2102


          d. Power the router off.     

          e. Reinstall the VPN module and any WICs or VICs.    

          f. Power the router on.    

          g. If the router boots properly, check the backup configuration for the memory-size iomem command line. If this line is found, delete it and then go into global configuration mode and paste the backup configuration into the router.    

          h. Save the configuration by issuing the write memory or copy running-config startup-config command.    

          i. Issue the reload command.    

          j. If the router reloads properly with the configuration, the issue is resolved.    

          k. Check the show memory summary command to be sure the memory is not too low on either memory pool. 

  • If the memory is too low, adjust the iomem value.     

    Valid values are in increments of five, such as 5, 10, 15, 20, 25, 30, 35 and 40.   

  • If the router still does not boot, regardless of the memory-size iomem command value, it needs more memory to function with a VPN module installed.