Как работает монтирование файловых систем в Linux?

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

Ответ

Монтирование в Linux — это процесс присоединения блочного устройства (диска, раздела), сетевой файловой системы или даже виртуальной ФС к определённой точке в дереве каталогов (точке монтирования), делая её содержимое доступным для пользователя и приложений.

Базовые команды:

# Монтирование устройства
mount /dev/sdb1 /mnt/data

# Размонтирование
umount /mnt/data

Конфигурация для автоматического монтирования (/etc/fstab): Каждая строка определяет файловую систему для монтирования при загрузке.

# Устройство  Точка монтирования  Тип ФС  Параметры  Dump  Pass
/dev/sdb1    /mnt/data           ext4    defaults   0     2
UUID=xxxx... /opt/app            xfs     defaults,noatime 0 1

Типы монтирования, важные для DevOps:

  • Bind Mount: «Зеркалирует» один каталог в другой. Широко используется в Docker для монтирования томов.
    mount --bind /var/lib/app/config /mnt/backup/config
  • tmpfs: Монтирует виртуальную файловую систему в оперативной памяти. Идеально для временных файлов, не требующих сохранения.
    mount -t tmpfs -o size=512M tmpfs /mnt/tmp
  • Сетевые файловые системы (NFS, CIFS/SMB): Ключевые для распределённых и облачных сред.
    # NFS (часто используется для общего хранения в кластерах Kubernetes)
    mount -t nfs -o hard,intr,nolock nfs-server:/export/share /mnt/nfs
    # CIFS/SMB (для интеграции с Windows-серверами)
    mount -t cifs //server/share /mnt/smb -o username=user,password=pass,vers=3.0

DevOps-контекст: В облачных средах (AWS, GCP) постоянные диски (EBS, Persistent Disk) монтируются на виртуальные машины как блочные устройства (/dev/sdX или /dev/nvmeXn1), после чего их необходимо отформатировать и смонтировать. В оркестраторах контейнеров, таких как Kubernetes, механизмы монтирования абстрагированы через концепции PersistentVolumes и PersistentVolumeClaims, которые под капотом используют стандартные системные вызовы mount.