Что такое Fstab в Linux

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

Что такое fstab?

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

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

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

ПРИМЕЧАНИЕ. Перед редактированием файла fstab рекомендуется сделать его резервную копию. Если в случае, если что-то испорчено, вы можете восстановить резервную копию.

Структура файла /etc/fstab

Fstab находится в /etc/ каталоге и принадлежит пользователю root. Таким образом, вы должны редактировать файл, используя sudoпривилегии или как rootпользователь.

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

$ cat /etc/fstab 
$ cat /etc/fstab | grep -i -v "^#" | column -t # Пропустить комментарии и формат

Содержимое файла fstab

Файл Fstab состоит из шести столбцов (разделов).

  1. Файловая система — блочное устройство, которое разбито на разделы и на нем создана файловая система.
  2. Точка монтирования — место, где файловая система монтируется в вашей системе.
  3. Тип — Тип файловой системы (Ext4, Ext3, swap, Xfs и т. д.)
  4. Параметры — это решает, какие параметры монтирования следует учитывать при монтировании файловой системы.
  5. Дамп — это для целей резервного копирования, используемых dumpутилитой. Установка его на ноль означает отключение резервного копирования, а единица означает включение резервного копирования на данное устройство/носитель.
  6. Pass — Проверка файловой системы при загрузке fsckутилитой. Ноль отключит проверку файловой системы, и для корневой файловой системы следует установить значение 1, а для других разделов — значение 2.

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

Давайте подробно рассмотрим эти шесть параметров.

1. Файловая система

В первой колонке fstab нужно указать, какой раздел вы собираетесь монтировать. Либо вы можете использовать имя блочного устройства, например, /dev/sda* либо использовать UUID.

Когда вы создаете файловую систему поверх любого разбитого на разделы диска с помощью команды mkfs, для этого конкретного раздела будет создан UUID.

Допустим, вы создали новый раздел, и это sdb1. В этом случае ваш fstab будет следующим.

/dev/sdb1/home ext4 default 0 0

Монтировать с использованием имен

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

$ blkid # Вывести информацию обо всех fs.
$ blkid /dev/sdb1 # Вывести информацию только о заданной файловой системе.

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

Монтировать с использованием UUID

2. Точка монтирования

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

Как вы видите на изображении ниже, каждый раздел монтируется в разные каталоги. Например, раздел /dev/sdb1 предназначен для домашнего каталога и смонтирован под /home.

точка крепления

Допустим, вы создали новый раздел размером 100 ГБ и с типом раздела EXT4. Запись fstab будет следующей. Вот точка крепления /mnt/data1.

UUID=xxxx-xxx-xxx /mnt/data1/ ext4 default 0 0

Или

/dev/sdb2 /mnt/data1/ ext4 default 0 0

3. Тип файловой системы

Здесь вы укажете тип файловой системы (EXT2, EXT3, EXT4, XFS, VFAT, SWAP и т. д.). Если вы хотите узнать тип файловой системы для блочного устройства, используйте blkid или команду lsblk.

$ lsblk -f /dev/sdb1
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb1 ext4 365c64d7-4d65-4cdf-8ce1-0def8bb41997 /home
$ blkid /dev/sdb1
/dev/sdb1: UUID="365c64d7-4d65-4cdf-8ce1-0def8bb41997" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="8f174339-01"

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

4. Варианты монтирования

Это важный столбец, в который вы будете передавать параметры монтирования файловой системы. Есть много вариантов крепления, которые можно использовать. Для обычного использования достаточно использовать параметр по умолчанию. Опция по умолчанию указывает на комбинацию семи опций (rw, suid, dev, exec, auto, nouserи async).

