思科3850F-E交换机启动镜像设置故障求助
问题描述
我正在尝试把思科3850F-E交换机的IOS从16.09.04版本升级到16.12.10a版本。已经把16.12.10a的bin文件传到了flash里,也设置它为启动镜像,执行了write memory保存配置。但重启之后交换机还是加载了16.09.04版本。执行show boot命令后看到启动变量有点混乱,具体输出如下:
Tue Dec 19 2023 03:28:31 GMT-0600 (Central Standard Time)#show boot
Switch 1
Current Boot Variables:
BOOT variable = flash:cat3k_caa-universalk9.16.12.10a.SPA.bin;flash:cat3k_caa-universalk9.16.09.04.SPA.bin;flash:/cat3k_caa-universalk9.16.12.10a.SPA.bin;Boot Variables on next reload:
BOOT variable = flash:cat3k_caa-universalk9.16.12.10a.SPA.bin;flash:cat3k_caa-universalk9.16.09.04.SPA.bin;flash:/cat3k_caa-universalk9.16.12.10a.SPA.bin;Manual Boot = no
Enable Break = no
Boot Mode = DEVICE
iPXE Timeout = 0
想请教下怎么修复这个启动变量的问题,让交换机能正常启动到16.12.10a版本?
解决步骤
你的问题核心是BOOT变量里同时保留了旧版本镜像,还存在重复的新版本路径(flash:/多了斜杠虽然不影响,但属于冗余配置)。可以按以下步骤修正:
进入全局配置模式
configure terminal清空现有启动变量
先把当前混乱的BOOT配置全部清除,避免残留干扰:no boot system(如果是堆叠环境,需指定交换机编号,比如
no boot system switch 1,从你的输出看是单台Switch 1,直接执行即可)指定唯一的目标启动镜像
只设置16.12.10a版本的镜像作为启动项:boot system flash:cat3k_caa-universalk9.16.12.10a.SPA.bin保存配置
执行保存命令确保修改写入启动配置:write memory用
copy running-config startup-config也能达到同样效果。验证配置结果
退出全局配置模式后,再次检查启动变量:exit show boot确认Current和Next reload的BOOT变量里只有你指定的16.12.10a镜像路径,没有旧版本和重复项。
重启交换机生效
最后执行重启,让交换机加载新镜像:reload重启时可以观察控制台输出,确认设备正在加载16.12.10a版本的IOS。
额外提醒
- 可以用
verify /md5 flash:cat3k_caa-universalk9.16.12.10a.SPA.bin校验镜像文件完整性,确保和思科官网提供的MD5值一致,避免因文件损坏导致升级失败。 - 如果是堆叠交换机,要保证所有成员交换机的flash中都存在该新版本镜像,或者统一设置堆叠全局启动变量。
备注:内容来源于stack exchange,提问作者uncrayon

