1. 为什么忘掉Console密码后非得进Bootroom不可干网络运维这行谁还没被几台设备“锁在门外”过。尤其是H3C的交换机项目上架完、配置调完、密码设完隔了半年或者一年再进机房去维护输入旧密码直接报错——大概率是中间有人动过设备或者当初交接的密码记录没跟上。更常见的情况是从二手渠道买回来的设备上一手使用者压根没告诉你Console密码是多少。这时候最直接的念头可能是“按复位键恢复出厂”。但我要先把丑话说在前面部分框式设备或者做了IRF堆叠的机型按了Reset键之后不只是清配置还可能导致整台设备起不来、IRF分裂甚至把启动文件弄丢那就从“密码进不去”变成“设备直接趴窝”了。相比之下H3C交换机的Bootroom菜单是设备自带的一套底层引导程序它不依赖系统里的配置文件天然就是专门用来做底层恢复、引导修复和紧急维护的入口。用Bootroom菜单清Console密码的原理简单说就是不加载当前启动配置文件里的认证模块让设备以“跳过认证”或“跳过当前配置”的方式引导到命令行然后你就能重新进到系统视图把Console口密码删掉或者重置最后保存配置。整个过程不用拆机、不用动硬件只需要一根Console线和能操作终端软件的电脑。下面这份操作记录我按H3C最常见的Comware V7版本比如S5130、S5560、MSR系列大部分设备来做演示V5版本的老设备S3100、S3600系列入口略有不同我也会专门标注差异。适合谁看跑过几个月项目但没怎么碰过底层恢复的初级运维以及需要在机房现场快速救急、不想翻文档的老手都可以直接按步骤抄作业。2. Bootroom菜单到底是个什么东西2.1 引导加载程序的角色如果把交换机比作一台电脑Bootroom就相当于电脑里的BIOS或者UEFI引导程序。设备通电之后CPU最先执行的并不是完整的主机操作系统Comware系统而是一段固化在Flash或者ROM里的小程序这段程序负责初始化内存、加载硬件驱动、找到启动文件然后把系统从Flash里搬进内存运行。H3C设备的Bootroom还承担了一个很重要的职责它自己有一套独立的菜单交互界面。哪怕Comware系统文件损坏、配置文件错误导致系统反复重启只要Bootroom还能正常起来你就有机会从这里着手恢复。所以当交换机出现“启动到一半卡住”“反复重启”“密码失联”这类问题Bootroom都是最后的救援通道。2.2 菜单里各项功能都是干嘛的以Comware V7设备为例进入Bootroom菜单之后你通常能看到类似下面这些选项不同版本、不同型号可能有多有少但核心功能是类似的菜单选项英文标识功能说明下载文件到内存Download File To RAM通过网络FTP/TFTP或串口把系统文件加载到内存修改启动文件Modify Boot File手动指定要引导的系统文件常用于系统升级或损坏恢复修改文件系统Modify File System操作Flash里的文件比如删除配置、备份启动文件跳过当前配置Skip Current Configuration启动时不加载当前启动配置文件恢复出厂设置Restore To Factory Default Configuration清空所有配置并恢复出厂慎用跳过认证Skip Authentication For Login跳过用户的登录认证直接进命令行清除Super密码Clear Super Password清除3级权限和Super密码需要指出的是“跳过认证”和“跳过当前配置”是两个完全不同的功能。跳过认证只是在登录这一步绕过密码校验配置里的其他内容VLAN、接口、路由依然全部保留系统还是按原有配置在跑跳过当前配置则是不加载整套配置文件设备以空配置启动等于临时进入一台“出厂状态但配置还在Flash里”的设备。清Console密码的正确姿势优先用“跳过认证”因为这样干扰最小、恢复最快后续配置也不容易出问题。2.3 为什么说“跳过认证”是最稳妥的方案拿生活里的场景打比方这就好比住户忘带钥匙进不了家门。跳过认证相当于请开锁师傅用技术手段无损开门门锁、门内的东西都原封不动恢复出厂设置则相当于直接砸墙换门虽然最终也能进去但屋里的装修所有配置都没了。所以除非设备本来就打算重新配置否则不要轻易选恢复出厂。具体到操作层面选择跳过认证后设备启动完毕会直接进入一个没有密码限制的命令行环境但你仍然拥有用户视图和系统视图的操作权限。这时候不仅能清Console密码还能顺便查看配置、备份配置一举多得。唯一需要注意的就是在清除密码之后、重启设备之前必须保存配置否则这次跳过认证只是在内存里生效下次重启又原形毕露。3. 动手前的准备工作这些东西一件都不能少3.1 硬件和连接准备先清点一下需要用到的装备缺一样可能就得临时跑腿H3C交换机一台确认Console口的位置。标准Console口通常是RJ45形状有两种外观一种是普通的RJ45网口形状但千万不能插网线到业务口里另一种是带螺丝锁紧的“航空头”形状多见于早期设备。Console调试线一根。这个线的两端是不同的一头是DB9串口公头少数老笔记本是DB25现在很少见了另一头是RJ45水晶头。有些新买设备附赠的线是USB转Console一体线那就直接当USB线用。如果电脑上没有原生串口需要准备一根USB转串口转换器并安装好对应驱动常见芯片有CH340、CP2102、FT232Windows 10/11系统大部分会自动识别不识别就装个驱动精灵或者去芯片官网装驱动。终端软件推荐SecureCRT、Xshell、PuTTY大家用得比较多的是Xshell和SecureCRTPuTTY免安装随开随用适合在客户现场来不及装软件的情况。连接顺序先把Console线RJ45头插到交换机的Console口注意听“咔嗒”一声确保插紧另一头接到电脑的串口或者USB口然后给交换机上电。注意Console线接入时建议在设备关机或上电前插好避免热插拔串口导致电脑串口芯片异常。3.2 终端软件的参数设置打开SecureCRT或Xshell新建一个串口连接。这里有个非常关键的步骤就是波特率的设置。H3C设备Console口默认波特率在大部分V7设备上是9600但也有部分设备默认是38400或115200而且某些老设备在Bootroom菜单里是38400。如果你用9600连进去发现满屏乱码先别急着怀疑线坏了去Bootroom菜单里看看波特率显示或者换19200/38400/115200一组一组试。参数建议配置如下波特率9600如果乱码逐一尝试19200/38400/115200并确认设备侧菜单里显示的波特率数据位8停止位1奇偶校验无流控无其中流控必须设为“无”这是很多新手最容易忽略的地方。如果流控被误设为RTS/CTS你在终端里敲键盘经常只会显示一半或完全没反应还以为是设备死机了。配置完成后先让交换机重新上电终端窗口里应该能看到启动日志滚屏。看到类似“Press CtrlB to enter Boot Menu”的提示时就说明Console链路已经通了。4. 进入Bootroom菜单并按步骤清除Console密码4.1 各版本设备进入Bootroom菜单的方法差异H3C设备进入Bootroom的快捷键在不同版本、不同型号上会有些区别。我自己经手过的设备大致可以分成下面几类设备系列进入方式提示信息Comware V5老设备S3100/S3600/S5500-EI等设备上电后按CtrlBPress CTRLB to enter Boot MenuComware V7设备S5130/S5560/MSR/S7500E等设备上电后按CtrlBPress CtrlB to enter Boot Menu部分框式设备主控板连接主用主控板Console口上电后按CtrlB提示可能带有“CtrlB”字样新版本/模拟器中上电出现提示时直接按CtrlB模拟器HCL也是一样的按键这个按键时机非常关键。设备启动过程其实很短从开始跑码到出现“Press CtrlB”提示往往只有三五秒如果你盯着屏幕发呆很可能就错过了。最稳妥的做法是在给交换机上电之前先把光标定位到终端窗口里然后在按下电源开关的同时以大约每秒3次的频率连续敲击CtrlB组合键。宁可多按几次也别错过窗口。有小部分早期V5设备进入的是Boot Menu而不是Bootroom菜单风格是英文列表加数字编号功能路径略有不同但核心思路一致找到跳过认证Skip Authentication或者跳过配置文件加载的选项。4.2 以Comware V7为例的完整操作流程下面我以一台H3C S5130-28S-EIComware V7为例把每一步截图级别的操作写清楚。你实际操作时看到的信息可能略有差异但结构上是相通的。第一步终端里连接好Console线打开SecureCRT新建串口连接波特率9600其他参数按上文设置。第二步给交换机上电快速连续按CtrlB。如果成功会看到Bootroom主菜单类似EXTENDED-BOOTROM MENU |1 Boot System | |2 Enter Ethernet Submenu | |3 Enter Filesystem Submenu | |4 Enter Controller Submenu | |5 Modify Boot File | |6 Skip Current Configuration | |7 Skip Authentication For Login | |8 Restore To Factory Default Configuration | |0 Reboot | 第三步输入7回车选择“Skip Authentication For Login”。如果你的菜单选项编号有差异就找带“Authentication”字样或“Skip”字样的那一项通常就是跳过登录认证。选择了之后设备会提示类似“Skip authentication for login? [Y/N]”的确认输入Y并回车。第四步选择0或直接重启设备会带着“跳过认证”的标记继续引导。启动过程的日志会正常滚动最终进入命令行而且不再要求输入Console密码直接就是用户视图提示符。第五步现在就进入“手术”环节了。先输入以下命令看一眼当前配置里的Console口认证方式H3C system-view [H3C] display this在系统视图下可以检查一下用户接口的配置。Console口对应的用户接口一般是AUX部分老设备或者VTY下的console口常见的写法是在系统视图下进入user-interface aux 0新平台是line aux 0或者user-interface console 0不同版本命令有差异。为了稳妥直接用完整命令操作[H3C] user-interface console 0 [H3C-line-console0] authentication-mode none [H3C-line-console0] undo set authentication password第一行user-interface console 0是进入Console用户接口配置视图第二行authentication-mode none表示不需要认证可以免密登录第三行undo set authentication password是删除之前设置的密码。如果你的设备上Console口还配置了本地用户认证比如连的是认证服务器或者本地用户表还需要把对应的本地用户禁用或删除否则可能提示“local user not exist”之类的报错。但绝大多数情况把Console口的认证模式改为none再删除密码就够了。操作完毕后按CtrlC或输入return返回用户视图执行save命令保存配置H3C save force这里要特别强调save force是“强制保存不询问文件名”的快捷写法。如果你输入save后系统问“The current configuration will be written to the device. Are you sure? [Y/N]”直接输入Y并回车文件名保持默认即可。没有保存这一步重启之后密码清除操作失效。第六步重启设备验证效果。可以输入reboot系统会问是否保存当前配置选择不保存或再次保存都行因为刚才已经保存过了。等设备重启完毕终端窗口会直接出来 提示符不再询问密码。4.3 如果菜单里没有“跳过认证”选项该怎么走遇到一些精简版Bootroom菜单里面没有单独的“Skip Authentication For Login”项只有“Skip Current Configuration”也是可以处理的。这种情况在部分V5老设备上比较常见。选择跳过当前配置Skip Current Configuration之后设备启动不会加载startup.cfg里的配置近似于以空配置的方式进入系统。这时候你需要把原来配置文件里的Console密码部分删掉然后把配置再恢复过来。但手动恢复配置的工作量太大所以我们用另一种思路先不加载配置启动然后让设备加载原有配置文件再清密码。具体操作是设备以空配置启动之后执行以下命令查看当前启动配置文件H3C display startup记下当前启动配置文件的名称默认通常为startup.cfg。然后在用户视图下执行H3C system-view [H3C] restore startup-configuration from flash:/startup.cfg [H3C] return H3C save force H3C reboot这条命令的意思是把Flash里原来的配置恢复到当前配置中。恢复完成后你再通过display current-configuration查看会发现当年配置的所有版本、接口、VLAN又都回来了接着按4.2节的第五步去Console口清密码、保存就算大功告成。需要注意restore startup-configuration这条命令的作用是把配置文件内容载入当前生效配置但并不会覆盖Flash里的startup.cfg文件本身。也就是说你现在的当前配置和起始配置就是同一份后续再save就是修改后的新配置了。4.4 IRF堆叠设备和框式设备的注意事项如果你遇到的是IRF堆叠环境两台或更多台设备堆在一起或者框式设备如S7506E进Bootroom前一定要多留个心眼。IRF堆叠环境下两台设备共享同一套逻辑配置Console密码往往也是统一的。如果主设备掉电了从设备可能会自动接管这时你连Console口看到的可能是从设备的命令行。建议物理检查IRF成员设备的Master状态灯优先连接Master设备的Console口。实在分不清就先把其中一台设备单独断电再操作另一台避免堆叠协商过程中的不可控因素干扰。框式设备比如S7506E的Bootroom入口在每块主控板上。你需要把Console线连接到主用主控板通常是Slot 0或Slot 1设备上有Active/Master指示灯的Console口再上电或重启进入Bootroom。如果只连接了备用主控板的Console口你等到的可能是另一块主控板的菜单操作路径会变得混乱。还有一个容易被忽视的点如果设备之前启用了双主控、双bootroom分区这类高级功能进入Bootroom后菜单里可能出现额外选项比如“Enable/Disable dual bootroom”。这类选项是先别动的保持默认就好除非你明确知道自己在做什么否则很容易把启动分区搞乱。5. 实操环节模拟器练手与真机操作的关键差异5.1 用H3C Cloud LabHCL模拟器提前练熟手如果你手头暂时没有真机或者担心在客户现场操作失误把配置搞丢强烈建议先用H3C官方模拟器HCLH3C Cloud Lab把全程走一遍。HCL里自带的S5820、MSR等设备镜像Bootroom菜单和真机高度一致操作路径完全可以当练手。具体练法在HCL里启动一台交换机登录后先设置一个Console密码保存然后重启设备快速按CtrlB进入Bootroom菜单按“跳过认证”启动清密码保存配置再验证。整个过程和真机几乎无差异。唯一需要注意的是HCL模拟器里设备启动速度非常快按CtrlB的时机可能要掐得比真机更紧一些多试几次就习惯了。也有很多人反馈“H3C Cloud Lab设备启动不了”这通常和VirtualBox版本不兼容、未开启CPU虚拟化、Windows Hyper-V冲突有关。如果你在模拟器里卡在启动阶段先去检查BIOS里是否开启VT-x/AMD-V再关闭Windows自带的Hyper-V和内核隔离功能最后换个VirtualBox版本一般就能解决。模拟器毕竟只是练手工具别让它耽误你学习Bootroom操作的主线。5.2 真机操作时的口令与技巧在客户机房处理真机现场环境往往不如办公环境舒适以下是我踩过坑之后总结的几个要点第一机房噪音大但千万别因为着急就漏看启动日志。按CtrlB进入Bootroom菜单之前设备启动日志里会滚动很多信息你只需要盯住“Press CtrlB”这一行一旦出现就立刻按键。别一直按着CtrlB不放否则可能二次触发某些设备的“CtrlB死循环保护”导致反复进入菜单无法正常启动。第二Console线插到交换机的Console口之后最好用标签纸或胶带做个记号尤其是现场线缆较多时防止和网线混淆。平时我们见过很多次有人一边插Console线一边误把网线插进了Console口或者把Console线插进了业务口导致终端完全无输出排查半天才发现插错口。第三操作过程中如果终端软件出现“连接断开”或“无响应”不要慌。先检查Console线是否松动、USB转串口驱动有没有掉再试试关闭终端软件重新打开连接。见过太多人在没保存配置时就重启设备结果白折腾一轮。5.3 恢复之后别忘了改强密码并做配置备份密码清除完成只是第一步。设备重启进入命令行后你首先要做的不是急着测试业务而是马上设置一个新的Console密码防止设备处于“裸奔”状态。设置命令参考如下H3C system-view [H3C] user-interface console 0 [H3C-line-console0] authentication-mode password [H3C-line-console0] set authentication password simple Huawei2024 [H3C-line-console0] return H3C save force这里把密码设为Huawei2024只是举例实际使用时请按照客户安全策略设置足够复杂的强密码。设置完成后可以验证一下用快捷键或直接重启确认重启后确实要输密码才能进系统。另外一条非常重要的建议趁设备在线立刻用display current-configuration导出配置备份。导出方法有两种本地用终端软件的日志功能记录会话内容或者通过FTP/TFTP把配置传到服务器。更省事的办法是把配置文件里的关键部分拷贝到本地文本文件万一后续配置改动出错还能快速回滚。6. 常见问题与排查技巧实录6.1 按CtrlB没反应进不了Bootroom这是被问得最多的一个问题。首先确认你敲击的是“Ctrl键B键”组合而不是单独按B或CtrlC。有些设备对按键时机要求严苛你可以在设备上电后每隔一秒按一次CtrlB连续按4到5次通常就能命中窗口期。如果还是进不去检查一下终端是否设了本地回显部分终端软件会在你按CtrlB时把按键字符回显到屏幕上但不影响进入菜单别被这现象干扰。如果反复尝试仍然进不了Bootroom极有可能你操作的是通过Telnet/SSH远程登录的设备而不是本机Console口连接的设备。Bootroom菜单只响应Console口输入远程登录是不可能进入的必须到现场物理接入Console线。还有个小概率情况部分设备在启动时如果检测到当前配置里启用了“password-recovery enable”之外的额外安全管理策略会禁用Bootroom菜单中的部分选项或者推迟“Press CtrlB”提示的出现。这属于企业安全策略限制需要联系设备管理员关闭相关策略后再操作。6.2 启动日志显示乱码串口乱码九成是波特率不匹配。先看终端软件底部有线缆状态和波特率标识把波特率改为19200或38400尝试如果都不行再试试115200。改完波特率后需要重新打开会话或关闭再连接一次。另一个可能原因是数据位、停止位或奇偶校验设置不对按标准参数8位数据、1位停止、无校验设置即可。如果线本身是劣质线或过长超过15米信号衰减也会导致乱码换一根短线通常能解决。6.3 跳过认证启动后配置还在不在这是很多人最关心的问题。跳过认证启动时设备不会加载当前启动配置里的认证部分但配置文件中其余内容VLAN、接口地址、路由、ACL等依然会加载生效。换句话说业务配置还是正常的只是登录不需要密码。这正好也是为什么这个方案比“恢复出厂设置”安全得多的原因。当你在这种状态下执行save force保存配置时系统会把当前生效配置写入Flash。如果你没有做任何其他配置修改只改动了Console密码相关项那保存的配置也就是在原有基础上调整了认证方式不会丢配置。6.4 清除密码后登录提示“Authentication type is not supported”这种报错通常出现在老设备或使用RADIUS/TACACS认证的设备上。当Console口配置的认证模式不是本地的password或none而是指向AAA服务器时输入undo set authentication password之后认证模式可能还挂着AAA的配置导致系统不知道怎么处理。解决办法是在user-interface console 0视图下先执行authentication-mode none把认证模式改成本地免认证然后再删除密码相关配置。如果设备还提示AAA配置冲突用display current-configuration configuration user-interface查看接口下所有认证配置把多余的本地用户或AAA域引用一并清掉再保存。6.5 配置清完保存后重启又回到要密码的状态这种情况常见原因有三个一是你操作完没有执行save force配置只存在内存里重启后恢复原状。这个在4.2节里强调过再重复一遍保存是最后一道工序漏了前功尽弃。二是设备开启了双配置分区Dual Bootroom或类似功能你修改的内存配置写入的是当前分区但重启时加载了另一分区的配置。这种多框式设备比较常见需要先确认设备当前是从哪个分区启动的保存到正确的分区。三是Console口密码并非配置在user-interface console 0下而是配在了本地用户表中比如使用local-user的方式做认证。这样你光删console口下的set authentication password是没用的得找到对应的本地用户执行undo local-user xxxx或者undo password命令。排查方法是用display local-user查看所有本地用户找到名称为console或admin之类的用户逐个确认。6.6 Bootroom菜单里选项乱码或英文缩写看不懂遇到这种情况可以把菜单界面截图或拍照发给懂行的人确认但更稳妥的做法是只操作自己看得到字面含义的选项。出现乱码大多是波特率不对导致的界面渲染异常先把波特率调整为设备默认值一般是9600再重新进入。如果设备型号太老菜单本身就是全英文的那就对照本文4.2节里列出的菜单翻译来对照操作。6.7 设备忘记Console密码但还开着业务能在线清密码吗如果你当前还能通过Telnet/SSH远程登录设备那你完全不需要进Bootroom。直接在远程会话里执行以下命令清除Console密码即可H3C system-view [H3C] user-interface console 0 [H3C-line-console0] authentication-mode none [H3C-line-console0] return H3C save force只有远程登录通道也全部失联、只能物理接触设备时才需要动用Bootroom方案。这也是为什么我一直建议运维人员至少保留一种远程管理通道如SSH、带外管理、网管平台关键时刻能救命。7. 一些必须写下来的经验教训我在处理过几十台H3C设备密码恢复之后最大的感受是Bootroom菜单本身不难难的是你在现场能不能冷静判断到底该跳过认证还是跳过配置以及操作完后是否真的保存了配置。有一次在客户机房里遇到一台S5560远程登录已经全被锁死Console密码也忘了客户说配置可以丢但绝对不能重启太久。我当时下意识选了“Skip Current Configuration”结果启动后配置全空了又用restore startup-configuration把配置恢复回来多花了不少时间才搞定。后来再遇到类似场景只要确认配置不能丢就一定优先选“Skip Authentication For Login”一步到位。另外如果你的设备是H3C较新的版本部分型号在Bootroom菜单里还会多一个“Password Recovery Capability”选项默认是enabled状态。如果被改成了disabled即使进入BootroomSkip Authentication选项也会变灰无法选择。遇到这种情况先把Password Recovery Capability改为enabled保存后重启再试。最后再分享一个小技巧在客户机房操作完之后顺手把设备当前配置导出一份到U盘再打印一张设备资产标签把Console密码、远程管理地址、配置备份文件位置都写在标签背面贴到设备侧面。几毛钱的成本能省下以后大量的救急时间。这个习惯我一直坚持到现在也确实帮我避过好几次坑。