5 fstab mount samba networking cifs
我在连接到无线网络的笔记本电脑上启动时在 /etc/fstab 上安装了 CIFS 网络共享。我的 fstab 看起来像这样:
//192.168.0.100/MyShare /mnt/MyShare cifs username=<username>,password=<password>,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0770,dir_mode=0770,vers=3.0 0 0
Run Code Online (Sandbox Code Playgroud)
现在,这通常工作正常,但作为一台笔记本电脑,我经常移动并经常重新连接到我的家庭无线网络。这意味着,当我离开网络时,共享挂载也会断开连接,但是当我回到家时,它不会自动重新连接,因此每次发生这种情况时我都需要“挂载 -a”。
我正在寻找一个选项,可以在网络可用时自动挂载它,或者至少在访问时自动挂载(也就是说,当 Dolphin 或其他文件管理器访问挂载点时,它应该以 root 身份重新挂载)。
有什么简单的方法可以做到这一点吗?任何最佳实践,也许?谢谢!
后来的编辑:与此同时,我发现了一些我称之为解决方法的东西,而不是解决方案,所以我会保持这个问题的开放:
/etc/network/if-up.d/<script>以在连接到我的网络时运行://192.168.0.100/MyShare /mnt/MyShare cifs username=<username>,password=<password>,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0770,dir_mode=0770,vers=3.0 0 0
Run Code Online (Sandbox Code Playgroud)
所以现在,当我的连接变为活动状态时,一切都会自动安装。
您的脚本对我来说似乎是一个可行的选择。对于 Linux 中的问题,我已经看到了更复杂的解决方法。
另一种选择是满足or at least mounting automatically upon access要求的 systemd 自动挂载。如果它不完全是您想要的,那么实施和恢复足够简单。
[1] 如果共享已挂载,则卸载共享:
sudo umount /mnt/MyShare
Run Code Online (Sandbox Code Playgroud)
[2] 在 fstab 声明中再添加 3 个选项:noauto,x-systemd.automount,x-systemd.idle-timeout=30
//192.168.0.100/MyShare /mnt/MyShare cifs username=<username>,password=<password>,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0770,dir_mode=0770,vers=3.0,noauto,x-systemd.automount,x-systemd.idle-timeout=30 0 0
Run Code Online (Sandbox Code Playgroud)
然后做一些 systemd 的事情:
sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target
Run Code Online (Sandbox Code Playgroud)
共享不会在启动时挂载 ( noauto ) 但当访问挂载点 ( noauto,x-systemd.automount ) 时,如果共享访问空闲超过 30 秒,它将自动卸载 - 用户可调整 ( x-systemd.idle -超时=30 )