SystemdDoctor
служба не работает монтирование конфигурация

Имя mount-unit не соответствует точке монтирования

Имя mount-unit не произвольное: оно получается из точки монтирования заменой косых черт на дефисы. Для /mnt/backup файл обязан называться mnt-backup.mount. При другом имени systemd откажется загружать unit — это защита от двух unit на одну точку.

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

Преобразование делает systemd-escape -p --suffix=mount /путь. Она же правильно обработает пробелы и дефисы в пути, которые вручную легко испортить.

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

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

  1. Файл назван по смыслу, а не по пути

    Имя вида backup.mount для точки /mnt/backup неверно. systemd сопоставляет имя и Where= и при расхождении отказывает.

  2. В пути есть дефис, и он не экранирован

    Дефис в имени каталога превращается в \x2d. Вручную это почти всегда забывают.

  3. Where= не совпадает с именем файла

    Файл переименовали, а параметр внутри оставили прежним — или наоборот. Оба должны описывать одну точку.

Диагностика

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

Печатает правильное имя unit для любой точки монтирования.

systemd-escape -p --suffix=mount /ваш/путь

Все точки монтирования как unit: видно принятые имена.

systemctl list-units --type=mount --no-pager | head -20

Сообщения systemd об отказе загрузить mount-unit.

journalctl -b --no-pager | grep -iE "\.mount.*(refus|invalid|mismatch)" | head

Решение

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

1. Файл назван по смыслу, а не по пути
Почему происходит
Имя вида backup.mount для точки /mnt/backup неверно. systemd сопоставляет имя и Where= и при расхождении отказывает.
Как проверить
Получите правильное имя из пути.
systemd-escape -p --suffix=mount /mnt/backup
Как исправить
Переименуйте файл в то, что напечатала команда, и перечитайте конфигурацию.
sudo mv /etc/systemd/system/backup.mount /etc/systemd/system/mnt-backup.mount && sudo systemctl daemon-reload
2. В пути есть дефис, и он не экранирован
Почему происходит
Дефис в имени каталога превращается в \x2d. Вручную это почти всегда забывают.
Как проверить
Преобразуйте путь командой, а не руками.
systemd-escape -p --suffix=mount /mnt/data-2024
Как исправить
Используйте имя из вывода команды целиком, вместе с экранированием.
3. Where= не совпадает с именем файла
Почему происходит
Файл переименовали, а параметр внутри оставили прежним — или наоборот. Оба должны описывать одну точку.
Как проверить
Сравните имя файла и значение параметра.
systemctl cat mnt-backup.mount | grep -i where
Как исправить
Приведите их в соответствие: имя файла получается из Where=, других вариантов нет.

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

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

systemd[1]: backup.mount: Where= setting doesn't match unit name. Refusing.
systemd[1]: backup.mount: Unit configuration has fatal error, unit will not be started.

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

Источники

  • systemd.mount(5)
    Правило соответствия имени unit и точки монтирования.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • systemd-escape(1)
    Преобразование путей в имена unit.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено файлом backup.mount с Where=/mnt/backup.
    собственная проверка, systemd 255
    сверено 15 сентября 2026