我在两台计算机之间构建 SAMBA 共享时遇到问题。一个是在 Windows 8 上,另一个是在定制的 Yocto 制作的 Linux 上。 SAMBA以前可以用,我不明白为什么现在不行了......
我收到的错误消息如下:“\[IP]\SHARED 无法访问。您可能无权使用此网络资源。请与此服务器的管理员联系以查明您是否具有访问权限。指定的网络名称不再可用”
我ROOT
在我的 Yocto 上
我的SMB.CONF
文件(在/usr/local/samba/lib
)看起来像:
[global]
workroup = smb
security = share
share modes = yes
log file = /var/log/samba.log.%m
[homes]
comment = Home Directories
browsable = no
read only = no
create mode = 0750
[SHARED]
path = /media/ssd
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes
我已经尝试过以下操作:
- 将工作组更改为
WORKGROUP
- 启动并重新启动
SMBD
(NMBD
使用-D
选项) - 更换电缆和接口(我有两个以太网入口)
- 将文件的权限更改
/media/ssd
为最大chmod -R 777
- 更换电脑
但还是同样的问题...
你知道会发生什么吗?
[编辑]:SMB 跟踪:
[1970/01/01 01:09:07.449826, 0] lib/fault.c:372(dump_core) dumping core in /usr/local/samba/var/cores/smbd [1970/01/01 01:09:07.489470, 0] ../lib/util/tdb_wrap.c:65(tdb_wrap_log) tdb(/usr/local/samba/var/locks/locking.tdb): expand_file write of 8192 bytes failed (No space left on device) [1970/01/01 01:09:08.051746, 0] locking/locking.c:905(share_mode_lock_destructor) store returned NT_STATUS_UNSUCCESSFUL [1970/01/01 01:09:08.052047, 0] lib/util.c:1117(smb_panic) PANIC (pid 4088): could not store share mode entry: NT_STATUS_UNSUCCESSFUL [1970/01/01 01:09:08.053048, 0] lib/util.c:1221(log_stack_trace) BACKTRACE: 0 stack frames:
[编辑]:添加:
它可以在 Linux 虚拟机上运行,但不能在 Windows 主机上运行
答案1
有时,Samba 无法正确安装或更新其依赖项。
检查/var/log/samba/log.smbd,寻找有关talloc2 错误的任何信息。
尝试运行以下命令以确保所有依赖项均可用,这是在 Ubuntu 上,根据您的 Linux 风格进行修改:
apt-get install --reinstall libsmbclient libsmbclient-dev libtevent0 libtalloc2
CentOS、RHEL:
yum reinstall libsmbclient libsmbclient-dev libtevent0 libtalloc2
答案2
解决方案太简单了,我没有看到它。
这 :tdb(/usr/local/samba/var/locks/locking.tdb): expand_file write of 8192 bytes failed (No space left on device)
告诉我们这No space left on device
就是问题的核心
释放一些空间帮助 SAMBA 做任何需要建立连接的事情
答案3
如果您碰巧尝试在共享中指定不存在的子目录,也可能会发生这种情况。
例如,如果您尝试将 x: 映射到 \server\share\folder1 但folder1 不存在,也会出现此错误消息。
我不知道为什么它无法确定共享存在,只是不能确定文件夹并正确报告它,但是就这样了。
答案4
您是否设置了 samba 用户名和密码
sudo smbpasswd -a sambauser
这里的用户名可能是你的系统(Linux)用户名,即。 sambauser 是我的 Linux 用户,
设置共享文件夹的权限为sambauser
chown -R sambauser:root /media/ssd
并重新启动您的 SMB 服务器
service smbd restart
然后从window机器访问您的共享文件夹
通过按键来运行窗口键+R 并访问您的共享文件夹
\\[IP]\ssd