воскресенье, 25 мая 2014 г.

auto mount partitions in debian

fstab (/etc/fstab) (или file systems table) — один из конфигурационных файлов в Debian, содержащий инструкции по монтированию блочных устройств, NFS-ресурсов и псевдо-файловых систем в пространство файловых имен и как областей подкачки страниц.

Пример

# <file system>        <dir>         <type>    <options>             <dump> <pass>
/dev/sda1              /             ext4      defaults              1      1
/dev/hdxx              /usr          ext4      defaults              1      1
/dev/sda5              swap          swap      defaults              0      0
Не стоит добавлять в fstab /proc и /sys если не нужны какие-то специальные опции. При загрузки системы они всегда будут смонтированы.

Определения полей

/etc/fstab содержит следующие поля разделённые пробелами или tab:
<file system>   <dir>   <type>  <options>       <dump>  <pass>
  • <file systems> - название накопителя (например: /dev/sda1).
  • <dir> - точка монтирования, куда монтировать <file system>.
  • <type> - тип файловой системы монтируемого устройства или раздела. Поддерживает много различных файловых систем, например: ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap и auto. Тип 'auto' позволяет команде монтирования определить тип используемой файловой системы, полезно для съёмных устройств, таких как CD и DVD.
  • <options> - специальные опции для файловых систем. Некоторые опции относятся только к определённой файловой системе, наиболее распространённые варианты:
    • auto - файловая системы будет смонтирована автоматически при загрузке или после выполнения команды 'mount -a'.
    • noauto - файловая система может быть смонтирована только вручную.
    • exec - разрешить исполнять бинарных файлов с этого раздела (по умолчанию).
    • noexec - запретить исполнять бинарные файлы с этой файловой системы.
    • ro - монтировать файловую систему только для чтения.
    • rw - монтировать файловую систему для чтения и записи.
    • sync - операции ввода/вывода должны выполняться синхронно.
    • async - операции ввода/вывода должны выполняться асинхронно.
    • flush - опция специфичная для FAT. To flush data more often, thus making copy dialogs or progress bars to stays up until things are on the disk.
    • user - разрешить любому пользователю монтировать файловую систему (с опциями noexec,nosuid,nodev если не указано иное).
    • nouser - только root может монтировать файловую систему (по умолчанию).
    • defaults - использовать настройки по умолчанию (эквивалентно rw,suid,dev,exec,auto,nouser,async).
    • suid - разрешать операции с битами suid и sgid. Восновном используемые, чтобы позволить пользователям выполнять бинарные файлы со временно повышенными привилегиями для выполнения определённой задачи.
    • nosuid - запретить операции с битами suid и sgid.
    • noatime - не обновлять информацию о времени доступа к файловой системе. Может повысить производительность.
    • nodiratime - не обновлять информацию о времени доступа к каталогам файловой системе. Может повысить производительность.
    • relatime - обновлять информацию о времени доступа по сравнению с временем последнего изменения. Время доступа обновляется только если предыдущее было больше текущего времени изменения (аналог noatime, только не создаёт проблемы для приложений которым нужно знать, если файл был прочитан с момента последнего изменения). Может повысить производительность.
  • <dump> - используется утилитой dump для того чтобы определить, когда делать резервную копию. После установки, dump проверяет эту запись и использует значение, чтобы решить, подключать ли файловую систему. Возможные значения 0 или 1. Если 0, dump игнорирует файловую систему, если 1, dump сделает резервную копию. У большинства пользователей dump не установлен, поэтому в поле <dump> следует задать 0.
  • <pass> fsck читает значение <pass> и определяет, в каком порядке должны быть проверены файловые системы. Возможные значения 0, 1, или 2. Файловая система root должна иметь наивысший приоритет, 1, все остальные файловые системы которые будут проверятся должны получить 2. Файловые систему с значением 0 в <pass> не будут проверяться утилитой fsck.

Определение файловых систем

Файловые систему в /etc/fstab могут быть определены тремя различными способами: по имени данному ядром, по UUID или по labels. Преимущество использования UUID или labels в том, что они не зависят от порядка дисков, полезно когда изменяется порядок накопителей в BIOS (это может быть сделано пользователем или некоторые BIOS могут иногда изменять порядок устройств), или при переключении кабеля устройства.

Имена данные ядром

Узнать имена данные ядром можно используя fdisk:
# fdisk -l
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       19458   156290016+  83  Linux
Пример /etc/fstab с использованием имён данных ядром:
# <file system>        <dir>         <type>    <options>             <dump> <pass>
/dev/sda1              /             ext4      defaults              1      1

UUID

UUID генерируется утилитами mkfs.* при создании файловой системы. blkid показывает UUIDs устройств и разделов:
# blkid
/dev/sda1: UUID="6a60524d-061d-454a-bfd1-38989910eccd" TYPE="ext4"
Пример /etc/fstab с использованием UUID-идентификаторов:
# <file system>        <dir>         <type>    <options>             <dump> <pass>
UUID=6a60524d-061d-454a-bfd1-38989910eccd              /             ext4      defaults              1      1

Label

В первую очередь нужно задать label для устройства или раздела, для этого можно использовать приложения такие как gparted или e2label для разделов ext2, ext3 и ext4. Имейте ввиду, что не все файловые системы поддерживают label (например FAT). Каждый lable должен быть уникальным, (чтобы избежать конфликтов) и содержать не более 16 символов.
Устройство или раздел не должны быть смонтированы перед получением label. Initially you will need to boot from a Live(CD/DVD/USB) before you can label with a gparted-like application or for ext partitions you can use e2label:
# e2label /dev/<раздел-диска> Debian
Пример /etc/fstab с использованием label:


# <file system>        <dir>         <type>    <options>             <dump> <pass>
LABEL=Debian           /             ext4      defaults              1      1