Лекция №16 - Файл /etc/fstab

Прошлая лекция была посвящена монтированию файловых систем и командам mount unmount. Сегодня мы продолжим тему и подробно рассмотрим такой важный компонент системы как файл /etc/fstab. Файл /etc/fstab содержит в себе описание существующих в системе файловых систем. Под файловой системой здесь следуют понимать файловую систему существующего в операционной системе раздела блочного устройства. Файл /etc/fstab используется такими программами как mount, umount и fsck. Чтобы не писать в команде mount все необходимые опции, можно описать их в файле /etc/fstab, а затем использовать mount в сокращенном виде. Каждая файловая система описана в отдельной строке файла. Строка разделена на поля с помощью пробелов или табуляции. Всего полей шесть. Ниже представлен вариант файла /etc/fstab:

# /etc/fstab: static file system information.
#
# proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=8d6bccd3-0bdf-487c-8b92-70e5b65aa756 / ext3 relatime,errors=remount-ro 0 1
# swap was on /dev/sda8 during installation
UUID=49d78fcc-9bbc-43a6-a750-b0d85921a04c none swap sw 0 0
# /media/disk on /dev/sda2
UUID=d822a992-8a4f-48f0-8b7d-a529af066106 /media/disk ext3 nodev,rw,user 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Строки начинающиеся со знака # это комментарии. Рассмотрим поля из который состоит каждая строка файла /etc/fstab. Для примера возьмем следующую строку:

UUID=8d6bccd3-0bdf-487c-8b92-70e5b65aa756 / ext3 relatime,errors=remount-ro 0 1

Первое поле содержит указание раздела, файловая система которого будет монтироваться в системе. Раздел блочного устройства можно указать непосредственно - /dev/sda1 или через параметр UUID. Можно также указать метку раздела. В первом случае наша строка выглядела бы так:

/dev/sda1 / ext3 relatime,errors=remount-ro 0 1

UUID - это уникальный идентификатор каждого раздела жесткого диска. Он является уникальным не только в рамках вашей операционной системы, но и других систем. Если подключить диск к другому компьютеру с операционной системой Linux, то UUID будет таким же. Монтирование в /etc/fstab через параметр UUID считается более предпочтительным, так как позволяет однозначно идентифицировать любой диск в системе. Чтобы посмотреть UUID разделов вашего диска. Необходимо выполнить следующую команду:

igor@adm-ubuntu:~/linux$ ls -l /dev/disk/by-uuid/
итого 0
lrwxrwxrwx 1 root root 10 2009-11-16 11:05 362CA5282CA4E459 -> ../../sda6
lrwxrwxrwx 1 root root 10 2009-11-16 11:05 49d78fcc-9bbc-43a6-a750-b0d85921a04c -> ../../sda8
lrwxrwxrwx 1 root root 10 2009-11-16 11:05 8d6bccd3-0bdf-487c-8b92-70e5b65aa756 -> ../../sda1
lrwxrwxrwx 1 root root 10 2009-11-16 11:05 A24E667C4E6648DD -> ../../sda5
lrwxrwxrwx 1 root root 10 2009-11-16 11:05 C06A6F286A6F1A84 -> ../../sda7
lrwxrwxrwx 1 root root 10 2009-11-16 11:05 d822a992-8a4f-48f0-8b7d-a529af066106 -> ../../sda2

Если посмотреть содержимое каталога /dev/disk, то можно увидеть, что можно посмотреть и другую информацию о разделах диска, например о метке диска (by-label):

igor@adm-ubuntu:~/linux$ ls -l /dev/disk/
итого 0
drwxr-xr-x 2 root root 360 2009-11-17 17:37 by-id
drwxr-xr-x 2 root root 80 2009-11-17 17:37 by-label
drwxr-xr-x 2 root root 220 2009-11-17 17:37 by-path
drwxr-xr-x 2 root root 160 2009-11-17 17:37 by-uuid

Второе поле в файле /etc/fstab содержит точку монтирования. В нашем примере раздел с UUID=8d6bccd3-0bdf-487c-8b92-70e5b65aa756 (или /dev/sda1) монтируется к корню файловой системы - /. Следует понимать, что точка монтирования должна существовать. Например, если вы пишете в файле /etc/fstab строку о монтировании раздела /dev/sda3 на точку монтирования /mnt/disk, то каталог /mnt/disk должен уже существовать.

В третьем поле указывается тип монтируемой файловой системы. Посмотреть перечень поддерживаемых файловых систем можно в справке man fstab или man mount. Здесь остановимся на основных. ext2, ext3, ext4 - родные файловые системы операционной системы Linux. vfat - используется при монтировании файловых систем семейства FAT (FAT12, FAT16, FAT32). Также используется при монтировании флеш-накопителей и дискет. ntfs - используется при монтировании разделов NTFS операционной системы Windows. iso9660 и udf - используется при монтировании CD,DVD-дисков. Также в третьем поле могут быть значения: proc - для файловой системы /proc, swap - используется для указания специальной области подкачки, auto - в этом случае будет сделана попытка автоматически определить тип файловой системы. Для того, чтобы посмотреть все файловые системы, которые поддерживаются ядром вашей системы необходимо выполнить команду cat /proc/filesystems.

