https://ru.linux-console.net/?p=10662
Как работает fstab - введение в файл /etc/fstab на Linux
Файл /etc/fstab является одним из самых важных файлов в системах на базе Linux, поскольку он хранит статическую информацию о файловых системах, их точках монтирования и параметрах монтирования. В этом уроке мы подробно узнаем его структуру, а также синтаксис, который мы можем использовать для указания каждой записи в файле.
В этом уроке вы узнаете:
Как использовать файл fstab для предоставления статической информации о файловой системе
Как устроен файл fstab
Для чего нужно каждое поле ввода в файле
Поля Fstab
Каждая строка записи в файле fstab содержит шесть полей, каждое из которых описывает определенную информацию о файловой системе.
Первое поле – Блочное устройство
Первое поле в каждой записи fstab содержит информацию о локальном или удаленном блочном устройстве, которое должно быть смонтировано. Наиболее типичным способом обращения к блочному устройству является использование его узла в каталоге /dev, поэтому, например, для ссылки на первый раздел блочного устройства sda мы используем /dev/sda1 в качестве значения.
Альтернативным способом ссылки на блочное устройство является использование его LABEL или UUID (Universal Unique IDentifier). Последний метод является абсолютно предпочтительным, поскольку он гарантирует однозначную ссылку на файловую систему, как указано в ее названии. На дисках с разделами 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 order
Шестое поле используется для определения порядка, в котором другая утилита, fsck, должна проверять файловые системы при загрузке. Значение 1 всегда должно использоваться для корневой файловой системы; для всех остальных мы можем использовать 2. Если это значение не указано, по умолчанию оно равно 0, и файловая система не будет проверяться. С этим последним полем наш пример записи наконец завершен:
UUID=80b496fa-ce2d-4dcf-9afc-bcaa731a67f1 /mnt/example ext4 defaults 0 2