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.