FortiGate防火墙格式化重装固件

FortiGate防火墙格式化及重装固件

FortiGate 防火墙在长期运行过程中,可能会遇到固件损坏、升级过程中断电导致系统分区写坏、flash 空间不足、设备反复重启或卡在启动画面无法进入系统等情况。这时候 Web 管理界面的常规固件升级已经无法使用,必须连接 Console 串口进入 Boot Menu(引导菜单),先格式化 boot device(引导设备),再通过 TFTP 服务器重新刷入固件。本文把整个流程拆成可执行的步骤,并附上每一步的参数说明和常见报错处理。

一、什么情况下需要格式化并重装固件

  • 固件升级失败,设备启动后卡在 Starting system 或不断重启,无法进入登录界面。
  • 从 FortiOS 高版本降到低版本,系统提示分区大小不足,必须先重新镜像。
  • flash 出现坏块,日志里频繁提示读写错误,配置无法保存。
  • 设备从二手渠道购入,需要彻底清除前一位管理员的所有配置、证书和残留文件。
  • Web 界面(System > Fabric Management 或 Firmware & Registration)上传固件后校验失败,反复回滚。
  • 忘记管理员密码且恢复出厂(reset)也无法解决,需要清空 flash。

二、准备工作:工具、线材与固件

  • Console 线:RJ45 转 USB 或 RJ45 转 DB9 串口线,用于进入 Boot Menu。USB 转串口的芯片建议使用 FTDI 或 PL2303,驱动稳定。
  • 串口参数:绝大多数 FortiGate 使用 9600 波特率、8 数据位、无校验、1 停止位(8-N-1),无流控。部分较新的 F 系列和 G 系列机型默认 115200。如果完全没有输出,先切换波特率再排查线材。
  • TFTP 服务器:Windows 可用 tftpd64、3CDaemon,Linux 用 tftpd-hpa,macOS 自带 tftpd。必须把固件文件放在 TFTP 的根目录(Root Directory)下。
  • 固件文件:登录 support.fortinet.com 下载对应型号的 .out 文件,型号必须完全一致(例如 FGT_60F 不能刷 FGT_60E 的固件,外形相同也不行)。
  • 网线:连接 FortiGate 的 MGMT 口或 internal 口,与 TFTP 服务器放在同一网段。
  • 备份配置:格式化会清空设备上的一切,备份必须在动手之前完成。
  • 设备断电权限:部分流程需要物理断电重启。

三、第一步:备份配置与记录设备信息

这是整个流程中最重要的一步。格式化会把 flash 上的固件、配置、日志、本地 VPN 证书一起清掉,没有任何恢复手段,只能靠备份。

Web 界面路径:System > Configuration > Backup,勾选加密后导出 .conf 文件。

命令行方式(推荐,可以拿到完整配置):

# 通过 TFTP 备份完整配置
execute backup config tftp fortigate-backup.conf 192.168.1.100

# 如果机型支持 USB 存储,可以直接备份到 U 盘
execute backup config usb fortigate-backup.conf

# 记录型号、序列号、当前固件版本,重装后需要对照
get system status
get hardware status

# 把当前完整配置直接打印出来留档(内容很长,建议重定向到终端日志)
show full-configuration

# 单独导出本地证书,格式化会一并删除
show vpn certificate local
show vpn certificate local-detail all

另外建议记录:License 状态、FortiGuard 订阅到期时间、当前所有接口 IP 与路由,这些信息在重装后重新注册时需要用到。

四、第二步:搭建 TFTP 环境

  1. 把目标固件 .out 文件复制到 TFTP 服务器的根目录,并确认文件名没有多余空格或中文。
  2. 把服务器网卡 IP 设为固定地址,例如 192.168.1.100/24。
  3. 临时关闭该网卡上的 Windows 防火墙或安全软件,TFTP 使用 UDP 69 端口,很容易被拦截。
  4. 准备给 FortiGate 使用一个同网段但不冲突的地址,例如 192.168.1.99/24。

五、第三步:进入 Boot Menu

用 Console 线连好设备,打开终端软件(SecureCRT、PuTTY、macOS 的 screen /dev/tty.usbserial-xxxx 9600 都可以),然后重启设备:

execute reboot

重启过程中会看到提示:

Press any key to display configuration menu..........

必须在 3 秒内按任意键打断启动。错过就只能重新 execute reboot 再来一次。成功打断后出现如下菜单:

[C]: Configure TFTP parameters.
[R]: Review TFTP parameters.
[T]: Initiate TFTP firmware transfer.
[F]: Format boot device.
[I]: System information.
[B]: Boot with backup firmware and set as default.
[Q]: Quit menu and continue to boot.
[H]: Display this list of options.
Enter C,R,T,F,I,B,Q,or H:

如果按键没有反应,先确认终端软件的流控(Flow Control)设为 None,再检查串口线是否为 Null Modem 线序。

六、第四步:格式化 Boot Device

在 Boot Menu 中按 F,系统会再次确认是否要擦除引导设备上的全部数据,输入 Y 确认:

Enter F,R,T,F,I,B,Q,or H: F
This operation will erase all data on the boot device.
Do you want to continue? (y/n) y

格式化过程通常持续几十秒到几分钟,视 flash 容量而定。完成后设备会自动重启,此时重新按任意键进入 Boot Menu,准备刷固件。

