只读系统上的 Samba 安装

只读系统上的 Samba 安装

我在网上找不到任何有用的东西。

事情是这样的。我试图在 Debian(Raspbian,但没关系)上安装 Samba(版本 4.5.12)。Debian 安装在只读文件系统上。安装正常,但 samba 无法在 RO 模式(只读)下启动。我试图/var/lib/samba files在外部硬盘(可读写)上创建必要数据的符号链接(),但在 Samba 启动时出现错误 - systemctl 无法启动 smdb.service。没什么systemctl status有趣的。但samba/log.我发现:

[2018/04/01 17:11:55.333301,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:12:35.116576,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:42:24.843043,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: Read-only file system
[2018/04/01 18:04:41.824892,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: No such file or directory

谷歌搜索帮助我发现,directory_create_or_exist_strictSamba 源代码中的函数会检查目录(在我的情况下是/var/lib/samba/private/msg.sock)是否真实。

有没有 Linux 的解决方案?我应该重写函数directory_create_or_exist_strict还是为msg.sock外部硬盘上的目录创建绝对路径?或者还有其他方法可以将该文件夹镜像到外部硬盘?请与我分享一些提示。

答案1

问题可能是您使用软链接将 samba var 文件夹重定向到另一个磁盘。
软链接的行为与实际文件夹略有不同,并且可能不被 samba 套接字创建代码接受。

在像您这样的设置中,我会将整个 /var 文件系统放在另一个磁盘上(或作为 tmpfs),并在启动时简单地挂载它。
或者,如果您不想全部完成,只需在启动时创建一个 tmpfs 文件系统并将其挂载在 /var/lib/samba 上。

挂载点应该没问题。否则 Linux 系统将无法将 /var 放在不同的文件系统上。

相关内容