Что такое файл /etc/fstab и что в нём содержится?

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

Ответ

/etc/fstab (filesystem table) — это статический системный конфигурационный файл в Linux, который определяет, какие файловые системы, где и как должны быть автоматически смонтированы при загрузке системы.

Структура каждой строки (поля разделяются пробелами или табуляцией):

  1. <file system> — Источник файловой системы.

    • UUID=<идентификатор> (рекомендуемый, устойчивый способ).
    • Путь к устройству: /dev/sda1, /dev/mapper/vg0-root.
    • Сетевой ресурс: server:/share (NFS), //server/share (CIFS).
    • Специальные: tmpfs, proc.
  2. <mount point> — Абсолютный путь к директории, куда будет смонтирована ФС (например, /, /home, /mnt/backup). Директория должна существовать.

  3. <type> — Тип файловой системы: ext4, xfs, btrfs, ntfs-3g, nfs, cifs, tmpfs, proc.

  4. <options> — Опции монтирования, перечисленные через запятую.

    • defaults (rw, suid, dev, exec, auto, nouser, async).
    • noauto — не монтировать при загрузке (mount -a).
    • ro / rw — только для чтения / чтение-запись.
    • user — разрешить монтирование обычным пользователям.
    • nofail — не останавливать загрузку, если устройство отсутствует (важно для облачных дисков).
  5. <dump> — Используется утилитой dump для резервного копирования. 0 означает отключение.

  6. <pass> — Порядок проверки файловой системой утилитой fsck при загрузке.

    • 0 — не проверять.
    • 1 — корневая файловая система (/).
    • 2 — все остальные проверяемые ФС.

Практический пример записи:

# <file system>             <mount point>  <type>  <options>         <dump>  <pass>
UUID=abcd1234-5678          /             ext4    defaults,noatime  0       1
/dev/mapper/vg0-home        /home         xfs     defaults          0       2
//nas/backups               /mnt/backups  cifs    credentials=/etc/samba/creds,uid=1000  0 0
tmpfs                       /tmp          tmpfs   defaults,size=2G  0       0

Важные команды:

  • sudo mount -a — смонтировать все файловые системы из /etc/fstab (полезно после редактирования файла).
  • lsblk -f или blkid — узнать UUID устройств.
  • systemctl daemon-reload — может потребоваться после изменения fstab в systemd-системах.