fstab (File Systems Table)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:52, 21 июля 2016.

fstab (англ. File Systems Table) — один из конфигурационных файлов в UNIX-подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера; описывает, как диск (раздел) будет использоваться или как будет интегрирован в систему.

Полный путь к файлу — /etc/fstab.

Структура fstab

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

  • Поле <file system>, указывает на физическое место размещения файловой системы, по которому определяется конкретный раздел или устройство хранения для монтирования.

Конкретное место расположения файловой системы может быть определено различными способами. В файле /etc/fstab можно указать имя файла устройства, его метку (Label) или UUID. Например для UUID:

 </etc/fstab>	
  
  # <file system>                                    <dir>   <type> <options>                                                         <dump> <pass>
    UUID="339df6e7-91a8-4cf9-a43f-7f7b3db533c6"       /       ext4   defaults                                                            0      1  

Или для меток(Label):

 </etc/fstab>	
  
  # <file system>                                    <dir>   <type> <options>                                                         <dump> <pass>
    LABEL="Gentoo"                                     /      ext4   defaults                                                            0     1   
  • Поле <dir>, определяет путь, по которому будет смонтирована <file system>, точка монтирования.
  • Поле <type>, тип файловой системы. Поддерживается множество типов: ext2, ext3, ext4, btrfs, ReiserFS, XFS, JFS, smbfs, iso9660, vfat, NTFS, swap и auto. При выборе auto команда mount попытается определить реальный тип файловой системы самостоятельно.
  • Поле <options>, параметры монтирования файловой системы, в том числе если файловая система должна быть установлена ​​при загрузке.

Если используются все значения по умолчанию, то используется специальный ключ defaults. Если хоть одна опция задана явно, то defaults указывать не нужно (defaults служит только для того, что была занята позиция в строке). Для полного списка опций используйте команду man mount.

auto Файловая система монтируется при загрузке автоматически или после выполнения команды 'mount -a'.
noauto Файловая система может быть смонтирована только вручную.
exec Позволяет исполнять бинарные файлы на разделе диска. Установлено по умолчанию.
noexec Бинарные файлы не выполняются. Использование опции на корневой системе приведёт к её неработоспособности.
ro Монтирует файловую систему только для чтения.
rw Монтирует файловую систему для чтения/записи.
sync Все операции ввода-вывода должны выполняться синхронно.
async Все операции ввода-вывода должны выполняться асинхронно.
user Разрешает любому пользователю монтировать файловую систему. Применяет опции noexec, nosuid, nodev, если они не переопределены.
nouser Только суперпользователь может монтировать файловую систему. Используется по умолчанию.
defaults Использовать значения по умолчанию. Соответствует набору rw, suid, dev, exec, auto, nouser, async.
suid Разрешить операции с suid и sgid битами. В основном используются, чтобы позволить пользователям выполнять бинарные файлы со временно приобретёнными привилегиями для выполнения определённой задачи.
nosuid Запрещает операции с suid и sgid битами.
nodev Данная опция предполагает, что на монтируемой файловой системе не будут созданы файлы устройств (/dev). Корневой каталог и целевая директория команды chroot всегда должны монтироваться с опцией dev или defaults.
atime Включает запись информации о последнем времени доступа (atime) при каждом чтении файла. Включено по умолчанию на Linux до v.2.6.29 включительно.
noatime Отключает запись информации о последнем времени доступа (atime) при каждом чтении файла.
relatime Включает запись информации о последнем времени доступа при чтении файла, если предыдущее время доступа (atime) меньше времени изменения файла (ctime). Включено по умолчанию на Linux начиная с v.2.6.30.
notail Отключает «упаковку хвостов файлов». Опция работает только с файловой системой ReiserFS.

Стоит обратить внимание на тот факт, что <options> могут быть составлены из нескольких значений разделенных запятой.

  • Поле <dump>, используется утилитой dump для определения того, нужно ли создать резервную копию(провести архивацию) данных в файловой системе. Возможные значения: 0 или 1. Если указано число 1, dump создаст резервную копию, если указано число 0 то функция отключается.
  • Поле <pass>, используется программой fsck для определения того, нужно ли проверять целостность файловой системы. Возможные значения: 0, 1 или 2. Значение 1 следует указывать только для корневой файловой системы (с точкой монтирования /); для остальных ФС, которые вы хотите проверять, используйте значение 2, которое имеет менее высокий приоритет.В файловых системах, для которых в поле указано значение 0, будет отключена проверка целостности для этого раздела в целом.

Особенности монтирования /etc/fstab

Автоматическое монтирование с systemd

Если у вас большой раздел /home, вы можете разрешить службам, которые не обращаются к /home, запускаться в то время, как /home проверяется программой fsck. Для этого добавьте следующие параметры монтирования в запись /etc/fstab для точки монтирования /home:

 <noauto,x-systemd.automount>	  

При этом процедура проверки и монтирования /home будет запущена только при первой попытке доступа, и ядро будет держать в ожидании все создаваемые потоки ввода-вывода в /home, пока раздел не будет смонтирован.

Пробелы в значениях полей

Так как пробельные символы используются в fstab для разделения полей, их нельзя напрямую использовать в значениях полей. Любые пробелы в полях (например, значения PARTLABEL, LABEL или точки монтирования) должны быть заменены специальными управляющими последовательностями, которые состоят из обратной косой черты \ и трех восьмеричных цифр (например, для пробела это \040):

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

 </etc/fstab>
	       
        #<file system>               <dir>	                    <type>	          <options>	            <dump>	   <pass>
          UUID=47FA-4071     /home/username/Camera\040Pictures   vfat          defaults,noatime           0          0
          /dev/sda7          /media/100\040GB\040(Storage)       ext4          defaults,noatime,user      0          2
 

Параметры atime

Если файловая система смонтирована с параметром atime, то, когда происходит обращение к файлу, в его поле atime записывается текущее время (иными словами, время доступа). Это может быть полезно, когда Linux используется на сервере; на персональном компьютере эта функция обычно не нужна. Недостаток этой функции в том, что даже при чтении файла из кэша (в оперативной памяти) все равно производится медленная операция записи на диск. Использование параметров монтирования noatime, nodiratime или relatime может улучшить производительность доступа к данным, а также уменьшить износ твердотельных (SSD) накопителей.

  • Параметр noatime полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, Mutt полагается на его значение. Для mutt вы можете использовать параметр relatime.
  • Параметр nodiratime отключает обновление времени доступа только для каталогов; для остальных файлов время atime будет обновляться всегда.
  • Параметр relatime включает обновление поля только когда содержимое файла перезаписывается (в отличие от noatime, при котором поле atime вообще не обновляется, и может становиться раньше времени изменения mtime). Использование этого параметра наиболее предпочтительно, так как программы вроде Mutt будут работать корректно, и при этом вы все равно получите достаточное улучшение производительности: при операциях чтения (как правило, гораздо более частых, чем записи) не будет производиться запись времени на диск. По умолчанию файловые системы монтируются с этим параметром.

Перемонтирование корневого раздела

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

<# mount -o remount,rw />

Сервисы

С помощью следующих услуг OpenRC становится доступным большее число возможностей по монтированию и управлению файловыми системами в fstab.

  • localmount - монтирование и замена дисков в соответствии с fstab.
  • netmount - монтирование сетей в соответствии с fstab.
  • fsck - проверка и ремонт файловых систем в соответствии с fstab.
  • root - монтирование корневой файловой системы для чтения / записи.

Источники

  1. https://help.ubuntu.com/community/Fstab
  2. https://ru.wikipedia.org/wiki/Fstab
  3. https://wiki.archlinux.org/index.php/Fstab_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29
  4. https://wiki.gentoo.org/wiki/Fstab