Windows服务器通过CIFS/SMB协议提供一个名为data的网络目录,该data文件夹通过密码和用户认证的方式挂载到Linux客户端上。
有时驱动器会断开连接,但一秒钟后又可以再次使用。我不知道具体原因,但似乎是由于 Windows 服务器或网络组件损坏。
我怎样才能使Linux尽快自动重新连接?
答案1
我建议通过以下方式安装autofs
。这是一项将根据需要挂载目录(例如,如果您cd
进入它或ls
它)并在用户定义的超时后自动卸载它的服务。
安装
autofs
适合您的发行版的软件包(顺便说一句,请记住在您的问题中包含您的发行版,因为答案的详细信息可能取决于它)。将以下内容添加到 /etc/auto.master
/media/[my_server] /etc/auto.[my_server]
/media/[my_server]
共享的挂载点在哪里。创建文件 /etc/autofs/auto.[my_server] 并包含以下行:
[any_name] -fstype=cifs,[other_options] ://[remote_server]/[share_name]
答案2
为了补充 autofs 答案,我建议按照此处描述的方式进行操作:
https://andrewaadland.me/2017-06-18-autofs-nfs-and-archlinux-key-not-found-in-map-sources/
那是:
- 使 中的第一个字段
auto.master
始终为/-
。 - 在 中使用完整的挂载名称
/etc/autofs/auto.server
。
因此就我而言,/etc/autofs/auto.master
包含:
/- /etc/autofs/auto.nas
并/etc/autofs/auto.nas
包含:
/home/rkitover/nas -fstype=cifs,credentials=/home/rkitover/.nascredentials,uid=1000,gid=1000,iocharset=utf8 ://nas/rkitover
这对我有用!
答案3
仅从另一个角度来看,当前的解决方案是使用 systemd 执行此操作,如下所述:
https://anteru.net/blog/2019/automatic-mounts-using-systemd/
答案4
systemd + 使用特殊字符挂载
由于大多数博客和帖子等都没有以对我来说足够的方式提及这一点,因此我想指出几个关键点:
What=
和等键Where=
具有文字值 - 无转义- 文件系统上的路径必须
systemd-escape
是- shell 将会解释
\
,因此用单引号将其转义:'my\x20'
- shell 将会解释
- 您必须
sudo systemctl daemon-reload
在名称/内容更改之间运行 sudo journalctl -xe ESCAPEME.mount
将提供更好的日志status
例如: /etc/systemd/system/ESCAPEME.mount
/etc/systemd/system/mnt-TrueNAS-TV\x20Shows.mount
:
[Unit]
Description=My CIFs Media Mounter
Requires=network-online.target
After=network-online.service
[Mount]
What=//192.168.1.200/TV Shows
Where=/mnt/TrueNAS/TV Shows
Options=username=my-user,password=my-secret
Type=cifs
[Install]
WantedBy=multi-user.target
例如: /etc/systemd/system/ESCAPEME.automount
/etc/systemd/system/mnt-TrueNAS-TV\x20Shows.automount
:
[Unit]
Description=My CIFs Media Automount
[Automount]
Where=/mnt/TrueNAS/TV Shows
[Install]
WantedBy=multi-user.target
更多信息
看https://unix.stackexchange.com/questions/455094/auto-remount-cifs-share/740886#740886。