Автомонтирование по сети
Что, где и как
Имя юнита для монтирования в конкретную точку должно совпадать с путём до неё от корня, но разделительные слэши в имени следует заменить дефисами. Примеры монтирования одного и того же ресурса /share/FOLDER с сервера server через юнит /lib/systemd/system/mnt-FOLDER.mount соответственно в /mnt/FOLDER:
| по sshfs |
|---|
[Unit]
Description = Mount remote FOLDER over SSH FileSystem
[Mount]
Type = sshfs
Where = /mnt/FOLDER
What = user@server:/share/FOLDER
Options = noauto,_netdev,reconnect
|
| по davfs |
|---|
[Unit]
Description = Mount remote FOLDER over NextCloud WebDAV
[Mount]
Type = davfs
Where = /mnt/FOLDER
What = https://server/share/FOLDER
Options = noauto,_netdev,user,uid=user,gid=users
|
| по nfs |
|---|
[Unit]
Description = Mount remote FOLDER over Network FileSystem
[Mount]
Type = nfs
Where = /mnt/FOLDER
What = server:/share/FOLDER
Options = noauto,_netdev,nolock
# Принудительное размонтирование при недоступности NFS-сервера:
ForceUnmount = true
|
| по cifs |
|---|
[Unit]
Description = Mount remote FOLDER over Samba FileSystem
[Mount]
Type = cifs
Where = /mnt/FOLDER
What = //server/share/FOLDER
Options = noauto,_netdev,credentials=/etc/cifs.cred,iocharset=utf8,file_mode=0644,dir_mode=0755
|
Основные отличия приведённых способов монтирования определяются параметрами Type и What секции [Mount], а в параметре Options можно сочетать любые не конфликтующие опции — как общие для команды mount, так и собственно монтируемой файловой системы.
Полагаю, основываясь на данных образчиках, не составит труда додумать иные варианты подключений к мегадрайву и прочим мелкомягким гугляндекс-дискам (ну, а вдруг таки заставит — готов дополнить: приводите обкатанные примеры по телеге или во вкладке обсуждения).
- дополнить любой из вышеприведённых юнитов секцией:
[Install] WantedBy = remote-fs.target
- убрать из списка опций
noauto, - и скомандовать: # systemctl enable --now mnt-FOLDER.mount
А нижеизложенное можно и не читать.
Зачем именно автомонтаж
Чтобы входить в удалённый ресурс при первом/каждом обращении к нему, не подключая на этапе загрузки в надежде на его доступность. Для этого понадобится ещё один юнит с расширением .automount, чья привязка к любому из описанных вариантов .mount-а производится через соответствие параметра Where в обоих.
| /lib/systemd/system/mnt-FOLDER.automount |
|---|
[Unit]
Description = Automount /mnt/FOLDER share
# Если доступ только через туннель (l2tp, ipsec, wireguard и т.п.):
Requires = openvpn@vpn.service
[Automount]
Where = /mnt/FOLDER
# Если нужно поменять умолчальные допуски:
DirectoryMode = 0775
# Если нужно, длительность доступа без перезапроса на подключение:
TimeoutIdleSec = 300
[Install]
WantedBy = multi-user.target
|
После его создания останется скомандовать: # systemctl enable --now mnt-FOLDER.automount
Источники
Хабр, АТК-динозавр, Бессонная тварюшка.