Samba 默认启用 Linux 扩展,可以通过 /proc/fs/cifs/LinuxExtensionsEnabled 检查
在 Mac OS X(10.8.5 或更低版本)以及旧版 CIFS 共享上,mount.cifs 将失败并显示一般错误消息:
CIFS VFS: Send error in QFSUnixInfo = -95
CIFS VFS: cifs_read_super: get root inode failed
解决方法是手动禁用 Linux 扩展
$ sudo echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled
我可以传递一个选项来禁用 Linux 扩展,例如
$ mount -t cifs -o linuxextensions=n .....
或者我可以在启动时自动禁用它吗?
答案1
答案就在于桑巴手册
nounix 对此挂载禁用 CIFS Unix 扩展。这对于一次关闭多个设置非常有用。这包括 POSIX acl、POSIX 锁、POSIX 路径、符号链接支持以及从服务器检索 uids/gids/mode。这对于解决支持 Unix 扩展的服务器中的错误也很有用。
有关详细信息,请参阅 INODE 编号部分。
术语“Linuxextensions”和“nounix”似乎指的不是同一件事,但实际上它们指的是同一件事。
答案2
一种方法是使用自动挂载来自动挂载和卸载 CIFS 共享。这将允许它们在使用时安装,然后在一段时间不活动后卸载。
这是 RedHat 指南,但应该适用于 MacOSX,标题为:18.3。自动文件系统。
例子
安装后,autofs
您需要向文件添加一个条目/etc/auto.master
:
/somemount /etc/auto.mymounts --timeout=600 --ghost
然后向 mymounts 文件添加一个条目/etc/auto.mymounts
:
t -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/cifsserver_credentials.txt ://cifsserver/t
最后,您需要在凭据文件中添加一个条目/etc/cifsserver_credentials.txt
:
username=someuser
password=somepass
现在启动autofs
。这将创建一个挂载点/somemount
,其下有一个挂载点t
。每当有人访问它时,该安装t
就会自动安装。闲置 5 分钟后,坐骑将会掉落。再次访问它将重新安装它。
这是一个高级指南,我肯定会遗漏一些细节,但只是为了让您大致了解如何做到这一点。