fstab (Русский)
Файл /etc/fstab используется для настройки параметров монтирования различных блочных устройств, разделов на диске и удаленных файловых систем.
Он состоит из набора определений файловых систем. Каждая файловая система занимает свою строку. Эти определения динамически преобразуются в юниты монтирования systemd во время загрузки системы. При этом производится автоматическое разрешение зависимостей: службы, которые зависят от конкретной файловой системы, запускаются только после ее монтирования, а удаленные файловые системы вроде NFS или Samba, в свою очередь, монтируются только после того, как будет установлено сетевое подключение. Таким образом, и локальные, и удаленные файловые системы, указанные в /etc/fstab
, будут правильно смонтированы без дополнительной настройки. По умолчанию, при монтировании также производится запуск проверки файловой системы программой fsck. За подробной информацией обратитесь к man-странице systemd.mount(5)
.
При монтировании с помощью mount fstab используется для определения точки монтирования, если указано только устройство, и наоборот. При этом параметры монтирования также берутся из fstab.
Пример файла
Простой пример /etc/fstab
, в котором файловые системы заданы по именам файлов устройств:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass> /dev/sda1 / ext4 defaults,noatime 0 1 /dev/sda2 none swap defaults 0 0 /dev/sda3 /home ext4 defaults,noatime 0 2
Формат строки
Каждая строка в файле /etc/fstab
содержит следующие поля, разделенные пробелами или символами табуляции:
filesystem dir type options dump pass
- filesystem
- Физическое место размещения файловой системы, по которому определяется конкретный раздел или устройство хранения для монтирования. Смотрите подробнее в разделе #Определение файловой системы.
- dir
- Точка монтирования, куда монтируется корень файловой системы.
- type
- Тип файловой системы. Поддерживается множество типов:
ext2
,ext3
,ext4
,btrfs
,reiserfs
,xfs
,jfs
,smbfs
,iso9660
,vfat
,ntfs
,swap
иauto
. При выбореauto
команда mount попытается определить реальный тип файловой системы самостоятельно. Это полезно для компакт-дисков (CD/DVD). - options
- Параметры монтирования файловой системы. Подробнее смотрите на mount(8) § FILESYSTEM-INDEPENDENT_MOUNT_OPTIONS. Обратите внимание, что некоторые параметры относятся к конкретным типам файловых систем.
- dump
- Используется утилитой dump для определения того, нужно ли создать резервную копию данных в файловой системе. Возможные значения: 0 или 1. Если указано число 1, dump создаст резервную копию. У большинства пользователей утилита dump не установлена, поэтому им следует указывать 0 в этом поле.
- pass
- Используется программой fsck для определения того, нужно ли проверять целостность файловой системы. Возможные значения: 0, 1 или 2. Значение 1 следует указывать только для корневой файловой системы (с точкой монтирования
/
); для остальных ФС, которые вы хотите проверять, используйте значение 2, которое имеет менее высокий приоритет.Обратите внимание, что в случае btrfs следует всегда указывать 0, даже если эта файловая система используется в качестве корневой. Файловые системы, для которых в поле указано значение 0, не будут проверяться fsck.
Определение файловой системы
Конкретное место расположения файловой системы может быть определено различными способами. В файле /etc/fstab
можно указать имя файла устройства, его метку или UUID (в том числе GPT-метку и GPT-UUID для дисков GPT). Определение по UUID является наиболее предпочтительным способом. Подробнее об этом вы можете узнать на странице Persistent block device naming.
Далее приведены примеры определений файловых систем с использованием каждого из способов. Вывод lsblk -f
and blkid
для этих примеров вы можете найти на странице Persistent block device naming.
По именам устройств
Запустите lsblk -f
, чтобы отобразить список разделов. Укажите имена устройств с префиксом /dev/
.
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass> /dev/sda1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 /dev/sda2 / ext4 rw,relatime,discard,data=ordered 0 1 /dev/sda3 /home ext4 rw,relatime,discard,data=ordered 0 2 /dev/sda4 none swap defaults 0 0
По меткам
Запустите lsblk -f
, чтобы отобразить список разделов. Укажите метки из столбца LABEL
с префиксом LABEL=
:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass> LABEL=EFI /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 LABEL=SYSTEM / ext4 rw,relatime,discard,data=ordered 0 1 LABEL=DATA /home ext4 rw,relatime,discard,data=ordered 0 2 LABEL=SWAP none swap defaults 0 0
По UUID
Запустите lsblk -f
, чтобы отобразить список разделов. Укажите идентификаторы из столбца UUID
с префиксом UUID=
:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass> UUID=CBB6-24F2 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 rw,relatime,discard,data=ordered 0 1 UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 rw,relatime,discard,data=ordered 0 2 UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults 0 0
lsblk -no UUID /dev/sda2
.По меткам GPT
Запустите blkid
чтобы отобразить список разделов. Укажите значения PARTLABEL
без кавычек:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass> PARTLABEL=EFI\040SYSTEM\040PARTITION /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 PARTLABEL=GNU/LINUX / ext4 rw,relatime,discard,data=ordered 0 1 PARTLABEL=HOME /home ext4 rw,relatime,discard,data=ordered 0 2 PARTLABEL=SWAP none swap defaults 0 0
По UUID GPT
Запустите blkid
чтобы отобразить список разделов. Укажите значения PARTUUID
без кавычек:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass> PARTUUID=d0d0d110-0a71-4ed6-936a-304969ea36af /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 PARTUUID=98a81274-10f7-40db-872a-03df048df366 / ext4 rw,relatime,discard,data=ordered 0 1 PARTUUID=7280201c-fc5d-40f2-a9b2-466611d3d49e /home ext4 rw,relatime,discard,data=ordered 0 2 PARTUUID=039b6c1c-7553-4455-9537-1befbc9fbc5b none swap defaults 0 0
Советы и рекомендации
Автоматическое монтирование с systemd
Если у вас большой раздел /home
, вы можете разрешить службам, которые не обращаются к /home
, запускаться в то время, как /home
проверяется программой fsck. Для этого добавьте следующие параметры монтирования в запись /etc/fstab
для точки монтирования /home
:
noauto,x-systemd.automount
При этом процедура проверки и монтирования /home
будет запущена только при первой попытке доступа, и ядро будет держать в ожидании все создаваемые потоки ввода-вывода в /home
, пока раздел не будет смонтирован.
/home
может составлять не более секунды-двух, в зависимости от конфигурации вашей системы. При этом разделу /home
будет присвоен тип файловой системы autofs
, который по умолчанию игнорируется mlocate. Используйте эту возможность с осторожностью.Автоматическое монтирование может аналогичным образом использоваться и для монтирования удаленных файловых систем. В дополнение, вы можете использовать параметр x-systemd.device-timeout=#
для указания времени ожидания удаленной файловой системы при перебоях в соединении.
exec
при автоматическом монтировании, вам следует удалить флаг user
, чтобы монтирование производилось корректно. Подробнее смотрите в отчете об ошибке.Если у вас имеются зашифрованные файловые системы, вы можете также добавить параметр noauto
в соответствующие записи в /etc/crypttab
. Тогда systemd не будет пытаться открыть зашифрованное устройство во время загрузки системы, а сделает это при первой попытке доступа к файловой системе на этом устройстве, применив указанный файл ключа и затем автоматически смонтировав ФС. Это может дать выигрыш в несколько секунд при загрузке системы, например, если у вас зашифрованный RAID массив: systemd не придется ожидать готовности устройства. Пример записи:
/etc/crypttab
data /dev/md0 /root/key noauto
Пробелы в значениях полей
Так как пробельные символы используются в fstab
для разделения полей, их нельзя напрямую использовать в значениях полей. Любые пробелы в полях (например, значения PARTLABEL
, LABEL
или точки монтирования) должны быть заменены специальными управляющими последовательностями, которые состоят из обратной косой черты (\
) и трех восьмеричных цифр (например, для пробела это \040
):
/etc/fstab
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
Внешние устройства
Если устройство не подключено постоянно, и может отсутствовать во время загрузки системы, монтируйте его с параметром nofail
. Это предотвратит появление ошибок при загрузке.
/etc/fstab
/dev/sdg1 /media/backup jfs defaults,nofail 0 2
Параметры atime
- Если файловая система смонтирована с параметром
atime
, то, когда происходит обращение к файлу, в его поле atime записывается текущее время (иными словами, время доступа). Это может быть полезно, когда Linux используется на сервере; на персональном компьютере эта функция обычно не нужна. Недостаток этой функции в том, что даже при чтении файла из кэша (в оперативной памяти) все равно производится медленная операция записи на диск. Использование параметров монтированияnoatime
,nodiratime
илиrelatime
может улучшить производительность доступа к данным, а также уменьшить износ твердотельных (SSD) накопителей.
- Параметр
noatime
полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, Mutt полагается на его значение. Для mutt вы можете использовать параметрrelatime
.
- Параметр
nodiratime
отключает обновление времени доступа только для каталогов; для остальных файлов время atime будет обновляться всегда.
- Примечание: Действие
noatime
перекрывает собойnodiratime
. Нет необходимости указывать оба параметра.
- Параметр
relatime
включает обновление поля только когда содержимое файла перезаписывается (в отличие отnoatime
, при котором поле atime вообще не обновляется, и может становиться раньше времени изменения mtime). Использование этого параметра наиболее предпочтительно, так как программы вроде Mutt будут работать корректно, и при этом вы все равно получите достаточное улучшение производительности: при операциях чтения (как правило, гораздо более частых, чем записи) не будет производиться запись времени на диск. По умолчанию файловые системы монтируются с этим параметром.
Запись в FAT32 с правами обычного пользователя
Чтобы иметь возможность записи в разделе FAT32, вам следует указать правильные параметры монтирования в вашем файле /etc/fstab
.
/etc/fstab
/dev/sdxY /mnt/some_folder vfat user,rw,umask=000 0 0
Флаг user
означает, что любой пользователь сможет монтировать и размонтировать раздел /dev/sdX
. Параметр rw
дает доступ на чтение-запись; umask
убирает указанные права — например, umask=111
удаляет права на выполнение. Проблема в том, что права на "выполнение" также удаляются у каталогов, поэтому мы должны исправить это при помощи параметра dmask=000
(подробности смотрите на странице Umask).
Без этих параметров все файлы будут восприниматься исполняемыми. Вы можете использовать параметр showexec
вместо umask и dmask, при которой исполняемыми будут файлы, имеющие расширения исполняемых файлов Windows (.com, .exe, .bat).
Например, если ваш раздел FAT32 на /dev/sda9
, и вы хотите смонтировать его в каталог /mnt/fat32
, то вам следует использовать запись следующего вида:
/etc/fstab
/dev/sda9 /mnt/fat32 vfat user,rw,umask=111,dmask=000 0 0
Перемонтирование корневого раздела
Если по какой-то причине корневой раздел был неправильно смонтирован только на чтение, вы можете перемонтировать его с доступом на чтение-запись без перезагрузки, набрав
# mount -o remount,rw /
Монтирование каталогов
Монтирование, аналогичное команде
# mount -o bind /mnt/folder-on-ssd/var/cache /var/cache
описывается в fstab следующей строкой:
/etc/fstab
/mnt/folder-on-ssd/var/cache /var/cache none bind 0 0
Смотрите также
- Полный список устройств, включающий также блочные устройства
- Стандарт иерархии файловой системы (FHS)
- Ускорение веб-сайта в 30 раз[устаревшая ссылка 2020-08-02] (подробнее о tmpfs)
- Samba#Добавление сетевых ресурсов Sabma в /etc/fstab[ссылка недействительна: раздел не найден]