CIFS 挂载在读取时

CIFS 挂载在读取时

我对一堆如下所示的 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。也许您可以将其放入挂起挂钩中(据我了解,您的机器在晚上挂起并运行了好几天?)

相关内容