自动禁用 Samba 安装的 Linux 扩展

自动禁用 Samba 安装的 Linux 扩展

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 分钟后,坐骑将会掉落。再次访问它将重新安装它。

这是一个高级指南,我肯定会遗漏一些细节,但只是为了让您大致了解如何做到这一点。

相关内容