Іноді мережеві шари потрібні ще до входу в систему: бекапи, медіа, home-директорії. Але якщо мережа ще не готова — система може підвисати при завантаженні. Я покажу, як безпечно та розумно автоматично монтувати SMB і NFS у Linux, використовуючи systemd-автомаунти та autofs, з тайм-аутами, перевірками доступності й навіть fallback. Підійде і для робочих станцій, і для вашого сервер Linux.
Готуємо систему: пакети, точки монтування та креденшели
Нижче — команди для термінал Linux. Встановіть утиліти для SMB/NFS, створіть точки монтування та файл із обліковими даними (для SMB). Це базові кроки перед будь-якою автоматизація задач.
Монтування через systemd + fstab: автомаунт, тайм-аути і перевірка мережі
Найбезпечніший спосіб уникнути зависань — не монтувати одразу при boot, а використовувати automount. Тоді система створить очікувач, а реальний монтаж станеться при першому доступі до каталогу. Додамо тайм-аути та залежність від готовності мережі (мережеві налаштування).
SMB (CIFS) через fstab із automount
Додайте рядок у /etc/fstab (noauto + x-systemd.automount + _netdev + idle-timeout + nofail):
Пояснення коротко: noauto не монтує одразу; x-systemd.automount вмикає automount; _netdev каже systemd чекати мережу; idle-timeout відмонтовує після простою; nofail дозволяє системі продовжити завантаження, навіть якщо сервер недоступний.
NFSv4 через fstab із automount
Для NFS: hard для надійності, timeo=600 (~60с) і retrans=2 — контроль повторів. За бажанням зменшуйте timeo, якщо потрібен швидкий відкат.
Вмикаємо очікування мережі
Щоб автомаунт чекав робочий інтернет/лан, вкажіть службі коли мережа точно "онлайн". Оберіть ваш стек:
Перевірка
Альтернативні способи і fallback
Окремі .mount/.automount юніти systemd
Більше контролю дають юніти в /etc/systemd/system. Спочатку згенеруємо ім'я файла для точки монтування:
Приклад /etc/systemd/system/mnt-smb\x2dshare.mount:
І автомаунт /etc/systemd/system/mnt-smb\x2dshare.automount:
autofs із тайм-аутом простою
autofs сам монтує/відмонтовує каталоги на вимогу. Зручно для ноутбуків і середовищ зі змінною доступністю мережі.
Fallback/відмовостійкість
- NFS: вбудований реплікований експорт. Вкажіть кілька серверів комою — клієнт спробує наступний, якщо перший недоступний:
- SMB: найкраща практика — DFS referrals (AD/Samba з msdfs), тоді клієнт монтує єдину адресу, а сервер перенаправляє на доступний бекенд.
- Простий скриптовий fallback для SMB (якщо DFS немає):
Для скрипта потрібен nc (netcat). Якщо немає — встановіть: sudo apt install netcat-openbsd або sudo dnf install nmap-ncat.
GUI-спосіб (GNOME/KDE)
Шукаєте спосіб без редагування конфігів? У GNOME відкрийте "Disks" → виберіть диск/меню → "Edit Mount Options..." і ввімкніть "Mount at system startup" (для NFS). Для SMB зручніше додати запис у fstab, а потім перевірити в Disks. У файловому менеджері (Nautilus/Dolphin) можна підключатися до smb:// або nfs:// через "Інші місця"/"Add Network Folder" — це зручно, але такі підключення не завжди монтуються до файлової системи ядра та не гарантовані при boot.
FAQ
Система зависає на boot через мережеві монти
Увімкніть noauto,x-systemd.automount,_netdev і nofail у fstab, додайте очікування мережі (wait-online). Також встановіть розумні idle-timeout і timeo для NFS.
SMB монтується, але права дивні
Задайте uid/gid і file_mode/dir_mode. Якщо сервер керує ACL, інколи допомагає опція noperm (обережно, безпека!).
NFS: stale file handle або довгі зависання
Це буває після рестарту сервера. Для критичних застосунків використовуйте hard + timeo/retrans. Якщо потрібен швидкий відкат — зменшіть timeo або розгляньте autofs.
Імена хостів не резолвляться
Перевірте DNS/hosts, при потребі увімкніть mDNS або WINS (winbind). Тест: getent hosts fileserver01.
Які порти відкрити у firewall?
SMB: TCP 445. NFSv4: TCP/UDP 2049 (і, за потреби, rpcbind 111). На firewalld: sudo firewall-cmd --add-service=samba --permanent && sudo firewall-cmd --add-service=nfs --permanent && sudo firewall-cmd --reload.
Яка версія SMB/NFS безпечна?
SMB: щонайменше vers=2.1, краще 3.0/3.1.1. NFS: використовуйте v4.x, якщо сервер підтримує.
Як делікатно відмонтувати, якщо ресурс зник?
Спробуйте sudo umount -f /mnt/... або зупиніть автомаунт-юнит: sudo systemctl stop mnt-...\.automount. Логи: journalctl -u mnt-... -b.
Порада від Kernelka
Для ноутів і нестабільних Wi‑Fi мереж обирайте autofs або systemd-automount — вони рятують від зависань і економлять батарейку завдяки idle-timeout. А ще зручно дебажити через journalctl -u і systemd-analyze verify — логи завжди скажуть правду 😉
Підсумок
- Використовуйте automount (systemd або autofs), щоб не блокувати завантаження системи 😊
- Додавайте _netdev, nofail і розумні тайм-аути (idle-timeout, timeo/retrans).
- Перевіряйте готовність мережі через wait-online та коректні мережеві налаштування.
- Для NFS — вбудований fallback через перелік серверів; для SMB — DFS або скриптовий резерв.
- Захищайте креденшели (chmod 600) і тестуйте через термінал Linux перед продом.

Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.