# fstab (Русский)

Ссылки по теме

- Persistent block device naming
- File systems
- Mount (Русский)
- tmpfs

Эта страница нуждается в сопроводителе

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

Файл /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
  Параметры монтирования файловой системы. Подробнее смотрите на man-странице mount. Обратите внимание, что некоторые параметры относятся к конкретным типам файловых систем.
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.

Примечание: Рекомендуем вам прочесть статью 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

Совет: Если вы хотите отобразить только UUID конкретного раздела, используйте команду `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 /

## Смотрите также

- Полный список устройств, включающий также блочные устройства
- Стандарт иерархии файловой системы (FHS)
- Ускорение веб-сайта в 30 раз (подробнее о tmpfs)
- Samba#Добавление сетевых ресурсов Sabma в /etc/fstab[broken link: invalid section]

Categories:

- File systems (Русский)
- Boot process (Русский)
- Русский

Hidden category:

- Pages with broken section links