Давайте посмотрим, что делает опция по умолчанию.

  • rw— Это говорит о том, что файловая система должна быть смонтирована в режиме чтения-записи. При возникновении ошибки вы можете смонтировать файловую систему в режиме только для чтения, используя опцию errors=remount-ro.
  • suid— Любая операция, связанная с этой опцией suid, sgidбудет разрешена.
  • dev— Он будет интерпретировать символьные и блочные устройства в файловой системе. Если вы не хотите интерпретировать символы и блокировать устройства, вы можете явно использовать опцию nodev.
  • exec— Из файловой системы вы можете запускать двоичные файлы, установив опцию exec. В отличие от этого, вы можете использовать noexecопцию, чтобы не запускать двоичные файлы из файловой системы.
  • auto— Эта опция отвечает за автоматическое монтирование файловой системы во время загрузки или всякий раз, когда вы запускаете команду mount -a из терминала. В отличие от этого, есть noautoвариант, который позволит монтировать файловую систему только по отдельности.
  • nouser— Только суперпользователь может монтировать файловую систему. Вы также можете использовать параметры «пользователь» и «пользователи», которые могут настроить обычного пользователя для монтирования и размонтирования файловой системы.
  • async— Все операции ввода-вывода должны выполняться асинхронно. Если вы используете опцию «синхронизировать», операция ввода-вывода будет выполняться синхронно.

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

Варианты крепления

5. Дамп

Этот столбец предназначен для целей резервного копирования. Если установлено значение 1, утилита дампа будет создавать резервные копии. Сейчас это устаревшая функция, поскольку изначально она была разработана для создания резервных копий на лентах для старых файловых систем.

Рекомендуется установить его равным нулю.

Дамп столбца в fstab

6. fsck

Во время загрузки утилита fsck проверит файловую систему на основе значения, которое мы указываем в шестом столбце. Если вы установите значение равным нулю или оставите его пустым, проверка файловой системы будет отключена.

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

Передать столбец в fstab

Исправить проблемы с загрузкой, связанные с файлом Fstab

Если вы допустили какую-либо ошибку в файле fstab, то при перезагрузке машина перейдет в аварийный режим. В аварийном режиме сетевого интерфейса не будет, поэтому отлаживать придется прямо в консоли.

Аварийный режим

Вы должны ввести rootпароль для входа в аварийный режим. Запустите следующую команду и медленно прокрутите, чтобы просмотреть сообщения об ошибках. В моем случае я намеренно удалил разделитель (/) в /dev/sdb1.

Исправить проблемы с загрузкой, связанные с файлом Fstab

В аварийном режиме, если файловая система смонтирована в режиме только для чтения, вам необходимо смонтировать в rwрежиме и отредактировать fstabфайл, чтобы устранить проблему. Чтобы перемонтировать файловую систему в rwрежиме, выполните следующую команду.

$ mount -o rw,remount /

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

$ reboot

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

Взгляните на изображение ниже, где я добавил новую запись для /dev/sdb2. Я не указал тип файловой системы, поэтому при запуске mountкоманды выдает ошибку.

Ошибка типа файловой системы

$ mount -a
mount: /mnt: unknown filesystem type 'defaults'.

Что такое Mtab-файл?

Когда вы запускаете команду mount без передачи каких-либо аргументов, она печатает список смонтированных файловых систем.

$ mount

В каталоге также есть файл с именем mtab /etc/. Когда вы посмотрите на /etc/mtab, это будет точно так же, как вывод mountкоманды.

Давайте посмотрим, что справочная страница говорит о файле mtab.

Что такое файл mtab

Файл /etc/mtabимеет символическую ссылку на монтирование в procфайловой системе. Если вы запустите команду mountили umount, результат будет обновлен в mounts.

$ ls -ln /etc/mtab
lrwxrwxrwx 1 0 0 19 Jan 9 17:45 /etc/mtab -> ../proc/self/mounts

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

Если /etc/mtab файл поврежден или удален случайно, вы можете восстановить его с помощью следующей команды.

$ sudo sh -c 'grep -v rootfs /proc/mounts > /etc/mtab'

Заключение

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

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.