收起左侧

fnOS SMB/NMBD 启动超时导致系统启动变慢问题反馈

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

1

主题

0

回帖

0

牛值

系统先锋体验团🛩️

2026-7-3 21:23:49 显示全部楼层 阅读模式

fnOS SMB/NMBD 启动超时导致系统启动变慢问题反馈

问题概述

fnOS 启动时 nmbd.service 会卡住约 90 秒,最终以 timeout 失败,导致整机启动时间从约 24 秒增加到约 1 分 41 秒。

该问题出现在 SMB 服务开启的情况下。smbd.service 正常启动,问题集中在 nmbd.service 的 systemd 启动方式。

环境信息

  • 系统:fnOS,基于 Debian GNU/Linux 12 bookworm
  • Samba 版本:4.17.12-Debian
  • 运行环境:Proxmox VE 虚拟机
  • VM 配置:VirtIO SCSI 系统盘,VirtIO 网卡,qemu-guest-agent 已安装
  • 测试时间:2026-07-03

现象

启动慢时 systemd-**yze 显示:

Startup finished in 9.343s (kernel) + 1min 31.916s (userspace) = 1min 41.259s
graphical.target reached after 1min 31.907s in userspace.

查看 nmbd.service

nmbd.service: start operation timed out. Terminating.
nmbd.service: Failed with result 'timeout'.
Failed to start nmbd.service - Samba NMB Daemon.
TimeoutStartUSec=1min 30s
ExecStart=/usr/sbin/nmbd -D $NMBDOPTIONS
Type=notify

启动过程中 nmbd 实际已经在运行并输出日志,但 systemd 一直未判定服务启动完成,直到 90 秒超时。

疑似原因

当前 nmbd.service 配置为:

Type=notify
ExecStart=/usr/sbin/nmbd -D $NMBDOPTIONS

-D 会让 nmbd 以 daemon/background 模式运行,而 systemd unit 又使用 Type=notify。这会导致 systemd 等待启动完成通知,但服务进程的启动方式与 systemd 期望不匹配,最终卡满默认 TimeoutStartSec=90s

临时规避方案

nmbd.service 的启动命令从后台模式改为前台模式:

ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS

执行:

sudo cp /etc/systemd/system/nmbd.service /etc/systemd/system/nmbd.service.bak
sudo sed -i 's#^ExecStart=/usr/sbin/nmbd -D \$NMBDOPTIONS#ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS#' /etc/systemd/system/nmbd.service
sudo systemctl daemon-reload
sudo systemctl reset-failed nmbd
sudo systemctl restart nmbd

修复后 nmbd.service 状态正常:

Active: active (running)
Main PID: /usr/sbin/nmbd --foreground --no-process-group
Status: "nmbd: ready to serve connections..."

修复后启动时间恢复:

Startup finished in 9.033s (kernel) + 15.359s (userspace) = 24.392s
graphical.target reached after 14.964s in userspace.

影响范围

  • SMB 文件共享本身的 smbd.service 可以正常运行。
  • 问题主要影响开机速度,并导致 nmbd.service 在系统中显示 failed。
  • 如果用户依赖 NetBIOS/局域网工作组发现,nmbd failed 可能影响旧式网络邻居发现或 NetBIOS 名称解析。
  • 使用 \\IP地址 访问 SMB 通常不受影响。

建议修复

建议官方检查 fnOS 中 nmbd.service 的 systemd unit 配置,将 nmbd 调整为符合 systemd 管理方式的前台运行模式,例如:

Type=notify
ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS

或者根据 Samba/Debian 官方 unit 的推荐方式调整 TypeExecStart,避免 Type=notify-D 后台化组合导致 systemd 启动超时。

附加说明

同环境下修改 ExecStart 后多次验证,nmbd 不再卡 90 秒,系统启动时间从约 1 分 41 秒下降到约 24 秒,说明该问题与 nmbd.service 启动方式高度相关。

收藏
送赞
分享

409

主题

1万

回帖

0

牛值

管理员

fnOS1.0上线纪念勋章

2026-7-8 18:19:18 显示全部楼层

已收到反馈 我转给负责的同事看看

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则