我正在尝试调试嵌入式 Linux 设置上的 SMB 共享问题。在深入研究源代码之前,我想确保这不是配置问题。以下是我的案例:
场景 1:默认启用 dhcp 服务器
1- 系统启动
2- udhcpcd 服务器启动
3- smb 服务器启动(smbd)
4- nmb 服务器启动(nmbd)
5- smb 共享可访问
场景 2:默认情况下禁用 dhcp 服务器
1- 系统启动
2- smbd 启动
3- nmbd 启动失败
4- smb 共享无法访问
5- $/etc/init.d/udhcpcd 启动
6- $/usr/sbin/nmbd 仍然失败且没有错误消息
客户端 PC 和服务器设备在两种情况下都具有静态 IP 地址。NMBD 是否可能在启动时以某种方式依赖于 DHCP 服务器?
答案1
我不知道 Samba(nmbd 或 smbd)和 DHCP 服务器之间有任何依赖关系 —— 我在许多没有 DHCP 服务器的系统上安装了 Samba。
如果您可以弄清楚 nmbd 无法启动的原因(日志条目是一个很好的开始,或者在前台运行它并启动调试并记录任何错误)有人可能会为您指出解决方案......
答案2
不确定这是否对您有帮助。我安装了几次 Samba。今天我终于解决了“nmbd 在启动时不启动的问题”。
][我撤回声称我找到了解决方案[]
它显示为“重启后 Samba 无法工作”,所以我不得不手动启动(或重启)它。我现在记得,当我第一次创建“家里的 Linux 服务器”时,我希望它有一个固定的 IP。我还在 Windows 机器上使用 etc/hosts 文件,这很难维护。但 Samba 在那个“静态”设置下工作正常。没问题。
然后我更换了硬件,或者被迫重新安装所有东西。我不介意 DHCP 设置问题。想摆脱运行和维护主机文件的烦恼。所以我决定“可能更改 IP 地址”。
我不知道这与 Samba 问题有关。在第二次安装 Samba 时,我做了很多不同的事情。更简单...而且由于您不经常重新启动 Linux 服务器,因此手动启动它不是问题。一开始我很惊讶它没有自动加载,但我没有费心去弄清楚。
因此,现在再次使用其他硬件并进行全新设置时,我遇到了相同的奇怪行为。进程列表中只有一半的 Samba。Samba 无法正常工作。然后我发现一篇帖子表明 nmbd 不以地址 0.0.0.0 启动,这可能是由于 nmbd 启动前未配置网络。事实上,我发现 DHCP 服务器(ISP 调制解调器)对 DHCP 请求的响应可能非常慢。它的 Web 服务器也非常慢。网络实际上启动时(在 Samba 启动尝试 nmbd 和 smbd 之前)没有地址,并且启动顺序继续。可能几秒钟后,我的 Linux 机器的 eth0 接口会收到地址。对于 nmbd 来说太晚了。有人建议在 DHCP 客户端中使用静态租约。这是我在 /etc/dhcp3/dhclient.conf 中所做的
我取消了底部附近的“租约部分”及其中的两个命令的注释。其余部分仍被注释掉。现在
租约 { 接口“eth0”; 固定 IP 地址 192.168.1.124; }
一切正常。顺便说一句,DHCP 最初将地址 192.168.1.124 分配给我的盒子。
这种混合 DHCP 设置可能比真正的固定 IP 效果更好,因为 DHCP 似乎从 DHCP 服务器获取了许多其他详细信息,而不仅仅是 IP 地址。