На моём Synology-сервере настроена NFS (Network File System). Это позволяет легко и удобно подключать и использовать сетевые ресурсы с разных устройств. NFS обеспечивает надёжное и высокопроизводительное сетевое хранилище, которое идеально подходит для домашних и небольших офисных сред.
В этой статье я расскажу, как настроить постоянное монтирование NFS-диска в Fedora Linux 40 с использованием systemd для подключения к уже настроенному Synology.
Руководство описывает процесс настройки постоянного монтирования NFS-диска в Fedora Linux 40 с помощью systemd. В качестве примера используется путь /home/user/synology/homes и подключение к Synology по адресу 192.168.1.10:/volume1/homes.
Шаг 1: Установка необходимых пакетов
Если еще не установлены необходимые пакеты для работы с NFS, выполнить следующую команду:
sudo dnf install nfs-utils
Шаг 2: Создание точки монтирования
Создать директорию, в которую будет монтироваться NFS-диск:
sudo mkdir -p /home/user/synology/homes
Шаг 3: Создание системных юнитов для монтирования
3.1 Создание файла юнита для монтирования
Создать файл* /etc/systemd/system/home-user-synology-homes.mount:
sudo nano /etc/systemd/system/home-user-synology-homes.mount
Добавить в файл следующие строки:
[Unit]
Description=Mount NFS Share at /home/user/synology/homes
Requires=network-online.target
After=network-online.target
[Mount]
What=192.168.1.10:/volume1/homes
Where=/home/user/synology/homes
Type=nfs
Options=defaults,bg,soft
TimeoutSec=30
[Install]
WantedBy=multi-user.target
3.2 (Опционально) Создание файла юнита для автоматического монтирования**
Создать файл /etc/systemd/system/home-user-synology-homes.automount:
sudo nano /etc/systemd/system/home-user-synology-homes.automount
Добавить в файл следующие строки:
[Unit]
Description=Automount NFS Share
[Automount]
Where=/home/user/synology/homes
[Install]
WantedBy=multi-user.target
Шаг 4: Обновление конфигурации systemd и включение юнитов
4.1 Обновление конфигурации systemd
sudo systemctl daemon-reload
4.2 Включение и запуск юнита для автоматического монтирования
Если создан .automount юнит, включить и запустить его следующими командами:
sudo systemctl enable --now home-user-synology-homes.automount
4.3 Включение и запуск юнита для монтирования
Если не используется .automount юнит, включить и запустить только .mount юнит:
sudo systemctl enable --now home-user-synology-homes.mount
Шаг 5: Проверка статуса монтирования
Проверить статус монтирования командой:
systemctl status home-user-synology-homes.mount
Если сервер NFS будет недоступен, несмотря на то, что система убедилась в наличии сети, это может вызвать следующие ситуации:
- Задержка при загрузке: Systemd будет пытаться смонтировать NFS-диск, что может вызвать задержку в процессе загрузки.
- Ошибки монтирования: Если сервер не отвечает, попытки монтирования будут неудачными, и в логах systemd можно будет увидеть сообщения об ошибках.
- Проблемы с доступом к точке монтирования: Директория /home/user/synology/homes будет недоступна, так как монтирование не удалось, что может вызвать проблемы для приложений или процессов, которые ожидают доступ к этой директории.
Использование параметров bg и soft в настройках монтирования, а также установка таймаута (TimeoutSec=30), помогает системе продолжить загрузку и вернуться к нормальной работе даже при недоступном сервере NFS.
Заключение
Теперь NFS-диск должен монтироваться автоматически при загрузке системы благодаря systemd. Добавление зависимости на network-online.target гарантирует, что монтирование произойдет только после полной инициализации сети, что предотвращает ошибку Network is unreachable. Использование параметров bg и soft позволяет системе продолжить загрузку в случае недоступности NFS-сервера. Следуя этим шагам, можно настроить постоянное монтирование NFS-диска, что обеспечит доступ к необходимым данным сразу после загрузки системы.
* Название файла юнита в systemd
Название должно соответствовать пути монтирования, где все символы «/» заменяются на символы «-». Это помогает systemd корректно интерпретировать и связывать юниты с соответствующими точками монтирования. Для пути /home/user/synology/homes файл юнита должен называться home-user-synology-homes.mount.
** Различия между mount и automount
mount юниты
- Подходят для ресурсов, которые должны быть всегда доступны.
- Монтируют файловую систему сразу при загрузке или запуске юнита.
Пример:
[Unit] Description=Mount NFS Share at /home/user/synology/homes
Requires=network-online.target
After=network-online.target
[Mount] What=192.168.1.10:/volume1/homes
Where=/home/user/synology/homes
Type=nfs
Options=defaults,bg,soft
TimeoutSec=30
[Install] WantedBy=multi-user.target
amount юниты:
- Монтируют файловую систему при первом доступе к ней.
- Экономят ресурсы, уменьшают время загрузки.
Пример:
[Unit]
Description=Automount NFS Share at /home/user/synology/homes
[Automount]
Where=/home/user/synology/homes
[Install]
WantedBy=multi-user.target
Использование automount юнитов полезно для редко используемых ресурсов, в то время как mount юниты подходят для постоянно необходимых ресурсов.