博科 Fabric OS 忘记密码:Boot PROM 单用户模式重置全流程 - 夜莺博客

博科 Fabric OS 忘记密码:Boot PROM 单用户模式重置全流程

博科(Brocade)交换机跑的是 Fabric OS,它没有 Linux 那种"进 grub 改 init=/bin/sh"的救援通道,也没有 Web 后台的密码找回。一旦 admin 或 root 口令丢失,唯一不丢配置的入口就在主板的 Boot PROM:中断 autoboot,进引导器自带的命令行,把系统以单用户模式拉起来,再执行博科内置的 passwddefault。整个过程 10 分钟以内,但必须接串口——网络侧没有任何办法。

下面按实际操作顺序写,并把不同硬件版本上会遇到的菜单差异、以及三个最容易卡住的坑标出来。

一、先确认三件事,否则别动手

  • 必须能物理接触设备:需要原厂 Console 线(RJ45 转 DB9/USB),并且笔记本有串口或 USB 转串口线。
  • 业务会中断:重置过程要冷重启交换机,SAN 链路会断。双控存储、多路径要先确认对端能扛住,或者直接约窗口。
  • 配置要能找回:passwddefault 只改账户口令,不删 zone 和配置,但重启本身有风险。能进系统的话,先 configupload 备份一份;进不去就确认最近一次备份在哪里。

二、串口参数

博科的 Console 口是标准 9600 波特率,参数固定:

  • 波特率 9600,数据位 8,停止位 1,校验 无,流控 无
  • SecureCRT / PuTTY / minicom 都一样,流控一定要关掉,否则按 ESC 会没反应

三、进 Boot PROM:抓那 4 秒

拔掉电源再插上(冷启动,不要用 reboot,软重启不一定给中断窗口),盯着串口窗口,出现这行提示时立刻按 ESC:

Hit ESC to stop autoboot: 4

只有 4 秒,慢一点就进系统了,只能重新断电再来。

中断成功后会出现 Boot PROM 菜单,不同平台版本略有差异,常见的是三项:

1) Start system.
2) Recover password.
3) Enter command shell.

四、方案 A:直接用 Recover password(有这一项就优先用)

如果你的菜单里有 2) Recover password,这是最省事的路子。选 2,确认后引导器会直接把所有账户口令恢复成出厂默认,不需要挂载文件系统、不需要改启动参数。重启后按第六节验证即可。

没有这一项(或者选了没反应),走方案 B。

五、方案 B:单用户模式 + passwddefault

1. 进命令 Shell

菜单里选 3) Enter command shell(部分版本编号是 2),提示符会变成 =>。

2. 改成单用户启动

setenv OSLoadOptions single
saveenv
boot

系统会继续加载内核,跳过正常的多用户初始化,最后停在不需要口令的 root 提示符,形如 sh-3.2# 或 #。

3. 重新挂载根分区为可写

mount -o remount,rw /

这一步不能省。根分区默认是只读挂载的,不 remount 的话下一步写口令会直接失败。

4. 执行口令重置

/sbin/passwddefault

正常会返回:

All account passwords have been successfully set to factory default.

如果提示找不到命令,先用 ls /sbin | grep passwd 确认实际路径;个别版本把命令放在 /usr/sbin。

六、Fabric OS 出厂默认口令

账户 默认密码 说明
admin password 日常管理账户,登录后强制改密
root fibranne 底层账户,新版本默认可能已禁用
factory fibranne 制造/调试账户
user password 普通用户,权限受限

登录成功后系统会立刻要求输入并确认新密码,这一步躲不过去,提前想好要设什么。

七、关键收尾:把启动参数改回去

这一步最容易漏。如果 OSLoadOptions 还停在 single,设备下次重启仍然进单用户模式,等于把一台没有口令的 root shell 留在机房。

reboot -f

设备重启时再按一次 ESC 进 Boot PROM 命令行,恢复原值:

setenv OSLoadOptions quiet;quiet
saveenv
boot

然后正常启动,用新密码登录,确认 switchshow、cfgshow 里的 zone 配置都还在。

