Cannot upgrade SwOS


Cannot upgrade SwOS


概述

支持 SwOS 的 MikroTik 交换机在闪存中存储两个独立的固件镜像:一个主(primary)(活动)镜像和一个**备份(backup)**镜像。正常运行时,设备从主镜像启动。当启动固件升级时——无论是通过 Web 界面自动进行还是通过文件上传手动进行——设备会将新镜像写入主槽并从中重启。

升级失败通常由以下原因之一引起:

  • 选择了错误的固件文件(型号或固件分支错误)
  • 写入操作被中断,导致主镜像损坏
  • 网络连接问题,导致自动下载无法到达 MikroTik 服务器
  • 在双启动设备上:device-mode 策略限制了 OS 切换(RouterOS 7.17+)

仅 SwOS 设备和双启动设备需要不同的恢复步骤,下面分别描述。


开始之前

Warning: 本文所述的复位按钮操作将清除活动配置并加载出厂默认值。在继续操作之前,请从 System 选项卡导出配置备份。

在尝试手动升级之前,请确认您需要哪个固件文件。每个交换机系列使用专用的固件二进制文件——跨系列的固件文件不可互换,会被拒绝或导致启动失败。适用于您设备的正确文件可在以下位置找到:

mikrotik.com Software download centre


解决方案

仅 SwOS 设备(CSS 系列)

这些设备不运行 RouterOS,也没有串行控制台启动菜单。恢复依赖于存储在受保护闪存分区中的硬件备份固件。

Step 1 — 尝试手动上传固件

导航到 SwOS Web 界面中的 Upgrade 选项卡,为您的设备型号选择正确的 .swos 固件文件,然后点击 Upgrade。在写入过程中请勿中断电源。上传完成后,设备将自动重启。重新加载 Web 界面并验证 System 选项卡中显示的固件版本。

Step 2 — 通过硬件复位启动到备份固件

如果手动上传失败或升级尝试后设备变得无法访问,可以使用复位按钮强制加载备份(主)固件:

  1. 断开设备电源。
  2. 按住 Reset 按钮并重新接通电源。
  3. 继续按住按钮约 5 秒,直到设备完成启动过程。
  4. 松开按钮。

设备将加载备份固件并应用出厂默认配置。它可以通过 192.168.88.1 或 DHCP 分配的地址访问。

Step 3 — 重新尝试手动上传固件

一旦设备在备份固件上可访问,请重复 Step 1 中的手动升级过程。备份固件环境提供了干净的状态,升级更有可能成功。


双启动设备(CRS 系列)

双启动设备同时存储 SwOS 和 RouterOS,可以启动到任一操作系统。这提供了额外的恢复路径,包括通过 RouterOS CLI 进行升级。

Step 1 — 尝试手动上传固件

与仅 SwOS 设备一样,首先通过 SwOS Web 界面中的 Upgrade 选项卡,使用适用于您设备的正确固件文件尝试手动升级。

Step 2 — 通过串行控制台启动到备份 SwOS

如果手动上传失败,请使用具有以下参数的串行控制台电缆连接到设备:

参数值
波特率115200
数据位8
停止位1
奇偶校验无
流控制无

在启动菜单提示符下,选择:

p - boot primary SwOS

这将加载出厂备份 SwOS 镜像。一旦设备可访问,请按照 Step 1 中所述重新尝试手动上传固件。

Step 3 — 通过复位按钮启动到 RouterOS(无控制台访问权限)

如果没有可用的串行控制台端口或手边没有电缆,可以使用复位按钮强制设备进入 RouterOS:

  1. 在设备通电的情况下,按住 Reset 按钮。
  2. 一直按住,直到用户 LED 开始闪烁(约 5 秒)。
  3. 松开按钮。

设备将把 RouterOS 配置重置为出厂默认值并启动到 RouterOS。

Warning: 此操作会重置 RouterOS 配置。如果设备之前运行的是 RouterOS,请确保在继续操作之前存在 RouterOS 配置备份。

Step 4 — 从 RouterOS CLI 升级 SwOS

一旦启动到 RouterOS,就可以直接升级 SwOS,而无需使用 Web 界面。以下命令会获取并安装适用于该设备的最新可用 SwOS 固件:

/system swos upgrade

此命令需要 Internet 访问权限,以便从 MikroTik 的更新服务器解析并下载正确的固件包。在执行之前请验证连接性。

Step 5 — device-mode 限制(RouterOS 7.17 及更高版本)

从 RouterOS v7.17 开始,device-mode 策略限制双启动硬件上 SwOS 与 RouterOS 之间的 OS 切换。如果升级命令失败或 OS 切换被阻止,请使用以下命令明确允许该切换:

/system/device-mode/update routerboard=yes

必须在重新尝试 SwOS 升级或切换回 SwOS 之前,在 RouterOS 中执行此命令。

Step 6 — 返回 SwOS

在从 RouterOS 成功更新 SwOS 固件后,将默认启动目标设置回 SwOS 并重启设备:

/system routerboard settings set boot-os=swos
/system reboot

设备将重新启动并加载新安装的 SwOS 固件。