fstab (File Systems Table)
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
- монтирование корневой файловой системы для чтения/
записи.