![如何在 Windows 和 Linux PC 之间实现非阻塞网络文件共享](https://linux22.com/image/151924/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E5%92%8C%20Linux%20PC%20%E4%B9%8B%E9%97%B4%E5%AE%9E%E7%8E%B0%E9%9D%9E%E9%98%BB%E5%A1%9E%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB.png)
我有一个文件共享服务器(samba 守护进程)在本地网络的 Debian 服务器上运行。我永远无法解决的问题是,每当我离开本地网络(带着我的笔记本去工作或外出)时,我的 Ubuntu 系统就会冻结。调查显示 gnome-shell 和 nautilus 陷入困境D状态。发生这种情况是由于内核无法访问服务器(因为我不再在网络中)。显然,如果不授予服务器访问权限,这些进程就无法恢复。有时,这是根本不可能的。过去,我需要强制重启系统。使用较新的内核,我至少可以杀死它们。
我想要的是,每当我在网络中时,都能自动访问文件共享。每当我离开本地网络时,我的系统都不会冻结。我不想每次离开网络时都手动挂载/卸载文件服务器。我想尽可能简单地访问共享,如果无法访问,则显示一个简单的错误消息。
另一台 Windows PC 可以执行此操作,并且也需要访问权限。
我需要切换到网络文件系统?另一个协议?挂载参数? (我试过诺因特尔和柔软的参数)
我当前的安装线在/etc/fstab:
//server/media /media/networkshare cifs soft,credentials=/home/user/.credentials,iocharset=utf8,uid=useruid,vers=3.0 0 0
自动文件系统如果我在空闲时间之前离开网络,也会阻止 gnome-shell 和其他应用程序。或者由于某种原因,某些应用程序不断访问网络驱动器(例如 nautilus 或 gnome-shell)。
如果我通过连接Nemo 中的书签(连接到服务器),此时 gnome-shell 或 nemo 不会进入 D 状态,但当 PC 在新网络(不同的本地网络,无法访问文件服务器)中唤醒(睡眠/唤醒)时,gnome-shell 会冻结。