八、三个最容易卡住的坑

  • 按 ESC 没反应:九成是串口流控没关,或者用的是软重启。改成无流控 + 冷启动。
  • 没有 OSLoadOptions 这个变量:先在 => 下敲 printenv 看实际变量名,不同平台叫法可能不同。变量名写错时 saveenv 不会报错,但启动行为不变——注意区分"命令成功了"和"参数生效了"。
  • 双 CP 的 Director 类设备:两块控制板各有独立的 Boot PROM 和口令库,只重置当前这块 CP 不够,切到备用 CP 后照样登不进去,两块都要走一遍。

九、恢复之后必须做的事

  1. 立刻改掉 admin 口令,不要再使用 password 这类默认值。
  2. 检查 userconfig --show -a,确认没有遗留的多余账户。
  3. configupload 导出一份当前配置,存到设备之外。
  4. 如果之前 root 是启用状态,评估是否直接关掉。
  5. 翻一遍 auditlog --show,看口令丢失期间有没有被登录过。

十、版本差异说明

本文流程基于 Fabric OS 6.x–8.x 的 Boot PROM 行为。9.x 及新一代硬件平台的引导器有改动,菜单项和变量名可能不同。动手前先在 => 提示符下用 printenv 把现有环境打印出来,确认变量名再改,不要照抄命令。

十一、串口连不上的排查顺序

口令重置卡住的原因里,串口不通占一半。按这个顺序查:

  • 线序:博科的 Console 不是普通网线直连。原厂线是 RJ45 转 DB9 的 rollover(交叉)线,拿一根普通直通网线接 USB 转串口是收不到任何字符的,屏幕会一直空白。
  • USB 转串口芯片:FTDI、CH340、PL2303 在 macOS 和 Windows 上驱动行为不同,先确认系统里真的出现了串口设备节点,再打开终端软件。
  • 两端参数:9600/8/N/1、无流控、无校验。流控开着会出现"能收到启动日志但按键无响应",这个现象特别容易误判成设备坏了。
  • 设备是否真上电:电源模块、风扇、面板灯先看一眼,别对着没通电的机器敲 ESC。

十二、passwddefault 不是恢复出厂

这两个命令经常被混为一谈,后果完全不同:

命令 作用 配置是否保留
/sbin/passwddefault 把所有账户口令恢复成出厂默认 保留,zone、VSAN、IP 都不动
configdefault 清空交换机配置,回到出厂状态 全部丢失

只是想拿回登录权,就只跑 passwddefault。有人登不进去就顺手做了恢复出厂,结果整个 fabric 的 zone 全没了,还得从备份重导——这个坑很常见。

十三、单用户模式下还能顺手做什么

单用户模式本质是一个不带口令的 root shell,除了改口令,还能处理这些现场问题:

  • 账户被误删、/etc/passwd 被改坏时,直接编辑文件或用 passwd 重建。
  • 确认系统里到底有哪些账户存在,排查有没有遗留的调试账户。
  • 检查启动脚本和挂载状态,判断上次异常掉电有没有留下只读挂载之类的问题。
  • 注意:这个模式下 Fabric 服务没起来,switchshow、cfgshow 这类命令跑不了,只能做文件系统层面的操作。

十四、拿回口令之后的加固清单

  1. 关掉 Telnet:在 configure 里把 Telnet 关掉,只留 SSH;管理面再用 ipfilter 限制到跳板机网段。
  2. 分权:不要所有人共用 admin,用 userconfig --add 按角色建账户,只给需要的人 admin 角色。
  3. 口令策略:用 passwdcfg 设最小长度、复杂度、有效期,避免下次又出现"口令只在某个人脑子里"的情况。
  4. 配置备份:configupload 定期导出到设备之外。这次能靠 passwddefault 救回来,是因为配置还在;如果配置也没了,就只能重建 fabric。
  5. 资产台账:把 Console 接入方式、串口参数、应急流程写进运维文档。真出事的时候,没人会去翻三个月前的聊天记录。

小结

博科的口令恢复路径其实很短:串口 → 中断 autoboot → Recover password 或单用户模式 → passwddefault → 把 OSLoadOptions 改回去。真正容易出错的不是命令,而是三个细节:ESC 的四秒窗口、根分区要 remount rw、以及最后必须还原启动参数。把这三步做对,一台"登不进去"的交换机十分钟就能回到手上。

相关阅读:Brocade FC Zoning with CLI: Aliases, Zones and Configs、SAN NPIV and NPV: Fibre Channel Port Virtualisation、Cisco MDS Fibre Channel Zoning and VSAN Configuration。