fstab noauto,但如果您单击文件夹则自动

fstab noauto,但如果您单击文件夹则自动

我这里有一台笔记本电脑和网络共享。通常我会希望在启动时安装它们,但这对笔记本电脑来说不太好,因为它并不总是连接到正确的网络。所以我在 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

我目前采用以下方法:

  1. 创建桌面条目文件。
  2. 当您需要网络共享时,只需双击桌面上的图标,而无需通过终端手动安装。
  3. 输入您的密码。每个登录会话仅需输入一次密码。
  4. 在文件管理器中查看您的网络共享。

现在桌面入口文件(~/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),然后你会看到一个新的文件管理器窗口,而不是在已打开的窗口中新建一个选项卡,而且你仍然需要输入密码。这就是为什么我目前正在寻找更好的解决方案。如果我找到它,我会在这里发布它。

相关内容