SystemdDoctor
служба не работает монтирование данные

Привязанное монтирование исчезает после перезагрузки

Привязанное монтирование, сделанное командой, живёт до перезагрузки. Чтобы оно восстанавливалось, нужна запись в fstab или собственный mount-unit — иначе служба после перезагрузки увидит пустой каталог.

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

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

  1. Монтирование сделано только командой

    Команда не сохраняет состояние. После перезагрузки каталог пуст, а служба об этом не знает.

  2. Служба не объявила зависимость от монтирования

    Даже с записью в fstab служба может стартовать раньше монтирования.

  3. Данные записаны в точку монтирования до монтирования

    Если служба успела записать файлы в пустой каталог, после монтирования они окажутся скрыты. Выглядит как потеря данных.

Диагностика

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

Текущие привязанные монтирования.

findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS | grep -i bind

Записи, которые восстановятся после перезагрузки.

grep -i bind /etc/fstab

Решение

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

1. Монтирование сделано только командой
Почему происходит
Команда не сохраняет состояние. После перезагрузки каталог пуст, а служба об этом не знает.
Как проверить
Посмотрите текущие привязки и записи.
findmnt -t none -o TARGET,SOURCE,OPTIONS | head
grep -i bind /etc/fstab
Как исправить
Добавьте запись в fstab с параметром привязки или создайте mount-unit. Второе удобнее, когда нужны зависимости.
# /etc/fstab
# /srv/data  /var/lib/myapp/data  none  bind,nofail  0  0
2. Служба не объявила зависимость от монтирования
Почему происходит
Даже с записью в fstab служба может стартовать раньше монтирования.
Как проверить
Посмотрите зависимость.
systemctl show myapp.service -p RequiresMountsFor
Как исправить
Добавьте RequiresMountsFor= с путём: systemd сам выстроит порядок.
3. Данные записаны в точку монтирования до монтирования
Почему происходит
Если служба успела записать файлы в пустой каталог, после монтирования они окажутся скрыты. Выглядит как потеря данных.
Как проверить
Посмотрите, нет ли скрытых файлов под точкой монтирования.
sudo mkdir -p /tmp/chk && sudo mount --bind / /tmp/chk && sudo ls /tmp/chk/var/lib/myapp/data | head; sudo umount /tmp/chk
Как исправить
Проверяйте пустоту точки монтирования и объявляйте зависимости: скрытые данные обнаруживаются в самый неудобный момент.

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

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

$ findmnt /var/lib/myapp/data
# пусто

$ grep -c bind /etc/fstab
0

myapp[1200]: warn: data directory is empty, starting from scratch

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

Источники

  • systemd.mount(5)
    Привязанные монтирования и параметры.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено привязкой, сделанной командой, с последующей перезагрузкой.
    собственная проверка, systemd 255
    сверено 15 сентября 2026