cisco 路由器或者交换机,他们是如何运行,寄存值有什么用?为什么说寄存值与设备的启动息息相关。当一打开电源,他并不会直接跳转到用户模式,而是经过一系列的过程:

请看,启动遵循以下动作:

 

 

 

 

寄存值0x2102或者0x2142的意义何在?

首先哟呵明白一点实际设备不是以十进制表示而是以十六进制表示

寄存值一共16个比特位。

 

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

而常见到的0x2102表示如下:

 

0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0

重点就是启动位(0-3)bit

        第6bit

        第8bit

        第13bit

设备开启动作如下:

打开设备电源:
首先设备检查寄存值的0-3bit位启动码,
如果为0进入ROM Monitor模式(即rommon模式下面)
如果为1进入mini ios(现在设备不一定有mini ios,也进入rommon模式下)
如果为2-f(即16进制0010 - 1111,这就是0x2102最后一位2的来源,当然你改为0x210f 结果也是一样)
去查找startup-config里面是否有启动的命令(即boot system flash)
如果有,就按他说的做,加载ios。
如果没有,查找flash里面是否有合法的ios(这里注意了是flash,如果你ios放在disk卡里面,是不会去查找的):
有的话,则加载这个ios;
如果没有,试图从网络中,搜寻有无ios,如果能找到,用从网络找到的文件(ios)来加载;
      没有找到, 查看第13bit位是否为1(即 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0,十进制0x2102中的开头的2),
          如果为1,则进行5次循环在网络中查找ios,如果5次都查找不到,进入rommon模式;
         如果不为1(即为0),则一直循环在网络中查找ios,直到查找到为止,这里就进入死循环了。

正常加载ios,
     查看寄存值的第6bit位是否为1(即 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0,十进制0x2142中的4或者0x2102中的0)
        如果为1,只不将配置文件加载在内存中,直接进入Setup Dialog
        如果不为1(即为0),查看是否有有效的配置文件
               没有则进入Setup Dialog
                有则加载,开机加载完成

当然,还有第8bit位,第8bit位很重要,当你开机准备进去rommon模式的话,必需要按ctrl+break来强制进入rommon模式,这时,如果第8bit位

  置1,则按你的命令中断启动步骤,直接进去rommon模式

  如果不为1,则不理睬你的命令,继续按启动步骤启动。

 可见该bit位的重要。end