IOS 启动模式解析
1.名词解释
Bootstrap: 存储在ROM中的微码(microcode)中,用来在初始化的时候启动router,然后加载IOS

POST: 存储在ROM中的微码中,用来检查硬件基本配置是否正常,然后决定哪些接口可用

ROM monitor: 存储在ROM中的微码中,作用是测试和排疑等

Mini-IOS: Cisco叫它RXBOOT或bootloader,它是存储在ROM中的,IOS的简化版本,用来把IOS加载到闪存中

RAM(random-access memory): 用来保存数据包缓存,ARP缓存,路由表,和running-config配置文件.

ROM(read-only memory): 用来启动和维持router正常化

Flash memory(闪存): 用来存放IOS,当router重新启动的时候闪存是不会被擦除的,由Intel创造的EEPROM

NVRAM(nonvolatile RAM): 存储startup-config配置文件,当router重新启动的后,这些文件是不会被擦除的

configuration register: 用来控制router如何启动,这个值可以使用show version来查看,一般为0x2102(16进制),含义是告诉router从闪存里加载IOS和从NVRAM里加载配置文件



简单描述下启动步骤:

第1步       第2步                第2.5步                    第3步    第4步             第5步
POST   →   bootstrap →(打断进入Rommon模式) → IOS    → NVRAM    → 正常启动
                                                                                                         → Setup模式
                                                                     → Mini-IOS (ROM中的IOS镜像)



25系列路由设备当输入ctrl+break后进入 > 模式
26系列路由设备当输入ctrl+break后进入 rommon1> 模式

Cisco 2500系列路由器是直接从Flash的IOS启动,大多数从Flash启动的设备都有双Flash用来升级Flash中的文件 而Cisco 3600还有4000系列路由器将Flash中的文件复制到RAM通过读取RAM启动。
为了解决运行Flash中IOS文件的路由器升级Flash IOS的问题这里引入3种情况:
1.在Rommon1> 模式下升级
2.在Router(boot)> 模式下升级
3.在Router> 模式下正常升级
   路由器通过加载自举程序,操作系统和配置文件来完成初始化。正常启动的顺序为:
      1、加电后,进行POST,确定硬件都能正常工作。
       2、执行ROM中的自举程序。
       3、装载IOS。IOS可以存放在多个位置,如FLASH,TFTP,系统中还有一个MINI—IOS,存放在ROM中。根据寄存器的值加载指定的IOS。
      4、将保存在NVRAM中的配置文件加载到RAM中。这些配置将完成启动路由选择、为每个接口分配IP,设置介质特性等任务。(前提是配置文件中配置了这些内容,如果配置文件为空,那没系统将启动到setup模式)
      
       cisco软件设备有三种运行模式:
       1、rom monitor (监视模式):用于恢复系统故障或者口令恢复。只能通过console端口访问。通过修改寄存器值为0x2100可以进入该模式。
       路由器已启动但是没有加载任何IOS,提示符为:>或rommon>
      2、boot rom :在这种模式下,低端的路由器(如2500系列)将从rom的mini-ios启动,而在高端路由器(如2600系列),将先从FLASH的第一个映像启动,如不成功则读取下一个位置的IOS映像。只有FLASH中没有IOS时才启动到mini-ios。可以通过修改寄存器值为0x2101进入该模式。
      提示符为:router(boot)>
       3、正常运行模式,直接启动FLASH中的IOS.
   
      PS:
      1、路由器启动时,要注意观察LEO,如果正确启动,则为绿色;如果为×××,则说明有错误,如果不亮,当然是不正确啦。
      2、自举程序:用来确定其以太口的IP,以影响其网络启动。
       3、在全局模式下,可以通过 boot system 命令来设置IOS的启动加载顺序,如果NVRAM没有 boot system 配置,则默认从flash 中加载 。