Autofs 在启动时不会挂载共享

Autofs 在启动时不会挂载共享

我正在使用 OpenSuSE 12.1,并通过 LDAP 和 NFS 共享家庭。 LDAP 存储地图。我的问题是我无法在启动时安装共享。它仅在手动重新启动 autofs 服务时才起作用。在 CentOS 6.3 上不存在这样的问题。

我的/etc/nsswitch.conf

passwd: files sss
group:  files sss

hosts:  files mdns4_minimal [NOTFOUND=return] dns
networks:       files dns

services:       files
protocols:      files
rpc:            files
ethers:         files
netmasks:       files
netgroup:       files nis
publickey:      files

bootparams:     files
automount:      files ldap
aliases:        files

我的/etc/openldap/ldap.conf

SIZELIMIT       20
TIMELIMIT       15
#DEREF          never
TLS_REQCERT     demand
uri     ldap://10.0.0.1
base    dc=domain,dc=com

我的/etc/sssd/sssd.conf

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = domain.com

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

[domain/domain.com]
 id_provider = ldap
 auth_provider = ldap
 min_id = 500
 max_id = 30000
 ldap_schema = rfc2307
 ldap_uri =  ldaps://ldap-ms.local,  ldaps://ldap-sl.local, ldap://ldap
 ldap_search_base = dc=domain,dc=com
 ldap_user_search_base =  ou=People,dc=domain,dc=com
 ldap_group_search_base = ou=Group,dc=domain,dc=com
 ldap_tls_cacert = /etc/pki/CA/certs/domain-cacert.pem
 ldap_tls_reqcert = hard
 cache_credentials = true
 enumerate = True

我的/etc/sysconfig/autofs

MASTER_MAP_NAME="auto.master"
TIMEOUT=300
BROWSE_MODE="yes"
MAP_OBJECT_CLASS="automountMap"
ENTRY_OBJECT_CLASS="automount"
MAP_ATTRIBUTE="ou"
ENTRY_ATTRIBUTE="cn"
VALUE_ATTRIBUTE="automountInformation"
USE_MISC_DEVICE="yes"

我错过了什么吗?

答案1

这个问题被社区提出了,而且已经很老了。
这些年来发生了很多事情,Michael 提到了一个解决方案,即使用 fstab。最初的问题很可能是在启动时按执行顺序执行的。网络可能尚未准备好,某些服务可能尚未启动等。

如果你正在运行 systemd,还有另一种解决方案(我怀疑 OP 当时是否这样做了,但如果你通过搜索最终到达这里,你确实这么做了),这是使用 systemd 的自动挂载功能的另一种解决方案。

[Unit]
Description=Network mapping
After=network.target

[Mount]
What=10.0.0.1:/share/stuff
Where=/mnt/remote_share
Type=nfs
Options=_netdev,auto

[Install]
WantedBy=multi-user.target

这样做的唯一缺点是您必须小心命名服务脚本。描述得最好这里,但是 tl;dr 版本是服务文件必须以其要挂载的路径命名。并且所述路径中的所有正斜杠都必须替换为-服务文件名中的斜杠,以便自动安装工作。上面的/mnt/remote_share would be a service-file calledmnt-remote_share.mount示例`

有一堆选项就这样吧。
如果 systemd 不是你的菜,上面还有很多新东西自动文件系统做得很好的一面(对我来说有点复杂)

如果您想使用 fstab 条目,但要利用 systemd 的自动挂钩功能,那么您的 fstab 可能如下所示:

10.0.0.1:/share/stuff   /mnt/remote_share  nfs  noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,x-systemd.idle-timeout=1min 0 0

如果这些都不起作用,还有 pure-fstab 解决方案:

10.0.0.1:/share/stuff   /mnt/remote_share   nfs   defaults,soft,rsize=32768,wsize=32768,timeo=900,retrans=5,_netdev 0 0

我将添加一些关于该主题的良好文档的链接(请记住,这是一个不同的操作系统。但他们的 Wiki 是市场上最好的文档之一):

答案2

为什么不直接将安装位置添加到 fstab 中呢?

您还可以使用 sshfs。配置 ssh 以使用公钥身份验证。


在服务器上:
sudo apt-get install openssh-server
更改为或添加 ServerKeyBits 2048 到 /etc/ssh/sshd_config


在客户端上
ssh-keygen -t rsa -b 2048
ssh-copy-id 从客户端计算机到服务器。使用服务器计算机上的用户密码登录
更改 /etc/ssh/sshd_config:PasswordAuthentication no,UsePAM no
我还使用其他设置来强化 ssh,但对于本示例来说不需要。
如果您的局域网外部设置了 dyndns 或 noip 更新程序,并在路由器上设置了端口转发,则端口 23 或您决定用于混淆服务的任何端口将转发到服务器 IP 地址,如果您需要帮助,请询问。


然后:
sshfs USER@SERVERADDRESS:/mnt/DRIVELOCATION /PATH/TO/MOUNT/DRIVE/TO
我将此命令设置为某些驱动器和 fstab 中其他驱动器主菜单上的启动器。
我知道它有效,因为我每天都使用相同的设置加上强化。
这样您就可以摆脱对 autofs 的需要及其所需的开销。

相关内容