Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья6 мин чтенияПросмотры6

Как проверить fstab до перезагрузки: findmnt без mount -a

Проверяем кандидатный fstab через findmnt --verify, разбираем коды возврата и ограничения метода, не монтируя диски и не меняя рабочую конфигурацию.

Комментарии 0

Сервер, накопитель и контрольный список перед изменением таблицы монтирования
В этой статье

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

Для Ubuntu 24.04 подходит findmnt из util-linux. Команда с --verify разбирает таблицу, проверяет её пригодность и возвращает ненулевой код при найденной ошибке. Параметр --tab-file позволяет указать копию, не заменяя /etc/fstab и не выполняя монтирование.

Границы проверки

Ниже проверяется синтаксис и доступная системе информация о цели и источнике. Это не доказательство, что файловая система исправна, сетевое хранилище будет доступно при загрузке, пароль для CIFS верен или приложение переживёт смену точки монтирования. Команда ничего не монтирует и не воспроизводит загрузку systemd.

Проверка выполнена 7 октября 2026 года в изолированной Ubuntu 24.04.3 с util-linux 2.39.3. Использованы только каталоги и учебные файлы в рабочей директории; /etc/fstab не изменялся, mount и перезагрузка не запускались.

Уточните версию и подготовьте копию

findmnt --version

В проверенной среде результат проверки версии: findmnt from util-linux 2.39.3. Возможности и формулировки диагностики в другой версии могут отличаться.

cp /etc/fstab ./fstab.candidate

Команда создаёт рабочую копию в текущем каталоге. Она не является резервной копией всего сервера и не заменяет утверждённый способ восстановления конфигурации. Проверьте права доступа к каталогу: файл может содержать адреса сетевых ресурсов и пути.

Редактируйте только fstab.candidate. Если источником изменения служит система управления конфигурацией, сформируйте кандидат тем же шаблоном, который будет применён на сервере: ручная копия и производимый автоматикой файл могут отличаться.

Проверьте кандидат без монтирования

findmnt --verify --verbose --tab-file ./fstab.candidate

Код 0 означает, что findmnt не нашёл ошибок и предупреждений в доступной ему проверке. Это не разрешение на автоматическую перезагрузку. Код 1 требует прочитать диагностику, исправить кандидат и повторить ту же команду.

Документация findmnt указывает: --verify проверяет разбираемость и пригодность таблицы, а --tab-file подменяет путь к проверяемому файлу. Там же сказано, что --verbose добавляет детали, а код 1 используется при ошибке.

Схема проверки кандидатного fstab: findmnt возвращает код 0 или останавливает процесс кодом 1
Код 0 переводит к следующей проверке; код 1 — к исправлению кандидата.

Как выглядят три разных сбоя

В первом тесте точка монтирования существовала, а bind-источник был доступен. Проверка завершилась сообщением Success, no errors or warnings detected и кодом 0.

findmnt --verify --verbose --tab-file ./fstab-valid; echo $?

Во втором тесте в строке был указан несуществующий каталог назначения. findmnt сообщил unreachable on boot required target и вернул 1. Такой результат важен даже при корректном числе полей: строка формально читается, но применить её как обязательное монтирование нельзя.

findmnt --verify --verbose --tab-file ./fstab-bad-target; echo $?

Третий тест использовал UUID, которого нет в среде. Диагностика сообщила unreachable on boot required source и вернула 1. Это проверка доступности тега на текущем узле, а не состояния файловой системы внутри устройства.

findmnt --verify --verbose --tab-file ./fstab-bad-source; echo $?

Строка из одного поля дала parse error at line 1 -- ignored и код 1. А строка без пятого и шестого полей прошла с кодом 0: это не пропуск проверки. Для fs_freq и fs_passno документация определяет значения по умолчанию, поэтому их отсутствие не считается синтаксической ошибкой.

Матрица результатов четырёх проверок fstab с кодами возврата 0 и 1
В выполненной учебной проверке корректная строка дала 0, а ошибки цели, UUID и синтаксиса — 1.

Формат шести полей, экранирование пробелов и значения по умолчанию описаны в справке fstab. Особенно проверьте второй столбец — точку монтирования — и идентификатор источника в первом.

Не ограничивайтесь зелёной строкой

После кода 0 сопоставьте кандидат с фактическими устройствами. Для UUID и LABEL важна не похожая строка, а разрешение тега в нужное устройство.

findmnt --fstab --evaluate --tab-file ./fstab.candidate --output=SOURCE,TARGET,FSTYPE,OPTIONS

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

Затем отдельно проверьте, существует ли ожидаемый каталог, какой у него владелец и не скрывает ли новое монтирование уже лежащие там данные. findmnt подтвердит существование цели, но не решит, должны ли находящиеся в каталоге файлы оставаться видимыми после монтирования.

Почему mount -a не является нейтральной проверкой

mount -a пытается выполнить операции из fstab, кроме записей с noauto. Это изменение состояния: оно может подключить сетевой ресурс, скрыть содержимое каталога новым монтированием или запустить файлово-системные помощники. Использовать такую команду только ради синтаксической проверки не стоит.

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

Порядок безопасной приёмки

  • Сохранить кандидат отдельно от /etc/fstab и зафиксировать исходную конфигурацию.

  • Проверить версию util-linux.

  • Запустить findmnt --verify --verbose с явным --tab-file.

  • Исправить каждую ошибку и предупреждение; не ориентироваться только на текст Success.

  • Проверить, в какие устройства преобразуются UUID и LABEL при вызове findmnt --fstab --evaluate.

  • Сопоставить источник, цель, тип и опции с планом изменения.

  • После штатного применения снова проверить уже /etc/fstab.

  • Реальное монтирование и перезагрузку проводить только с планом отката и доступом к консоли.

Условие остановки простое: любой parse error, unreachable source или unreachable target оставляет изменение неподготовленным. Код 0 позволяет перейти к следующей проверке, но не доказывает доступность данных после загрузки.

Итоговый вопрос перед перезагрузкой звучит не «команда была зелёной?», а «какой источник смонтируется в какую цель, с какими опциями и как я верну систему, если загрузка пойдёт иначе?». findmnt закрывает первую часть этого вопроса; план восстановления и испытание сервиса остаются обязанностью команды.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.