SystemdDoctor

Правка fstab не применяется: генераторы unit

systemd не читает fstab при каждом монтировании: он превращает его в unit-файлы генератором при чтении конфигурации. Поэтому правка fstab не действует до systemctl daemon-reload.

Что это значит

Генераторы — это программы, которые создают unit-файлы на ходу: из fstab, из параметров загрузки ядра, из настроек сети. Результат лежит в /run/systemd/generator и перезаписывается при каждой перезагрузке конфигурации.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Не выполнена перезагрузка конфигурации

    Новая запись в fstab ещё не превратилась в unit. Монтирование по ней не выполняется, а сообщений об ошибке нет.

  2. Ошибка в записи fstab

    Генератор пропускает неразбираемые строки. Запись есть, unit нет, ошибки не видно.

  3. Свой unit конфликтует с созданным из fstab

    Если для одной точки есть и запись в fstab, и собственный unit-файл, второй перекрывает первый — или они конфликтуют по параметрам.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Проверка записей fstab до перезагрузки.

sudo findmnt --verify --verbose

Какие точки монтирования знает systemd.

systemctl list-units --type=mount --all --no-pager

Unit-файлы, созданные генераторами.

ls -l /run/systemd/generator/

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Не выполнена перезагрузка конфигурации
Почему происходит
Новая запись в fstab ещё не превратилась в unit. Монтирование по ней не выполняется, а сообщений об ошибке нет.
Как проверить
Посмотрите, есть ли unit для вашей точки монтирования.
systemctl list-units --type=mount --all --no-pager | grep -i srv
ls /run/systemd/generator/ | head
Как исправить
Перечитайте конфигурацию и запустите монтирование.
sudo systemctl daemon-reload && sudo systemctl start srv-data.mount
2. Ошибка в записи fstab
Почему происходит
Генератор пропускает неразбираемые строки. Запись есть, unit нет, ошибки не видно.
Как проверить
Проверьте записи fstab.
sudo findmnt --verify --verbose
Как исправить
Исправьте запись по сообщению проверки, затем перечитайте конфигурацию.
3. Свой unit конфликтует с созданным из fstab
Почему происходит
Если для одной точки есть и запись в fstab, и собственный unit-файл, второй перекрывает первый — или они конфликтуют по параметрам.
Как проверить
Посмотрите, откуда взялся действующий unit.
systemctl cat srv-data.mount | head -3
Как исправить
Оставьте один источник: либо fstab, либо собственный unit-файл в /etc/systemd/system.

Пример вывода

Запись добавлена, unit ещё не создан. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

$ sudo tail -1 /etc/fstab
UUID=8f1c0a11-1d1e-4a1f-9c22-6b0f0a2d33aa /srv/data ext4 defaults,nofail 0 2

$ systemctl list-units --type=mount --all | grep srv
# пусто

$ sudo systemctl daemon-reload && systemctl list-units --type=mount --all | grep srv
  srv-data.mount  loaded inactive dead /srv/data

Связанные ошибки

Источники

  • systemd.generator(7)
    Генераторы unit и порядок их работы.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено: запись в fstab не действует до daemon-reload.
    собственная проверка, systemd 255
    сверено 15 сентября 2026