Монтирование samba & nfs через systemd: различия между версиями

Материал из support.qbpro.ru
 
Строка 27: Строка 27:
  [Unit]
  [Unit]
  Description=NFS share
  Description=NFS share
  [Automount]
  [Automount]
  Where=/media/nfs
  Where=/media/nfs
Строка 39: Строка 38:
  [Unit]
  [Unit]
  Description=Mount point for cifs (volumes on server smb)
  Description=Mount point for cifs (volumes on server smb)
  [Mount]
  [Mount]
  What=//smbserver.net/media
  What=//smbserver.net/media

Текущая версия от 21:14, 1 ноября 2024

ВВЕДЕНИЕ

Systemd имеет специальный вид automount-юнитов, которые позволяют автоматически монтировать указанный каталог.

  • Важно: automount-юниты это не mount-юниты с автомонтированием, они не могут иметь в себе параметры монтирования.
    Вместо этого, они (при обращении к каталогу) всего лишь вызывают mount-юнит для указанного каталога.
    • Соответственно, при конфигурации:

Опции монтирования, устройство (или сервер в случае NFS) указываются в mount-юните
Зависимости и install-секция указываются в automount-юните
Связка automount-юнита и mount-юнита происходит по параметру where

Это же можно заметить по структуре самих юнитов. У mount-юнита есть секция [Mount] в которой может быть множество
параметров. У automount-юнита такой секции быть не должно, а вместо этого есть секция [Automount], в которой могут быть
всего несколько параметров: Where, DirectoryMode и TimeoutIdleSec.

ПРАКТИЧЕСКИЕ ПРИМЕРЫ

  • Монтирование NFS, создаем 2 unit-а, обязательно имя юнита соответствует имени (весь путь к точке) монтирования:
/lib/systemd/system/media-nfs.mount:
  • описание параметров монтирования:
[Unit]
Description=NFS share
[Mount]
What=//server.url.example.com:/srv/nfs_share
Where=/media/nfs
Type=nfs4
Options=_netdev,auto,nosuid,nolock,nfsvers=4
TimeoutSec=1
  • описание процесса монтирования, имена совпадают, кроме типа:
/lib/systemd/system/media-nfs.automount:
[Unit]
Description=NFS share
[Automount]
Where=/media/nfs
TimeoutIdleSec=2
[Install]
WantedBy=remote-fs.target
  • Монтирование SAMBA, создаем 2 unit-а, так же имена должны соответствовать точке монтирования:
/lib/systemd/system/mnt-media.mount
[Unit]
Description=Mount point for cifs (volumes on server smb)
[Mount]
What=//smbserver.net/media
Where=/mnt/media
Type=cifs
Options=credentials=/etc/automount/credentials,vers=3.0,uid=996,gid=1000,nounix,noexec,iocharset=utf8,file_mode=0660,dir_mode=0370
    • Внимание! параметры uid=996,gid=1000 - это ID в /etc/passwd/username, указывать точно!
  • В /etc/automount/credentials находятся логин и пароли для подключения, атрибуты 0600 root
user=mylogin
password=mypassword
domain=smbserver
/lib/systemd/system/mnt-media.automount
[Unit]
Description=Automount unit for cifs (cifs share on //media volumes)

[Automount]
Where=/mnt/media
TimeoutIdleSec=2

[Install]
WantedBy=remote-fs.target

ИСТОЧНИКИ