Van egy otthoni szerverünk, amelyet időnként kikapcsolunk, és van egy kliens PC-nk, amelyet rendszeresen kikapcsolunk. Hogyan csatlakozzunk a szerver megosztott mappájához?

A kikapcsolás kérdése azért érdekes, mert a naiv megközelítés a kézi mountolás, de azt rendszeresen meg kéne tennünk, ami unalmas. Vagy az fstab, de az nem mindig fog működni (bár léteznek mount opciók, amelyekkel működőképessé tehető).

Autofs

Szerkesszük az /etc/auto.master konfigot:

/mnt/smb/ /etc/auto.smb.shares --timeout 15 browse

Hozzuk létre az /etc/auto.smb.shares fájlt. Itt myserver a szerverünk neve. Ebbe tehetünk majd további bejegyzéseket is igény szerint.

myserver -fstype=cifs,rw,uid=$USER,credentials=/home/$USER/.smbcredentials ://myserver/$USER

Az openSUSE alapértelmezetten telepíti az autofs szolgáltatást, de nem indítja el. (Talán azért sem, mert a systemd automount modernebb módszernek számít.)

# systemctl enable --now autofs

Ezek után ha megnyitjuk a mountpointként szolgáló mappát, az autofs automatikusan mountolja a távolit – ha kell és ha tudja.

Systemd

Van más lehetőségünk is, nincs szükség autofs-re, ha jó a systemd is. Jól összeszedi a teendőket Ray Lyon bejegyzése.1

A unitok fájlneve igazodjon a mount mappa elérési útjához.

# mkdir -p /mnt/smb/myserver/myuser

Mount unit: /etc/systemd/system/mnt-smb-myserver-myuser.mount

[Unit]
Description=Samba mount
Requires=NetworkManager.service
After=network-online.target
Wants=network-online.target

[Mount]
What=//myserver/myuser
Where=/mnt/smb/myserver/myuser
Options=vers=3.0,credentials=/home/myuser/.smbcredentials,iocharset=utf8,rw,x-systemd.automount,uid=1000
Type=cifs
TimeoutSec=15

[Install]
WantedBy=multi-user.target

Automount unit: /etc/systemd/system/mnt-smb-myserver-myuser.automount

[Unit]
Description=Samba automount

[Automount]
Where=/mnt/smb/myserver/myuser
TimeoutIdleSec=0

[Install]
WantedBy=multi-user.target

Indítsuk, teszteljük:

# systemctl daemon-reload
# systemctl start mnt-smb-myserver-myuser.mount
# systemctl status mnt-smb-myserver-myuser.mount
# systemctl enable mnt-smb-myserver-myuser.automount

  1. Lyon, Ray: On-Demand NFS and Samba Connections in Linux with Systemd Automount. rayagainstthemachine.net, 2020-10-07. ↩︎