我对一堆如下所示的 CIFS 安装存在问题:
//192.168.10.2/remote-share /home/windows-shared/remote-share cifs defaults,user=xxx,password=xxx,uid=603,gid=603 0 0
该问题会在一段时间后出现,通常是在用户早上启动机器后,发现他们的共享不再远程起作用。
因此,当我尝试执行此操作时,ls
我得到了以下信息:
ls: cannot access /home/windows-shared/remote-share: Host is down
我没有得到任何相关的信息dmesg
。问题在于,现在对系统这一部分的任何读取调用都会挂起,因此作为解决方案,我宁愿出现更快的错误,而不是无限期地挂起。
读了一下手册页后mount.cifs
发现,默认情况下,每次挂载都soft
意味着最终会超时。问题是超时需要的时间太长了。
更新:
将这些参数添加到 mount 命令也无济于事:
soft,timeo=300,retrans=3
答案1
我强烈推荐 AutoFS。
这将在后台动态安装和卸载您的网络共享,这一切对用户都是透明的。在我进行切换之前,我以前卸载和重新安装移动设备时遇到过问题。
不幸的是,有太多指南使 autofs 设置过于复杂。假设您使用的是 Ubuntu 系统,以下是设置它的简单说明。
以下是一些非常简单的说明:
- 从 apt-get 安装:
sudo apt-get install autofs -y
- 删除所有内容
/etc/auto.master
并替换为:/- /etc/auto.cifs --timeout=20 --ghost
- 为每个挂载点在 auto.cifs 中添加如下一行:
/mnt/LOCAL/MOUNT/PATH -fstype=cifs,rw,noperm,credentials=/etc/auto.credentials ://SERVER/MOUNT
- 在 中
/etc/auto.credentials
添加以下内容:username=USERNAME password=PASSWORD
- 最后,
sudo service autofs restart
。
就是这样。
答案2
在大多数情况下,您至少可以通过执行惰性卸载来删除挂起的挂载点:umount -l //server/share
。也许您可以将其放入挂起挂钩中(据我了解,您的机器在晚上挂起并运行了好几天?)