fstab noauto, но автоматически, если вы нажмете на папку

fstab noauto, но автоматически, если вы нажмете на папку

У меня есть ноутбук и сетевые ресурсы. Обычно я бы хотел, чтобы они монтировались при загрузке, но это не очень хорошо для ноутбука, который не всегда подключен к нужной сети. Поэтому я добавил "noauto" в fstab.

<IP>:/share              /share        nfs     noauto,defaults        0 0

Но если я подключен к правильной сети, я не хочу всегда вручную монтировать общий ресурс. Есть ли способ сделать так, чтобы он монтировался, когда я нажимаю на папку, как на USB-накопителе? Или есть другие идеи, как сделать так, чтобы он монтировался, когда ноутбук находится в правильной сети?

Надеюсь, вы сможете помочь.

решение1

Вы можете добавить nofailопцию и удалить no-auto. Это добавит автоматическое монтирование при загрузке, когда вы подключены, но не создаст проблем, если монтирование не удается.

Тогда самым простым следующим шагом будет просто вызвать mount <mount-point directory> When you are connected to the network, but not installed. Если это обременительно, вы можете поместить это в короткий скрипт или назначить псевдоним 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команду от имени суперпользователя, запрашивая у вас пароль в «графическом интерфейсе», как sudoв терминале.

nemoфайловый менеджер (я использую Linux Mint).

Среди недостатков этого способа то, что вам нужно будет перейти на рабочий стол (Ctrl+D), и вы получите новое окно файлового менеджера вместо просто новой вкладки в уже открытом, и вам все равно придется вводить свой пароль. Вот почему я сейчас ищу лучшее решение. Если я его найду, я выложу его здесь.

Связанный контент