Systemd automount

SystemD Automount надбудовується над SystemD Mount - вбудованого механізму монтування файлових систем, і дозволяє виробляти монтування тільки в той момент часу, коли ви фактично вирішуєте звернутися до точки монтування, наприклад щоб скопіювати якийсь файл. При чому не важливо, що це за файлова система і де вона знаходиться: жести диск, флешка, NFS, мережевий ресурс MS Windows і т.д. Такий спосіб монтування може заощадити чимало часу при завантаженні комп'ютера, особливо якщо ви збираєтеся вмонтовувати мережеву файлову систему, адже їй для роботи потрібен вже налаштований мережевий інтерфейс. Кожна така файлова система повинні бути описана спеціальним unit-файлом, щоб SystemD знав коли, що і куди потрібно змонтувати. Іменуватися такий файл повинен виходячи з точки монтування (то, куди щодо кореневого каталогу повинна бути змонтована файлова система), мати суфікс ".mount" і розташовуватися в каталозі / lib / systemd / system. А automount unit-файл повинен робити все те ж саме, тільки мати суфікс не «.mount", а ".automount". Відповідно активним з цих двох файлів повинен бути automount unit-файл, а другий просто чекати, коли його викличе automount.

SystemD Mount

Розглянемо синтаксис unit-файлів типу ".mount"

[Unit]
Description = Mount point for cifs

[Mount]
What = // SERVER_IP / SHARE_NAME
Where = / mnt / winshare
Type = cifs
Options = user = WIN_USER_NAME, password = WIN_USER_PASSWORD

Дамо йому ім'я "mnt-winshare.mount" і покладемо в / lib / systemd / system

Перед тим, як приступити до створення unit-файлу типу .automount, бажано переконатися, що вже на цьому етапі все працює добре. Це можна зробити трьома командами

systemctl daemon-reload
systemctl start mnt-winshare.mount
ls / mnt / winshare

Перша команда говорить про те, що SystemD слід перечитати свою конфігурацію, так ми там щось поміняли, друга запускає те, що описано в unit-файлі mnt-winshare.mount, і третя відображає вміст свежепрімонтірованного ресурсу. Якщо ви допустили помилку в написанні unit-файлу, при його запуску SystemD може вилаятися, і ніякого вмісту папки ми вже не побачимо. Допомогти зрозуміти, що ж сталося може команда

systemctl status mnt-share.mount

SystemD Automount

Отмонтіруйте ресурс, підключений до нашої файлової системи з минулого прикладу

Тепер розглянемо синтаксис unit-файлів типу ".automount", користуючись інформацією з уже створеного unit-файлу mnt-winshare.mount

[Unit]
Description = Automount unit for cifs

Синтаксис зрозумілий. Як завжди "Description =" - це просто опис, "Where =" вказує на папку, яку SystemD буде моніторити в очікуванні звернення до неї, щоб автоматично змонтувати файлову систему, описану в відповідному unit-файлі, а ось "WantedBy = remote-fs .target "в секції [Install] вказує на те, що unit-файл типу .automount буде активований в момент часу, коли система буде готова до монтування мережевих файлових систем, а саме після того, як будуть сконфігуровані мережеві інтерфейси, так як мета" remote-fs.target "залежить від мети" network.target "

Усе. Не забудьте перечитати конфігурацію SystemD і активувати ваш automount unit-файл командами

systemctl daemon-reload
systemctl enable mnt-winshare.automount

Якщо не хочете перезавантажуватися, можна активувати unit вручну

systemctl start mnt-winshare.automount

Тепер при першому ж зверненні до папки / mnt / winshare SystemD змонтує туди мережевий SMB ресурс.

Схожі статті