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 — 通过硬件复位启动到备份固件
如果手动上传失败或升级尝试后设备变得无法访问,可以使用复位按钮强制加载备份(主)固件:
- 断开设备电源。
- 按住 Reset 按钮并重新接通电源。
- 继续按住按钮约 5 秒,直到设备完成启动过程。
- 松开按钮。
设备将加载备份固件并应用出厂默认配置。它可以通过 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:
- 在设备通电的情况下,按住 Reset 按钮。
- 一直按住,直到用户 LED 开始闪烁(约 5 秒)。
- 松开按钮。
设备将把 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 固件。