[小问题]飞牛 NAS SMB 服务无法启动故障排查记录

故障现象

飞牛OS 在升级到1.19版本后,SMB 文件共享服务无法启动。通过 Web 界面重新启动服务,提示失败无效,系统日志显示服务状态异常。

日志分析与诊断

检查服务状态

通过 SSH 登录 NAS,执行以下命令查看 SMB 服务状态:

1
sudo systemctl status smbd

输出显示服务处于 failed 状态,错误代码为 203/EXEC

1
2
3
4
× smbd.service - Samba SMB/CIFS daemon (smbd)
Loaded: loaded (/etc/systemd/system/smbd.service; enabled; preset: enabled)
Active: failed (Result: exit-code)
Process: 63439 ExecStart=/usr/sbin/smbd -D $SMBDOPTIONS (code=exited, status=203/EXEC)

查看详细日志

执行以下命令获取详细错误日志:

1
sudo journalctl -u smbd -n 50

关键错误信息如下:

1
2
Mar 21 21:52:22 FN-NAS (smbd)[63422]: smbd.service: Failed to locate executable /usr/sbin/smbd: No such file or directory
Mar 21 21:52:22 FN-NAS (smbd)[63422]: smbd.service: Failed at step EXEC spawning /usr/sbin/smbd: No such file or directory

分析: 系统无法找到 /usr/sbin/smbd 可执行文件,导致 systemd 无法启动服务。错误代码 203/EXEC 通常表示可执行文件缺失或权限不足。

验证文件是否存在

1
ls -l /usr/sbin/smbd

返回结果:

1
ls: cannot access '/usr/sbin/smbd': No such file or directory

确认二进制文件确实丢失。

检查软件包状态

执行以下命令检查 Samba 软件包的安装状态:

1
dpkg -l | grep samba

输出显示多个核心包的状态为 hi

1
2
3
hi  samba
hi samba-common
hi samba-common-bin

分析: hi 状态代表 Half-Installed(半安装)。这表明之前的更新过程中软件包安装过程被中断(如断电、进程杀死),导致文件未完全解压,但包管理器认为安装已部分完成。

根本原因

Samba 软件包处于“半安装”状态,导致核心二进制文件 /usr/sbin/smbd 未写入磁盘。此外,本地残留版本(deb12u1)与软件源最新版本(deb12u3)存在依赖冲突,阻碍了直接修复。

修复步骤

更新软件源

同步本地包列表以获取最新版本信息:

1
sudo apt update

尝试修复依赖

执行自动修复命令:

1
sudo apt --fix-broken install

若此步骤未解决版本冲突,需强制重新安装核心组件。

重新安装 Samba 组件

直接指定所有 Samba 相关包升级到当前软件源中的最新版本(deb12u3),打破依赖死锁:

1
2
3
4
#一定要更新软件包列表
apt update

sudo apt install samba=2:4.17.12+dfsg-0+deb12u3 samba-common=2:4.17.12+dfsg-0+deb12u3 samba-common-bin=2:4.17.12+dfsg-0+deb12u3 samba-libs=2:4.17.12+dfsg-0+deb12u3 python3-samba=2:4.17.12+dfsg-0+deb12u3 libldb2=2:2.6.2+samba4.17.12+dfsg-0+deb12u3 samba-dsdb-modules=2:4.17.12+dfsg-0+deb12u3 samba-vfs-modules=2:4.17.12+dfsg-0+deb12u3 --allow-downgrades --allow-change-held-packages

处理配置向导

安装过程中会出现 debconf 配置向导界面,提示是否自动配置 smb.conf

QQ20260321-22055-10

操作选择: 必须选择 **<No>**。

原因: 飞牛 NAS 的 smb.conf 包含系统自定义配置(如 include 行、权限映射)。选择 <Yes> 会覆盖为标准 Debian 配置,导致 Web 管理界面无法接管 SMB 服务或共享权限失效。

操作方法: 使用 Tab 键或方向键切换选中 <No>,按 Enter 确认。

重载系统守护进程

安装完成后,重载 systemd 配置:

1
sudo systemctl daemon-reload

验证结果

启动服务

1
sudo systemctl start smbd

检查状态

1
sudo systemctl status smbd

成功输出示例:

1
2
3
4
5
6
7
● smbd.service - Samba SMB/CIFS daemon (smbd)
Loaded: loaded (/etc/systemd/system/smbd.service; enabled; preset: enabled)
Active: active (running)
Main PID: 7450 (smbd)
Tasks: 3
Memory: 6.5M
CPU: 97ms

此时重新开启SMB,可以正常启用了

image-20260321221757590

免责声明

本文档仅供技术参考与交流使用,读者在据此操作前请务必知悉以下事项:

  1. 操作风险自负
    文中涉及的命令行操作可能对系统造成影响。读者应自行评估风险,因操作导致的任何数据丢失、系统故障或其他损失,作者不承担责任。
  2. 数据备份义务
    在执行任何系统级修复操作前,请务必完整备份重要数据及配置文件。建议备份至独立存储设备。
  3. 系统环境差异
    本文基于飞牛 NAS(FnOS)特定版本环境编写。不同版本、不同硬件平台的系统结构可能存在差异,文中方法不一定适用于所有场景。
  4. 不保证适用性
    作者不保证文中方法能解决所有同类问题,也不保证操作后系统功能的完整性。部分操作可能导致 Web 管理界面与命令行配置不同步。