我这里有一台笔记本电脑和网络共享。通常我会希望在启动时安装它们,但这对笔记本电脑来说不太好,因为它并不总是连接到正确的网络。所以我在 fstab 中输入了“noauto”。
<IP>:/share /share nfs noauto,defaults 0 0
但是如果我连接到正确的网络,我不想总是手动安装共享。有没有办法让它在单击文件夹时安装,就像使用 USB 驱动器一样?或者还有其他想法如何在笔记本电脑处于正确的网络中时安装它?
希望您能幫忙。
答案1
您可以添加nofail
选项并删除no-auto
。这将在您连接时在启动时添加自动挂载,但不会在挂载失败时给您带来问题。
然后,最简单的下一步就是
mount <mount-point directory>
在连接到网络但未挂载时调用。如果这很麻烦,您可以将其放入一个简短的脚本中或为该命令分配一个 bash 别名。
一个更高级、更自动化的替代方案是,在建立任何连接时运行脚本。您可以运行一个 cron 作业,每隔 x 段时间运行一次脚本:
#!/bin/bash
if [[ $(cat /sys/class/net/<device 1>/carrier) == 1 ]] && [[ -z $(grep -s '<mount-point directory> ' /proc/mounts) ]]; then
mount <mount-point directory>
fi
这将检查您是否有连接,如果尚未安装,则安装。
答案2
我目前采用以下方法:
- 创建桌面条目文件。
- 当您需要网络共享时,只需双击桌面上的图标,而无需通过终端手动安装。
- 输入您的密码。每个登录会话仅需输入一次密码。
- 在文件管理器中查看您的网络共享。
现在桌面入口文件(~/Desktop/nas.desktop
):
[Desktop Entry]
Name=nas
Exec=sh -c "findmnt /mnt/nas || pkexec mount 192.168.1.15:/ /mnt/nas && nemo /mnt/nas"
Comment=Mount and open NAS shared dir
Terminal=false
Icon=folder-remote
Type=Application
sh -c ...
只是这里多个命令的包装器,使它们成为单个命令,因为桌面条目并不总是与多个命令一起使用。
findmnt ...
检查挂载点是否已挂载。如果已挂载,则跳过下一个命令。
pkexec ...
以超级用户身份执行mount
命令,并以“GUI 方式”要求您输入密码,就像sudo
在终端中一样。
nemo
是一个文件管理器(我使用linux mint)。
这种方式的缺点之一是你必须进入桌面(Ctrl+D),然后你会看到一个新的文件管理器窗口,而不是在已打开的窗口中新建一个选项卡,而且你仍然需要输入密码。这就是为什么我目前正在寻找更好的解决方案。如果我找到它,我会在这里发布它。