收起左侧

fnOS 1.2.0203 升级后 SMB 访问出错 Bug

1
回复
195
查看
[ 复制链接 ]

1

主题

1

回帖

0

牛值

江湖小虾

2026-7-15 22:03:58 显示全部楼层 阅读模式

fnOS 1.2.0203 SMB Bug

系统版本: X86

设备环境: 物理机 NAS(主机名 NAS4LAV),局域网直连访问。 **fnOS:1.1.3107 → 1.2.0203(2026-07-15 上午通过系统更新升级),内核 6.18.18.c877-trim,Debian 12 bookworm 基座,Samba 4.17.12。 **客户端:局域网内 Windows / Linux 均复现。

BUG现象: 升级到 1.2.0203 后,SMB 表现为"能看到主机、但共享无法发现/无法访问":客户端 ping 通、445/139 开放、主机发现正常(NetBIOS/WS-Discovery/mDNS 都有应答)、账号认证成功,但连接****任何共享(包括共享枚举必需的 IPC$)都返回 NT_STATUS_BAD_NETWORK_NAME;在 NAS 本机执行 smbclient -L 127.0.0.1 -U <用户> 同样复现。

根因分析(已在本机排查确认):

1.2.0203 自动生成的 Samba 配置(/etc/samba/smb.custom.conf/etc/samba/users/*.share.conf)引用了 vfs 模块 trimvfs objects = trim_perms full_audit trim,此为 1.2 新增),但本机 /usr/lib/x86_64-linux-gnu/samba/vfs/ 下没有 trim.so,导致 smbd 对包括 IPC$ 在内的每个共享 vfs_init 失败。syslog 关键报错(首次出现于升级当天 14:20,即 1.2 配置首次重新生成之后):

Error loading module '/usr/lib/x86_64-linux-gnu/samba/vfs/trim.so':
  cannot open shared object file: No such file or directory
error probing vfs module 'trim': NT_STATUS_UNSUCCESSFUL
smbd_vfs_init: vfs_init_custom failed for trim
make_connection_snum: vfs_init failed for service IPC$   (所有共享同样报错)

**trim.so 由贵方定制包 **samba-vfs-modules 4:4.17.12+dfsg-0+deb12u2+trim.0+b20260616.62 提供,而本机 samba 全家当时处于 Debian 原版 2:4.17.12+dfsg-0+deb12u2(且被 hold)。升级器在升级到 1.2 时未校验"新配置引用的 vfs 模块是否实际存在",导致 SMB 全灭且用户无从自愈

upgrade 链路上另发现两个仓库侧问题,导致用户无法通过 apt 自行修复:

  1. repo.fnnas.com 公网 CDN 返回的 dists/bookworm 索引是过期的(Release 日期 2026-05-19,仅含旧版 +trim-2),而 pool 中 +trim-2 的 deb 已撤下(pool/main/s/samba/*trim-2* 全部 404)——索引与 pool 不一致,按索引 404,按新文件名 200;
  2. **1.2 更新器实际使用套件 **dists/1.2.2(含 +trim.0+b20260616.62 **定制 samba),但更新器随后安装的 trim-repo-release 1.0.0 写入的 /etc/apt/sources.list.d/trim_repo.list 却指向旧套件 bookworm——源配置与实际套件不匹配,apt 看不到定制包,apt install samba-vfs-modules 只会装回不含 trim.so 的原版。

(透明起见说明:本机当天 18:26 通过"修复系统"曾成功装回定制包,18:28 因又执行了社区第三方修复包(本地 deb 降级)再次被覆盖为原版——但这不影响上述三点均为官方侧问题的结论。)

已验证的临时修复方法(供同类用户参考): **按本机 /var/lib/apt/lists/repo.fnnas.com_repo_dists_1.2.2_main_binary-amd64_Packages 索引,从 https://repo.fnnas.com/repo/pool/main/s/samba/ 下载 +trim.0+b20260616.62 的 19 个运行时包(samba / samba-libs / samba-vfs-modules / samba-common / samba-common-bin / samba-dsdb-modules / samba-ad-dc / samba-ad-provision / libwbclient0 / libsmbclient / winbind / libnss-winbind / libpam-winbind / smbclient / python3-samba / python3-ldb / libldb2 / ldb-tools / registry-tools),执行: **apt install -y --allow-change-held-packages -o Dpkg::Options::=--force-confold ./*.deb **再 **systemctl restart smbd nmbd winbind —— trim.so 恢复,全部共享与 IPC$ 立即恢复正常(已验证)。

出现频率: 必现(配置引用 trim 模块 + 模块文件缺失的组合下持续存在;社区历史上亦有多起同类"升级后 samba 定制模块丢失"反馈,如 tid 54256 / 55994 / 57667 / 2277,本次 1.2 因新增 trim 模块引用而更易触发)

联系方式: (请填写:手机号 或 X群-昵称)

日志文件: 系统诊断日志已通过"日志应用-更多-系统诊断日志"上传(请上传后勾选此项)。关键日志摘录(syslog smbd 报错、/var/log/dpkg.log 包变更记录、/var/log/apt/history.log、term.log)可按需另附。

复现步骤:

  1. fnOS 1.1.x 且机内 samba 为 Debian 原版(无 trim.so;例如曾按社区帖用原版 deb 修复过 SMB 的机器均属此态);
  2. 系统更新升级至 1.2.0203 并重启;
  3. **1.2 重新生成的 SMB 配置引用 vfs **trim → 任意客户端访问 \**NAS:认证成功但所有共享(含 IPC$)报 **NT_STATUS_BAD_NETWORK_NAME
  4. **此时 **apt install samba-vfs-modules 无法自愈(源套件指向 bookworm,索引过期且 pool 404)。

改进建议:

  1. **升级器在写入引用 **trim/trim_perms 的配置前,校验对应 .so 是否存在,缺失则自动从 1.2.2 套件安装定制 samba 包;
  2. **修正 **trim-repo-release 写入的源套件(bookworm → 与实际发布套件一致),并刷新 CDN 上过期的 dists 索引,恢复索引与 pool 一致性,让 apt 自愈通道可用;
  3. "修复系统"完成后给出明确的"已重装定制 samba"提示,降低用户再叠加第三方修复包的概率。
收藏
送赞
分享

416

主题

1万

回帖

0

牛值

管理员

fnOS1.0上线纪念勋章

感谢提供这么完整的排查信息,目前排查到,部分设备可能因软件源被修改而出现异常。这个情况我们还在继续排查,后续会尝试优化这一情况。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则