飞牛 OS 重启后会偶尔无法识别 APC 施耐德 Back-UPS BK650M2_CH,日志报错 UPS 已失去连接。

寻找后发现 nano /etc/nut/ups.conf 文件中 serial 项出现问题,显示""

解决办法是开机时将 UPS 连接成功时(反复重启几次,会连接成功)的 conf 配置文件覆盖掉原始文件(UPS 插入的 USB 口不变的情况下)。
【注意】若配置好的文件目录放在挂载目录下(如 /vol1/1000/),会失败,因为重启运行服务时文件还未被挂载,解决办法是延迟启动服务。下面是教程(代码是 AI 制作,经测试已成功解决问题)
目标:在飞牛系统中实现开机时强制替换 /etc/nut/ups.conf 文件,使用 Systemd 服务方案。
以下是详细步骤:
步骤1:创建Systemd服务文件
sudo nano /etc/systemd/system/replace-ups.conf.service
文件内容如下:
[Unit]
Description=Replace NUT ups.conf after 3-minute delay
After=network-online.target local-fs.target
[Service]
Type=oneshot
User=root
ExecStartPre=/bin/sleep 180
ExecStart=/bin/cp -f /vol1/1000/Files1/UPS/ups.conf /etc/nut/ups.conf
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
说明如下:
- 我这里延迟启动 3 分钟,可自行更改,将 ExecStartPre=/bin/sleep 180 中 180 改为自己想要的时间即可,单位是秒;
- 我的配置文件路径是 /vol1/1000/Files1/UPS/ups.conf,可自行更改。
结果如图:

步骤2:启用并启动服务
sudo systemctl daemon-reload # 重新加载Systemd配置
sudo systemctl enable replace-ups.conf.service # 启用开机启动
sudo systemctl start replace-ups.conf.service # 手动测试服务
步骤3:验证替换效果
-
检查文件内容
sudo diff /vol1/1000/Files1/UPS/ups.conf /etc/nut/ups.conf
若无输出则表示文件完全一致,替换成功。
-
查看服务日志
sudo journalctl -u replace-ups.conf.service -b # 查看Systemd服务日志
-
重启验证
sudo reboot
重启后再次检查文件内容以及看 UPS 是否自动连接成功。