
У меня есть ноутбук и сетевые ресурсы. Обычно я бы хотел, чтобы они монтировались при загрузке, но это не очень хорошо для ноутбука, который не всегда подключен к нужной сети. Поэтому я добавил "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
В настоящее время я использую следующий подход:
- Создайте файл записи рабочего стола.
- Когда вам понадобится сетевой ресурс, просто дважды щелкните значок на рабочем столе вместо того, чтобы вручную монтировать его через терминал.
- Введите свой пароль. Это делается один раз за сеанс входа.
- Посмотрите на свой сетевой ресурс в файловом менеджере.
Теперь файл записи рабочего стола ( ~/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), и вы получите новое окно файлового менеджера вместо просто новой вкладки в уже открытом, и вам все равно придется вводить свой пароль. Вот почему я сейчас ищу лучшее решение. Если я его найду, я выложу его здесь.