需要注意:格式化之后设备上已经没有任何可引导的系统,在固件传输完成前不要断电,否则设备将无法启动,只能返厂处理。

对于带独立日志盘或 SSD 的机型,也可以在系统正常运行时用 CLI 清理,但要区分清楚对象:

# 查看存储设备情况
get system status
diagnose sys flash list

# 格式化日志盘(不影响配置,仅清日志)
execute format disk

# 格式化 flash(会清空配置,慎用)
execute format flash:

七、第五步:配置 TFTP 参数并传输固件

回到 Boot Menu 后按 C 进入 TFTP 参数菜单:

[P]: Set firmware download port.
[D]: Set DHCP mode.
[I]: Set local IP address.
[S]: Set local subnet mask.
[G]: Set local gateway.
[V]: Set local VLAN ID.
[T]: Set remote TFTP server IP address.
[F]: Set firmware file name.
[E]: Reset TFTP parameters to factory defaults.
[R]: Review TFTP parameters.
[N]: Diagnose networking (ping).
[Q]: Quit this menu.

推荐填写值:

  • P(下载端口):internal 或 MGMT1,与你实际插网线的接口一致。
  • D(DHCP):Disabled。
  • I(本地 IP):192.168.1.99(不能与 TFTP 服务器或网络中其他设备冲突)。
  • S(子网掩码):255.255.255.0。
  • G(网关):同一网段可留空,跨网段则填网关地址。
  • V(VLAN ID):none,对应输入 -1。
  • T(TFTP 服务器 IP):192.168.1.100。
  • F(固件文件名):例如 FGT_60F-v7.0.12.F-build1234-FORTINET.out,必须与 TFTP 根目录下的文件名完全一致,含大小写。

填完后按 Q 返回上级菜单,按 R 复核参数,再用 N 测试网络连通性(相当于 ping TFTP 服务器)。确认无误后按 T 开始传输:

Total 41234567 bytes data downloaded.
Verifying the integrity of the firmware image..
Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?

选择 D(Save as Default firmware),把新固件写入主分区。传输和写入期间请勿断电、勿拔网线。

八、第六步:首次登录与恢复配置

固件写入完成后设备自动重启,默认管理地址是 https://192.168.1.99,用户名 admin,密码为空,首次登录会强制要求设置新密码。然后恢复配置:

# 通过 TFTP 恢复配置
execute restore config tftp fortigate-backup.conf 192.168.1.100

# 从 U 盘恢复
execute restore config usb fortigate-backup.conf

恢复完成后建议做一轮验证:

get system status
get system performance status
show system interface
diagnose sys session stat
execute ping 8.8.8.8

确认接口 IP、路由、策略、VPN 隧道都正常,再恢复对外业务。

九、其他几种重装/降级方式

  • CLI 在线刷固件(设备能正常启动时使用):execute restore image tftp <固件文件名> <TFTP服务器IP>,或者 execute restore image usb <文件名>。
  • U 盘自动安装:把固件重命名为 image.out 放到 U 盘根目录,插入 FortiGate 的 USB 口,重启后设备会自动检测并安装(部分型号与 FortiOS 版本支持)。
  • Web 界面升级:System > Fabric Management(旧版本为 System > Firmware)上传 .out 文件,适合常规升级或降级。
  • FortiConverter / 管理平台批量操作:多台设备统一版本时使用。

十、常见问题排查

  1. 串口完全无输出:先换波特率(9600 ↔ 115200),再检查线序和驱动,确认终端软件流控为 None。
  2. 提示 Press any key 但按键无反应:某些终端软件的按键不回传,改用 minicom、screen 或 SecureCRT 重试。
  3. TFTP 传输超时或进度不动:检查两边是否同网段、TFTP 是否被防火墙拦截、是否填错下载端口 P;用菜单里的 N 选项 ping 测试。
  4. 校验失败提示 image is not valid:固件型号不匹配或下载文件损坏,重新从官网下载并核对 MD5。
  5. 格式化后无法再次进入 Boot Menu:可能是存储介质或主板故障,需要走 RMA 流程。
  6. 恢复配置报版本不兼容:配置文件的 FortiOS 版本必须不高于当前固件,先刷回原版本再恢复,或手工重建关键配置。
  7. 重装后 FortiGuard / License 失效:在 FortiCloud 或 support.fortinet.com 上重新注册设备并激活服务。

十一、命令行速查

  • execute reboot —— 重启(用于进入 Boot Menu)
  • execute backup config tftp <文件名> <服务器IP> —— 备份配置
  • execute restore config tftp <文件名> <服务器IP> —— 恢复配置
  • execute restore image tftp <固件文件> <服务器IP> —— 刷写固件
  • execute format flash: —— 格式化 flash(清空配置)
  • execute format disk —— 格式化日志盘
  • get system status —— 查看型号、序列号、固件版本
  • diagnose sys flash list —— 查看 flash 分区

参考

总结:格式化重装是 FortiGate 最后的救命手段,核心顺序是「备份配置 → 进 Boot Menu → F 格式化 → C 配置 TFTP → T 传输固件 → 选 D 写入 → 恢复配置 → 重新注册」。其中任何一步都不可逆,动手之前务必备份配置并确认固件型号与设备完全匹配。