Что такое remount в Linux?

«Что такое remount в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Команда mount -o remount позволяет изменить параметры монтирования уже смонтированной файловой системы «на лету», без необходимости её предварительного размонтирования (umount). Это критически важно для изменения параметров корневой (/) или других активно используемых файловых систем.

Основное применение в DevOps/администрировании:

  1. Изменение режима доступа (read-only / read-write):

    # Перемонтировать корневую файловую систему в режим только для чтения.
    # Это стандартный шаг перед созданием снапшота или для обеспечения целостности при обслуживании.
    sudo mount -o remount,ro /
    
    # Вернуть режим чтения-записи после завершения работ.
    sudo mount -o remount,rw /
  2. Изменение других опций монтирования:

    # Включить/отключить выполнение бинарников (noexec) для раздела с данными.
    sudo mount -o remount,noexec /mnt/data
    sudo mount -o remount,exec /mnt/data
    
    # Обновить параметры для NFS-шары (например, размер read/write буфера).
    sudo mount -o remount,rsize=65536,wsize=65536 nfs-server:/export /mnt/nfs

Ключевые технические детали:

  • Не требует размонтирования: Все открытые файловые дескрипторы и процессы, работающие с файлами на этой ФС, остаются активными. Это обеспечивает непрерывность работы сервисов.
  • Изменяет только флаги: Сама файловая система и точка монтирования не меняются, обновляются только опции, переданные в команде.
  • Часто используется в автоматизации: Например, в Ansible-плейбуках или скриптах для временной блокировки изменений на сервере.

Пример из практики: При автоматическом развёртывании обновлений через CI/CD мы использовали mount -o remount,ro / перед созданием полного бэкапа состояния сервера с помощью tar, а затем возвращали rw режим. Это гарантировало, что данные в архиве будут консистентными.