🦔 Как работает fstab – введение в файл /etc/fstab в Linux – Information Security Squad
🦔 Как работает fstab – введение в файл /etc/fstab в Linux

Файл /etc/fstab является одним из наиболее важных файлов в системе на основе Linux, поскольку он хранит статическую информацию о файловых системах, их точках и опциях монтирования.

В этом мануале мы научимся детально знать его структуру и синтаксис, который мы можем использовать для указания каждой записи в файле.

В руководстве уроке вы узнаете:

  • Как использовать файл fstab для предоставления статической информации о файловой системе
  • Как структурирован файл fstab
  • Какова цель каждого поля ввода в файле

Роль Fstab

Первое, что мы должны знать о файле fstab, это то, что он предназначен для чтения только программами и никогда не записывается, кроме как системным администратором.

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

Каждое поле может быть разделено другим либо пробелами, либо символами табуляции.

Давайте проанализируем каждое поле и его роль в записи.

Fstab поля

Каждая строка ввода в файле fstab содержит шесть полей, каждое из которых описывает конкретную информацию о файловой системе.

Первое поле – блочное устройство

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

Наиболее типичным способом ссылки на блочное устройство является использование его узла в каталоге /dev, поэтому, например, для ссылки на первый раздел блочного устройства sda мы используем /dev/sda1 в качестве значения.

Альтернативные способы ссылки на блочное устройство – это использование его LABEL или UUID (универсальный уникальный идентификатор).

Последний является абсолютно предпочтительным методом, поскольку он гарантирует однозначную ссылку на файловую систему, как указано в ее названии.

На GPT-разделенных дисках также можно ссылаться на файловую систему с помощью PARTUUID или PARTLABEL.

Чтобы получить информацию о файловых системах, мы можем запустить команду lsblk, в конечном итоге с опцией -o, чтобы указать поля, которые мы хотим получить, или с помощью -fs, что эквивалентно использованию -o, и предоставить NAME, FSTYPE, LABEL , UUID, MOUNTPOINT в качестве аргументов.

По умолчанию программа отображает информацию обо всех существующих файловых системах.

Чтобы избежать этого, в качестве аргумента должна быть передана ссылка на файловую систему:

$ lsblk -d -fs /dev/sdb1
NAME FSTYPE LABEL UUID FSAVAIL FSUSE%
MOUNTPOINT
sdb1 ext4 80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 13.3G 1%
/mnt/example

В приведенном выше примере мы также использовали опцию -d для lsblk, сокращение от –nodeps, чтобы скрыть деревья структуры файловых систем из выходных данных.

Теперь, когда мы собрали информацию о файловой системе, мы можем создать для нее запись в fstab.

В первом поле записи для ссылки на /dev/sdb1 мы будем использовать его UUID:

 UUID = 80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 

Второе поле – точка монтирования

В каждой записи fstab второе поле указывает точку монтирования для файловой системы: какой каталог в системе следует использовать для доступа к ее содержимому.

Это должно предоставляться всегда, кроме случаев, когда блочное устройство, на которое мы ссылаемся, используется как своп.

В этом случае следует использовать «none».

Предположим, мы хотим смонтировать нашу файловую систему в “/mnt/example”; мы бы написали:

UUID=80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 /mnt/example

Третье поле – тип файловой системы

Третье поле записи fstab указывает тип файловой системы, используемой на необработанном блочном устройстве или разделе.

Файловая система должна быть в числе поддерживаемых операционной системой, например, ext4, xfs и т. д.

В случае удаленной файловой системы мы можем использовать, например, cifs в качестве значения этого поля, если файловая система используется совместно через samba или nfs, если он передается через сетевую файловую систему.

В нашем примере мы знаем, что устройство sdb1 отформатировано с файловой системой ext4, поэтому наша запись в fstab становится такой:

UUID=80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 /mnt/example ext4

Четвертое поле – опции монтирования

Четвертое поле каждой записи в файле fstab используется для предоставления списка опций, которые будут использоваться при монтировании файловой системы.

Чтобы использовать набор параметров монтирования по умолчанию, мы указываем default как значение.

Варианты по умолчанию:

  • rw (чтение-запись);
  • suid (соблюдать биты setuid и setgid);
  • dev (интерпретировать символы и блокировать устройства в файловой системе);
  • exec (разрешить выполнение двоичных файлов и скриптов);
  • auto (монтировать файловую систему, когда используется опция -a команды mount);
  • nouser (сделать файловую систему не монтируемой обычным пользователем);
  • async (выполнять операции ввода-вывода в файловой системе асинхронно).

Чтобы увидеть список доступных опций, мы можем обратиться к руководству по монтированию:

$ man mount

На данный момент наша запись становится:

UUID=80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 /mnt/example ext4    defaults

Пятое поле – Должна ли файловая система быть выгружена?

Пятое поле в каждой записи может быть 0 или 1.

Это значение используется программой резервного копирования дампов (если она установлена), чтобы узнать, какую файловую систему следует выгрузить.

Как правило, наша запись становится:

UUID=80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 /mnt/example ext4    defaults         0

Шестое поле – порядок Fsck

Шестое поле используется для определения порядка, в котором другая утилита, fsck, должна проверять файловые системы при загрузке.

Значение 1 всегда должно использоваться для корневой файловой системы; для всех остальных мы можем использовать 2.

Если это значение не указано, по умолчанию оно равно 0, и файловая система не будет проверена.

С этим последним полем наша запись в качестве примера наконец завершена:

UUID=80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 /mnt/example ext4    defaults   0      2

Выводы

В этом уроке мы узнали, как структурирован /etc/fstab, один из самых важных файлов в операционной системе на основе Linux.

Мы узнали, что он содержит статическую информацию о файловых системах, и мы увидели, что каждая запись в файле состоит из шести полей, каждое с определенной целью, которую мы исследовали.

 

1 комментария на “🦔 Как работает fstab – введение в файл /etc/fstab в Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *