- fstab (Русский)
- Contents
- Пример файла
- Формат строки
- Определение файловой системы
- По именам устройств
- По меткам
- По UUID
- По меткам GPT
- По UUID GPT
- Советы и рекомендации
- Автоматическое монтирование с systemd
- Пробелы в значениях полей
- Внешние устройства
- Параметры atime
- Запись в FAT32 с правами обычного пользователя
- Перемонтирование корневого раздела
- fstab
- Contents
- Usage
- Identifying filesystems
- Kernel name descriptors
- File system labels
- File system UUIDs
- GPT partition labels
- GPT partition UUIDs
- Tips and tricks
- Automount with systemd
- Local partition
- Remote filesystem
- Encrypted filesystem
- Automatic unmount
- External devices
- Filepath spaces
- atime options
- Remounting the root partition
- GPT partition automounting
fstab (Русский)
Файл /etc/fstab используется для настройки параметров монтирования различных блочных устройств, разделов на диске и удаленных файловых систем.
Он состоит из набора определений файловых систем. Каждая файловая система занимает свою строку. Эти определения динамически преобразуются в юниты монтирования systemd во время загрузки системы. При этом производится автоматическое разрешение зависимостей: службы, которые зависят от конкретной файловой системы, запускаются только после ее монтирования, а удаленные файловые системы вроде NFS или Samba, в свою очередь, монтируются только после того, как будет установлено сетевое подключение. Таким образом, и локальные, и удаленные файловые системы, указанные в /etc/fstab , будут правильно смонтированы без дополнительной настройки. По умолчанию, при монтировании также производится запуск проверки файловой системы программой fsck. За подробной информацией обратитесь к man-странице systemd.mount(5) .
При монтировании с помощью mount fstab используется для определения точки монтирования, если указано только устройство, и наоборот. При этом параметры монтирования также берутся из fstab.
Contents
Пример файла
Простой пример /etc/fstab , в котором файловые системы заданы по именам файлов устройств:
Формат строки
Каждая строка в файле /etc/fstab содержит следующие поля, разделенные пробелами или символами табуляции:
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/ .
По меткам
Запустите lsblk -f , чтобы отобразить список разделов. Укажите метки из столбца LABEL с префиксом LABEL= :
По UUID
Запустите lsblk -f , чтобы отобразить список разделов. Укажите идентификаторы из столбца UUID с префиксом UUID= :
По меткам GPT
Запустите blkid чтобы отобразить список разделов. Укажите значения PARTLABEL без кавычек:
По UUID GPT
Запустите blkid чтобы отобразить список разделов. Укажите значения PARTUUID без кавычек:
Советы и рекомендации
Автоматическое монтирование с systemd
Если у вас большой раздел /home , вы можете разрешить службам, которые не обращаются к /home , запускаться в то время, как /home проверяется программой fsck. Для этого добавьте следующие параметры монтирования в запись /etc/fstab для точки монтирования /home :
При этом процедура проверки и монтирования /home будет запущена только при первой попытке доступа, и ядро будет держать в ожидании все создаваемые потоки ввода-вывода в /home , пока раздел не будет смонтирован.
Автоматическое монтирование может аналогичным образом использоваться и для монтирования удаленных файловых систем. В дополнение, вы можете использовать параметр x-systemd.device-timeout=# для указания времени ожидания удаленной файловой системы при перебоях в соединении.
Если у вас имеются зашифрованные файловые системы, вы можете также добавить параметр noauto в соответствующие записи в /etc/crypttab . Тогда systemd не будет пытаться открыть зашифрованное устройство во время загрузки системы, а сделает это при первой попытке доступа к файловой системе на этом устройстве, применив указанный файл ключа и затем автоматически смонтировав ФС. Это может дать выигрыш в несколько секунд при загрузке системы, например, если у вас зашифрованный RAID массив: systemd не придется ожидать готовности устройства. Пример записи:
Пробелы в значениях полей
Так как пробельные символы используются в fstab для разделения полей, их нельзя напрямую использовать в значениях полей. Любые пробелы в полях (например, значения PARTLABEL , LABEL или точки монтирования) должны быть заменены специальными управляющими последовательностями, которые состоят из обратной косой черты ( \ ) и трех восьмеричных цифр (например, для пробела это \040 ):
Внешние устройства
Если устройство не подключено постоянно, и может отсутствовать во время загрузки системы, монтируйте его с параметром nofail . Это предотвратит появление ошибок при загрузке.
Параметры atime
- Если файловая система смонтирована с параметром atime , то, когда происходит обращение к файлу, в его поле atime записывается текущее время (иными словами, время доступа). Это может быть полезно, когда Linux используется на сервере; на персональном компьютере эта функция обычно не нужна. Недостаток этой функции в том, что даже при чтении файла из кэша (в оперативной памяти) все равно производится медленная операция записи на диск. Использование параметров монтирования noatime , nodiratime или relatime может улучшить производительность доступа к данным, а также уменьшить износ твердотельных (SSD) накопителей.
- Параметр noatime полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, Mutt полагается на его значение. Для mutt вы можете использовать параметр relatime .
- Параметр nodiratime отключает обновление времени доступа только для каталогов; для остальных файлов время atime будет обновляться всегда.
- Параметр relatime включает обновление поля только когда содержимое файла перезаписывается (в отличие от noatime , при котором поле atime вообще не обновляется, и может становиться раньше времени изменения mtime). Использование этого параметра наиболее предпочтительно, так как программы вроде Mutt будут работать корректно, и при этом вы все равно получите достаточное улучшение производительности: при операциях чтения (как правило, гораздо более частых, чем записи) не будет производиться запись времени на диск. По умолчанию файловые системы монтируются с этим параметром.
Запись в FAT32 с правами обычного пользователя
Чтобы иметь возможность записи в разделе FAT32, вам следует указать правильные параметры монтирования в вашем файле /etc/fstab .
Флаг user означает, что любой пользователь сможет монтировать и размонтировать раздел /dev/sdX . Параметр rw дает доступ на чтение-запись; umask убирает указанные права — например, umask=111 удаляет права на выполнение. Проблема в том, что права на «выполнение» также удаляются у каталогов, поэтому мы должны исправить это при помощи параметра dmask=000 (подробности смотрите на странице Umask).
Без этих параметров все файлы будут восприниматься исполняемыми. Вы можете использовать параметр showexec вместо umask и dmask, при которой исполняемыми будут файлы, имеющие расширения исполняемых файлов Windows (.com, .exe, .bat).
Например, если ваш раздел FAT32 на /dev/sda9 , и вы хотите смонтировать его в каталог /mnt/fat32 , то вам следует использовать запись следующего вида:
Перемонтирование корневого раздела
Если по какой-то причине корневой раздел был неправильно смонтирован только на чтение, вы можете перемонтировать его с доступом на чтение-запись без перезагрузки, набрав
Источник
fstab
The fstab(5) file can be used to define how disk partitions, various other block devices, or remote filesystems should be mounted into the filesystem.
Each filesystem is described in a separate line. These definitions will be converted into systemd mount units dynamically at boot, and when the configuration of the system manager is reloaded. The default setup will automatically fsck and mount filesystems before starting services that need them to be mounted. For example, systemd automatically makes sure that remote filesystem mounts like NFS or Samba are only started after the network has been set up. Therefore, local and remote filesystem mounts specified in /etc/fstab should work out-of-the-box. See systemd.mount(5) for details.
The mount command will use fstab, if just one of either directory or device is given, to fill in the value for the other parameter. When doing so, mount options which are listed in fstab will also be used.
Contents
Usage
A simple /etc/fstab , using file system UUIDs:
- describes the block special device or remote filesystem to be mounted; see #Identifying filesystems.
- describes the mount directory.
- the file system type.
- the associated mount options; see mount(8) § FILESYSTEM-INDEPENDENT_MOUNT_OPTIONS and ext4(5) § MOUNT_OPTIONS .
- is checked by the dump(8) utility. This field is usually set to 0 , which disables the check.
- sets the order for filesystem checks at boot time; see fsck(8) . For the root device it should be 1 . For other partitions it should be 2 , or 0 to disable checking.
All specified devices within /etc/fstab will be automatically mounted on startup and when the -a flag is used with mount(8) unless the noauto option is specified. Devices that are listed and not present will result in an error unless the nofail option is used.
Identifying filesystems
There are different ways to identify filesystems that will be mounted in /etc/fstab : kernel name descriptor, file system label and UUID, and GPT partition label and UUID for GPT disks. UUID or PARTUUID must be privileged over kernel name descriptors and labels. See Persistent block device naming for more explanations. It is recommended to read that article first before continuing with this article.
In this section, we will describe how to mount filesystems using all the mount methods available via examples. The output of the commands lsblk -f and blkid used in the following examples are available in the article Persistent block device naming.
To use kernel name descriptors, use /dev/sdxy in the first column.
Kernel name descriptors
Run lsblk -f to list the partitions and prefix the values in the NAME column with /dev/ .
File system labels
Run lsblk -f to list the partitions, and prefix the values in the LABEL column with LABEL= or alternatively run blkid and use the LABEL values without the quotes:
File system UUIDs
Run lsblk -f to list the partitions, and prefix the values in the UUID column with UUID= or alternatively run blkid and use the UUID values without the quotes::
GPT partition labels
Run blkid to list the partitions, and use the PARTLABEL values without the quotes:
GPT partition UUIDs
Run blkid to list the partitions, and use the PARTUUID values without the quotes:
Tips and tricks
Automount with systemd
See systemd.mount(5) for all systemd mount options.
Local partition
In case of a large partition, it may be more efficient to allow services that do not depend on it to start while it is checked by fsck. This can be achieved by adding the following options to the /etc/fstab entry of the partition:
This will fsck and mount the partition only when it is first accessed, and the kernel will buffer all file access to it until it is ready. This method can be relevant if one has, for example, a significantly large /home partition.
Remote filesystem
The same applies to remote filesystem mounts. If you want them to be mounted only upon access, you will need to use the noauto,x-systemd.automount parameters. In addition, you can use the x-systemd.mount-timeout= option to specify how long systemd should wait for the mount command to finish. Also, the _netdev option ensures systemd understands that the mount is network dependent and order it after the network is online.
Encrypted filesystem
If you have encrypted filesystems with keyfiles, you can also add the noauto parameter to the corresponding entries in /etc/crypttab . systemd will then not open the encrypted device on boot, but instead wait until it is actually accessed and then automatically open it with the specified keyfile before mounting it. This might save a few seconds on boot if you are using an encrypted RAID device for example, because systemd does not have to wait for the device to become available. For example:
Automatic unmount
You may also specify an idle timeout for a mount with the x-systemd.idle-timeout flag. For example:
This will make systemd unmount the mount after it has been idle for 1 minute.
External devices
External devices that are to be mounted when present but ignored if absent may require the nofail option. This prevents errors being reported at boot. For example:
The nofail option is best combined with the x-systemd.device-timeout option. This is because the default device timeout is 90 seconds, so a disconnected external device with only nofail will make your boot take 90 seconds longer, unless you reconfigure the timeout as shown. Make sure not to set the timeout to 0, as this translates to infinite timeout.
Filepath spaces
Since spaces are used in fstab to delimit fields, if any field (PARTLABEL, LABEL or the mount point) contains spaces, these spaces must be replaced by escape characters \ followed by the 3 digit octal code 040 :
atime options
Below atime options can impact drive performance.
- The strictatime option updates the access time of the files every time they are accessed. This is more purposeful when Linux is used for servers; it does not have much value for desktop use. The drawback about the strictatime option is that even reading a file from the page cache (reading from memory instead of the drive) will still result in a write.
- The noatime option fully disables writing file access times to the drive every time you read a file. This works well for almost all applications, except for those that need to know if a file has been read since the last time it was modified. The write time information to a file will continue to be updated anytime the file is written to with this option enabled.
- The nodiratime option disables the writing of file access times only for directories while other files still get access times written.
When using Mutt or other applications that need to know if a file has been read since the last time it was modified, the noatime option should not be used; using the relatime option is acceptable and still provides a performance improvement.
Since kernel 4.0 there is another related option:
- lazytime reduces writes to disk by maintaining changes to inode timestamps (access, modification and creation times) only in memory. The on-disk timestamps are updated only when either (1) the file inode needs to be updated for some change unrelated to file timestamps, (2) a sync to disk occurs, (3) an undeleted inode is evicted from memory or (4) if more than 24 hours passed since the the last time the in-memory copy was written to disk.
Note that the lazytime option works in combination with the aforementioned *atime options, not as an alternative. That is relatime by default, but can be even strictatime with the same or less cost of disk writes as the plain relatime option.
Remounting the root partition
If for some reason the root partition has been improperly mounted read only, remount the root partition with read-write access with the following command:
GPT partition automounting
When using UEFI/GPT, it is possible to omit certain partitions from /etc/fstab by partitioning according to the Discoverable Partitions Specification and have systemd-gpt-auto-generator(8) mount the partitions. See systemd#GPT partition automounting.
Источник