Automatické připojování oddílů v systemd
Krátký návod na nastavení
systemd.mount
(připojování systémů souborů v systemd),
s tím související
systemd.automount
(automatické připojování) na příkladu NFS exportu.
Unita .mount
Definice mount je velmi jednoduchá, prakticky nám stačí vědět totéž co u fstab.
Tedy co, kam, jakého typu.
Příklad připojení NFS:
[Unit]
Description = Mount bsd:/data/BACKUP do /mnt/bsd/data/BACKUP
[Mount]
What = bsd:/data/BACKUP
Where = /mnt/bsd/BACKUP
Type = nfs
[Install]
WantedBy = multi-user.target
A tuto definici uložíme do /etc/systemd/system/.
Pojmenování souboru musí odpovídat mountpointu (Where) a můžeme jej získat pomocí
nástroje systemd-escape:
$ systemd-escape -p /mnt/bsd/BACKUP
mnt-bsd-BACKUP
Definici unity tedy uložíme do souboru mnt-bsd-BACKUP.mount.
Pokud nechceme automount (připojování na základě událostí), stačí unitu enablovat a spustit:
systemctl enable mnt-bsd-BACKUP.mount
systemctl start mnt-bsd-BACKUP.mount
Systém souborů by měl být připojen. Pokud není, tak se dotážeme na stav:
systemctl status mnt-bsd-BACKUP.mount
a případné problémy vyřešíme.
Unita .automount
Automount připojuje (a může i odpojovat) mountpointy definované v .mount.
Automount nefunguje jako samostatná jednotka, vždy je nutné mít unitu typu
.mount stejného jména.
Definice .automount je podobná unitě mount, ze které potřebujeme jen Where=.
Nově můžeme také definovat i TimeoutIdleSec= - dle mých zkušeností to nefunguje
příliš přesně, není jasné, od kterého okamžiku se TimeoutIdleSec začne počítat, ale
po nějakém čase to odpojí.
Příklad: automount pro výše uvedený mount by mohl vypadat takto:
[Unit]
Description=Automount bsd:/data/BACKUP do /mnt/bsd/data/BACKUP
[Automount]
Where=/mnt/bsd/BACKUP
TimeoutIdleSec=20s
[Install]
WantedBy = multi-user.target
Definici uložíme do souboru /etc/systemd/system/mnt-bsd-BACKUP.automount.
Pokud chceme používat automount a nikoliv tvrdý mount, nastavíme unitu .mount na disabled,
a naopak nastavíme a nastartujeme jen .automount:
systemctl disable mnt-bsd-BACKUP.mount
systemctl enable mnt-bsd-BACKUP.automount
systemctl start mnt-bsd-BACKUP.automount
A je to. Pokud nám fungoval mount, tak teď, pokud vlezeme do adresáře mountpointu, měl by se fs automaticky připojit. A po opuštění tohoto adresáře, zase po chvilce odpojit.