路由交换机的 ROMMON 模式
ROMMON(ROM Monitor)是思科路由交换设备中存储在只读存储器(ROM)中的引导程序,设备加电/重置时初始化硬件并引导主操作系统(IOS/IOS XE)。
主要功能
- 硬件自检与初始化:在系统启动阶段,ROMMON 固件负责对处理器、内存与关键外设进行自检与初始化,为操作系统加载做好准备。
- 镜像引导管理:通过配置寄存器,ROMMON 定位 IOS 映像并加载,支持手动或自动引导指定映像。当路由交换设备无法正常引导 IOS(例如映像丢失或损坏),设备将进入 ROMMON 模式,管理员可在该模式下手动恢复系统。
使用场景
- 镜像丢失或损坏:设备检测不到有效的系统镜像会自动进入 ROMMON 模式,提示
rommon>
,需手动指定 TFTP 或本地闪存中的映像进行恢复。 - 密码恢复:在忘记设备特权密码时,可利用 ROMMON 重置配置寄存器,跳过启动配置修改密码。
- 升级或回滚:在需要升级或回滚 ROMMON 固件版本时,可下载新版 ROMMON 并通过 ROMMON 命令完成写入与重启过程,以获取新功能或修复硬件兼容性问题。
设备上多个 ROMMON
在 CRS 上,ROMMON 是一段用于验证并加载 MBI 镜像的代码,或从此环境中执行 TurboBoot 安装的模块。当系统或某个模块启动时,ROMMON 会将本地的 MBI 镜像版本与当前活动 RP 上的版本进行比对:
- 如果本地 MBI 与活动 RP 上的版本一致,则直接启动本地 MBI;
- 否则,它会通过 TFTP 从活动 RP 下载最新的 MBI 镜像。
每个带有 CPU 的 CRS 模块(MSC-B、FP-40、RP、PRP 等)都在 SPI 闪存上保留两份 ROM Monitor 镜像,称作 ROMMON A 和 ROMMON B,版本号格式为 MAJOR_V.MINOR_V
。
- ROMMON A 初始化: 模块启动时总是首先运行 ROMMON A,然后由它检查与 ROMMON B 的兼容性(在自身的内存卡上检查必要信息,并加载额外的 monlib 指令集以支持高级功能。
- 兼容性检查:若 ROMMON A 与 ROMMON B 版本兼容,则移交控制至 ROMMON B;否则整个过程停留在 ROMMON A,用于故障诊断或回退(主版本号不同则不兼容)。
- ROMMON B 引导:ROMMON B 加载并启动主操作系统 Cisco IOS XR。
*自 ROMMON A 版本 1.52 起,引入了对 FAT32 分区的 Split Boot 支持,通过在 ROMMON A 中加载专用的 monlib 指令集来实现;而低于 1.52 的版本则不识别 FAT32 磁盘,只能使用 FAT16。若 ROMMON A ≥ 1.52,则无需升级即可支持 FAT32;否则,必须先升级 ROMMON A,以避免启动时卡在 ROMMON A 而无法移交给 ROMMON B 的情况。
所部署的 IOS-XR 版本对 ROMMON 版本也有最低要求。
最后,好文推荐:
『无题』 » Blog Archive » Upgrade XR for ASR9k/CRS/GSR by TURBOBOOT