【发布时间】:2014-10-15 18:32:18
【问题描述】:
自从 10.9 Apple 将 Lion 中的 samba 替换为他们的 SMBX 以来,它一直被破坏。很破。
连接到 samba 共享 (2012 R2 Essentials) 时,连接经常断开或挂起,而这会出现在 system.log:
smb2_rq_credit_decrement: Timed out waiting for credits 35
smb_iod_reconnect: Reconnected share <share_name> with server <server_name>
smb_fid_get_kernel_fid: No smb2 fid found for fid 550ff6b0613adf68
smb_iod_reconnect: Reconnected share <share_name> with server <server_name>
一些消息来源建议强制使用 SMBv1 作为解决方法,如下所示:
echo "[default]" >> ~/Library/Preferences/nsmb.conf
echo "smb_neg=smb1_only" >> ~/Library/Preferences/nsmb.conf
这实际上使它工作(不挂起或断开连接)只是目录列表需要 15-30 秒没问题.. 意味着它几乎完全没用。
这个问题困扰我很久了,我正在想办法解决。 我能想到的一个方法是编译 Samba (www.samba.org),但由于 Apple 不久前将它们从 Mac OS X 中删除,他们并没有真正付出太多努力来使 samba 与 OS X 兼容..这是可以理解的:)
在对 Samba 4.1.11 源进行一些修复后,samba 以某种方式编译,但似乎没有 mount_smbfs 或类似的东西 - 只是 smbclient。
有没有人知道是否可以使 mountning 与 OS X 一起工作(因为它涉及内核,我不知道具体是什么)?
关于如何解决这个问题的任何其他建议?
P.S.:我目前在 OS X 10.9.4 上编译 Samba 4.1.11 版本的 samba(如果有人知道如何解决这个问题):
Undefined symbols for architecture x86_64:
"___unsafe_string_function_usage_here_size_t__", referenced from:
_send_announcement in nmbd_sendannounce_122.o
_send_lm_announcement in nmbd_sendannounce_122.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Waf: Leaving directory `<replaced_path_to_samba>/samba/bin'
Build failed: -> task failed (err #1):
{task: cc_link profile_76.o,asyncdns_122.o,nmbd_122.o,nmbd_become_dmb_122.o,nmbd_become_lmb_122.o,nmbd_browserdb_122.o,nmbd_browsesync_122.o,nmbd_elections_122.o,nmbd_incomingdgrams_122.o,nmbd_incomingrequests_122.o,nmbd_lmhosts_122.o,nmbd_logonnames_122.o,nmbd_mynames_122.o,nmbd_namelistdb_122.o,nmbd_namequery_122.o,nmbd_nameregister_122.o,nmbd_namerelease_122.o,nmbd_nodestatus_122.o,nmbd_packets_122.o,nmbd_processlogon_122.o,nmbd_responserecordsdb_122.o,nmbd_sendannounce_122.o,nmbd_serverlistdb_122.o,nmbd_subnetdb_122.o,nmbd_winsproxy_122.o,nmbd_winsserver_122.o,nmbd_workgroupdb_122.o,nmbd_synclists_122.o -> nmbd}
【问题讨论】:
-
您在处理大型目录吗?我遇到的问题是它会尝试加载/缓存所有内容,当我在一个大共享上时,它会永远加载,或者超时并崩溃。当我有选择地只分享我需要的东西时,它会有所帮助
-
共享并不大,即使它有 5-10 个项目也需要很长时间才能加载它.. 将数据剥离到最低限度是一件愚蠢的事情 - 它是共享系统 -它假设共享数据,而不是限制其用户:-)
-
是的,这很愚蠢,但这是我能想到的唯一解决方法。谢天谢地,在我目前的情况下,我没有使用 samba。这是一个糟糕的情况。
标签: macos osx-mavericks samba file-sharing fileshare