В четвертом поле файла /etc/fstab указываются дополнительные опции монтирования. Опции могут быть как общими для всех типов файловых систем, так и специфическими - которые используются в зависимости от значения третьего поля. Общие опции рассмотрены в разделе FILESYSTEM INDEPENDENT MOUNT OPTIONS справки man fstab, а специфические в разделе FILESYSTEM SPECIFIC MOUNT OPTIONS справки man fstab. Опции задаются через запятую. Опций довольно много и для рассмотрения их всех понадобится не одна лекция, поэтому остановлюсь на самых важных.

sync - операции ввода/вывода выполняются синхронно. То есть информация немедленно записывается на устройство без ожидания в специальной области называемой буферной памятью. Например, если вы копируете маленький файл на флешку или на дискету, а потом тут же выдергиваете ее, то без этой опции, файл может еще быть не записан на носитель, а находится в буферной памяти.
async - операции ввода/вывода выполняются асинхронно. Информация может быть записана в буферную память, а потом через некоторое время на носитель. Не рекомендуется задавать для дискет или флеш носителей.
atime - обновлять время доступа к файлу при каждом обращении к файлу.
noatime - не обновлять время доступа к файлу. Ускоряет работу файловой системы, но использовать нужно осторожно.
auto - при выполнении команды mount -а будут автоматически смонтированы все системы с ключом auto. Команда mount -a выполняется в загрузочных скриптах системы, поэтому можно говорить о том, что задание опции auto позволит автоматически монтировать файловые системы при загрузке системы.
noauto - файловые системы с такой опцией будут монтироваться только вручную по команде mount.
exec - опция разрешает запускать исполняемые файлы, которые расположены на данном файловом разделе.
noexec - опция запрещает запускать исполняемые файлы.
dev - опция указывает, что файлы-устройства следует интерпретировать как файлы-устройства.
nodev - файлы-устройства будут интерпретироваться как обычные файлы. Применяется если необходимо смонтировать раздел, с другой Linux-системой.
users - опция указывает, что монтировать и размонтировать разделы могут обычные пользователи.
user - монтировать раздел может любой пользователь, но размонтировать может только тот кто смонтировал или root. Т.е. если пользователь test смонтирует раздел, то только test и root сможет размонтировать его.
nouser - монтировать раздел может только пользователь root.
suid - опция разрешает применять биты setuid и setgid.
nosuid - опция запрещает применять биты setuid и setgid. Если такие биты установлены они не будут приниматься во внимание.
rw - монтировать файловую систему в режиме чтения/записи.
ro - монтировать файловую систему только в режиме чтения.
defaults - опция устанавливает опции по умолчанию: rw, suid, dev, exec, auto, nouser, async.

Дополнительные опции для файловой системы vfat. Рассмотрим только несколько наиболее употребляемых опций.

uid= - установить владельца для объектов файловой системы.
gid= - установить группу владельца для объектов файловой системы.
umask - установить параметр umask.
dmask - установить параметр umask только для каталогов.
fmask - установить параметр umask только для файлов.
codepage= - указывает в какой кодовой странице сохраняются имена объектов. Для операционный систем Windows, например, этот параметр устанавливают в cp1251.
iocharset - указывает с какой кодовой страницей работает наша система. Как правило это utf8. То есть эти два параметра показывают как нужно перекодировать имена файлов.

Перечислять все опции всех файловых систем больше не будем, так как все они очень хорошо описаны в справке man mount.

В завершении лекции хочу упомянуть о опции которая применяется не в файле /etc/fstab, а в команде mount. Речь идет об опции remount. Эта опция используется если нам необходимо изменить параметры уже смонтированной файловой системы без ее размонтирования. Допустим есть файловая система раздела /dev/sda5, которая смонтирована в точку монтирования /mnt/disk5. Запись об этой файловой системе присутствует в файле /etc/fstab. Если в команде mount в качестве параметров задать и раздел с файловой системой и точку монтирования, то все предыдущие опции монтирования заменятся на новые - указанные в команде mount:

mount -o remount,ro /dev/sda5 /mnt/disk5

Если в команде mount указать только точку монтирования, то опции из файла /etc/fstab будут объединены с опциями указанными в команде mount:

mount -o remount,ro /mnt/disk5

То есть если необходимо перевести файловую систему в режим чтения, то достаточно просто выполнить команду mount с параметрами remount и ro.

Также не забывайте, что все смонтированные на текущий момент заносятся в файл /etc/mtab.

Читать другие лекции по курсу Администратор ПК с Linux

Статьи и новости схожей тематики:

Комментариев: 4

  1. Egor:

    Откуда берется UUID?

    Ответить

    Igorka Reply:

    Конкретизируйте вопрос, если я его неправильно понял. UUID генерируется во время операции создания раздела на жестком диске. Например, при создании разделов командой fdisk. Так нам объяснил преподаватель. Какие параметры учитываются при его генерации сказать не могу - не разбирался глубоко с вопросом генерации UUID.

    Ответить

  2. юотыч:

    Общие опции рассмотрены в разделе FILESYSTEM INDEPENDENT MOUNT OPTIONS справки man fstab, a спецИфические в разделе FILESYSTEM INDEPENDENT MOUNT OPTIONS справки man fstab. В чем разница разделов справки?

    Ответить

    Igorka Reply:

    Спасибо за указанную ошибку. Исправил.

    Ответить

Оставьте свой отзыв