Я видел вопросы, подобные этим, которые задавались ранее в нескольких вариантах, но мне еще предстоит найти удовлетворительный ответ.
Вот что у меня есть:
- Высокомобильный ноутбук Debian, который часто переключает сети.
- Домашний сервер FreeNAS с кучей общих ресурсов CIFS.
Вот что я хочу:
- Если я получаю доступ к каталогу общего ресурса CIFS, находясь дома, автоматически смонтируйте общий ресурс CIFS.
- Если я получаю доступ к общему ресурсу CIFS, когда нахожусь где-то еще, немедленно возвращаю ошибку (т. Е. Не рассматриваю сеть в течение пяти минут, пока не выясню, что NAS там нет).
- Когда я приостанавливаю или переводю компьютер в спящий режим, аккуратно отсоединяйте общий ресурс, чтобы крепление не указывало на разреженный воздух, когда машина снова включается. Если общий ресурс не может быть чисто размонтирован (процесс использует каталог), либо:
- Прервите приостановку / спящий режим и скажите мне, кто находится на горе; или
- В любом случае форсируйте размонтирование и переходите в режим ожидания / гибернации.
- Дополнительный кредит. Когда сетевое соединение обрывается (отключите или потеряете связь с WAP), попытайтесь аккуратно размонтировать общий ресурс.
- Дополнительные кредиты: эта магия должна быть независимой от используемого сетевого менеджера.
Ни один из вариантов, о которых я читал, не подходит:
autofs
кажется надежным, но, похоже, не знает о приостановке / гибернации._netdev
Вариант вmount
и/etc/fstab
выглядит интересно, но , как представляется , применяются только к акциям NFS.- Я еще не смог добраться
gvfs
до работы, но тогда я не очень старался.
Любые предложения о том, как подойти к этому?
ДОПОЛНЕНИЕ:
Вот краткая версия того, что я до сих пор делал. Я установил autofs
и написал небольшой сценарий оболочки для принудительного истечения срока действия всех автоматически монтируемых томов, который вызывается при выходе из строя сетевого интерфейса.
Я создал карту автомонтирования для своего сервера CIFS с учетными данными, хранящимися во внешнем файле (хм). Затем я написал следующий скрипт:
#!/bin/sh -e
# Expire everything in the automounter.
if [ -f /var/run/autofs.pid ]; then
kill -USR1 "$(cat /var/run/autofs.pid)"
fi
Отправка сигнала USR1 демону автомонтирования приводит к принудительному истечению срока действия всех неиспользуемых монтирований. Затем я поместил этот скрипт /etc/network/if-down.d/autofs
, с мягкой ссылкой /etc/network/if-post-down.d/autofs
. NetworkManager вызывает все сценарии в последнем каталоге, когда соединение разрывается, поэтому любые автоматически монтируемые файловые системы должны быть размонтированы.
Однако я не очень доволен аранжировкой. Для начала autofs
не делает различий между автоматически монтируемыми томами и, получив USR1, размонтирует все неактивные тома, включая не сетевые тома, что довольно сложно.
Кроме того, пароль для входа на сервер CIFS должен храниться в файле. Я бы предпочел, чтобы меня об этом попросили.
Во всяком случае, это то, что я до сих пор вместе. Это работает, но я буду рад использовать что-то лучше ...
sudo mount -t cifs ...
дает предпочтительные результаты. Я немного поиграюсь с этим, но я не думаю, что Жиголо - это то, что я ищу.