Это старая версия документа.


Файл fstab - это текстовый файл, который содержит информацию о различных файловых системах и устройствах хранения информации в вашем компьютере. Это всего лишь один файл, определяющий, как диск и/или раздел будут использоваться и как будут встроены в остальную систему. Полный путь к файлу - /etc/fstab. Этот файл можно открыть в любом текстовом редакторе, но редактировать его возможно только от имени суперпользователя, т.к. файл является важной, неотъемлемой частью системы, без него система не загрузится.

  • Открыть файл fstab для редактирования, например в текстовом редакторе gedit, вы можете набрав команду в терминале:
sudo gedit /etc/fstab
  • Предварительно рекомендуется создать резервную копию:
sudo cp /etc/fstab /etc/fstab_backup

Пример файла fstab

  • Пример файла fstab c примонтированными Windows-дисками sda3 (С:) и sda4 (D:):
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=7211313d-8b5e-4b96-be63-5dbbeb97f590 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda2 during installation
UUID=8ef72438-830b-485f-8de5-b0f6242eff91 none            swap    sw              0       0
# Windows disc (FAT32) C:\
/dev/sda3 /media/D642D91542D8FAE7 vfat shortname=mixed,codepage=850,umask=002,uid=1000,gid=100,noauto,user 0 0
# Windows disc (NTFS) D:\
/dev/sda4 /media/BA1AF3B41AF36C2F ntfs-3g rw,nosuid,nodev,allow_other,default_permissions,blksize=4096 0 0

Строки файла содержат следующие поля:

  • Что монтируем — некоторое блочное устройство, которое должно быть примонтировано
  • Куда монтируем — точка монтирования
  • Тип файловой системы монтируемого раздела
  • Опции для файловой системы
  • Индикатор необходимости делать резервную копию (как правило не используется и равно 0)
  • Порядок проверки раздела (0- не проверять, 1 - устанавливается для корня, 2 - для остальных разделов).
Поля в файле fstab отделяются друг от друга пробелами. Строки, начинающиеся с символа #, являются комментариями. Пустые строки игнорируются. В конце файла требуется одна пустая строка.

Блочное устройство

То, что нужно смонтировать. Это может быть файл-образ, раздел диска или диск целиком. С файлами-образами всё вполне очевидно — нужно указать путь к файлу. С дисками и их разделами интереснее. Они числятся в системе как, например, /dev/sda или /dev/hdc1, но обратиться к ним можно и по другим адресам, вот они:

ls -Rhal /dev/disk/by-*

Эти адреса являются ссылками на те же /dev/sd*. Монтировать корневой раздел и другие разделы встроенного диска стоит по UUID (это позволит правильно монтировать разделы даже если они поменяют свой порядок на диске. Например, добавление раздела перед /dev/sda6 может превратить его в /dev/sda7, но UUID его не изменится. Для флешки (если вы хотите прописать ее монтирование в fstab, а не пользоваться автоматическим монтированием) удобнее использовать адрес из by-id (название), для iSCSI-тома — by-path (используется сетевой адрес и название «цели»).

Точка монтирования

Каталог, в который монтируется файловая система, к примеру /media/disc. Крайне желательно, чтобы он был пустым. Монтировать в непустой каталог можно только тогда, когда точно знаешь, что делаешь.

Примеры монтирования разделов

Примеры монтирования разделов рассмотрены в соответствующей статье

Обозначения файловых систем

  • Обозначения файловых систем (наиболее часто используемые):
Обозначение в /etc/fstab Тип файловой системы
vfat Microsoft FAT16, FAT32
ntfs-3g Microsoft NTFS
ext2 Ext2
ext3 Ext3
ext4 Ext4
xfs XFS
jfs JFS
btrfs Btrfs (B-tree file system)
swap Раздел подкачки
iso9660 CD/DVD диски
udf UDF, съёмные носители
auto Floppy дисковод
hfsplus Apple HFS

Опции файловых систем

(указываются через запятую, без пробелов) :

ОпцииОписание
Общие Могут применяться к любой файловой системе (но не все файловые системы на самом деле поддерживают их) - например, опция sync сегодня имеет силу только для ext2, ext3, fat, vfat и ufs
sync / asyncВсе операции ввода / вывода файловой системы должны выполняться синхронно/асинхронно.
atimeПроизводить запись времени последнего доступа к файлу. Значение по умолчанию.
noatimeНе обновлять время доступа к файлу (например, для быстрого доступа к новостным потокам, для ускорения серверов новостей).
relatimeОбновлять время доступа только при изменении файла или изменении времени доступа. (В отличие от noatime, необходимая опция для нормальной работы, например, почтовых клиентов или других приложений, которым необходимо точное время последнего изменения файлов)
norelatimeНе включать функцию relatime (например, для систем, в которых эта функция включена по умолчанию, для более подробной информации см. параметры монтирования в /proc/mounts).
strictatimeОбновление времени доступа к структуре данных при изменении файлов. Отключает noatime и relatime.
nostrictatimeОбновлять время доступа к структуре данных, в соответствии с настройками ядра по умолчанию.
auto / noauto При auto устройство будет устанавливаться автоматически при загрузке, или по команде mount. auto является вариантом по умолчанию. Если вы не хотите, чтобы устройство устанавливалось автоматически, используйте параметр noauto.
context=
fscontext=
defcontext=
rootcontext=
Эти опции полезны при монтировании файловой систем, которые не поддерживают дополнительные атрибуты, такие как дискеты или жесткие диски отформатирован в VFAT, или файловые системы, которые обычно не работает под SELinux (например ext3 диск отформатированный на не-SELinux рабочей станции). Вы можете также использовать *context= для файловых систем которым вы не доверяете, например на дискетах или флешках. Более подробно о контексте можно узнать прочитав о SELinux.
defaultsИспользовать настройки по умолчанию. Эквивалентно: rw,suid,dev,exec,auto,nouser,async.
dev / nodevИнтерпретировать/не интерпретировать блок специальных устройств на файловой системе.
diratime / nodiratimeОбновлять/не обновлять время доступа к каталогу структуры данных. По умолчанию установлено diratime
dirsyncИзменения каталогов в файловой системе выполняются синхронно. Это относится к следующим системным командам: creat, link, unlink, symlink, mkdir, rmdir, mknod и rename.
exec / noexecexec позволяет выполнять двоичные файлы, которые находятся на этом раздел, в то время как noexec не позволяет этого делать. noexec может быть полезно для раздела, который не содержит бинарные файлы например /var, или содержит бинарные файлы которые вы не хотите выполнять на вашей системе, или которые не могут быть выполнены в вашей системе. Последнее может быть в случае Windows раздела.
groupРазрешает обычным (т.е. не root) пользователям монтировать файловую систему, если одна из его групп совпадает с группой устройства. Эта опция подразумевает наличие опций nosuid и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как group,dev,suid).
encryptionОпределяет используемый алгоритм шифрования. Используется в сочетании с опцией loop.
keybitsОпределяет размер ключа для используемого алгоритма шифрования. Используется в сочетании с loop и encryption.
nofailВ случае отсутствия устройства не сообщать об ошибке.
iversionНомер версии структуры данных увеличивается каждый раз, когда структура данных изменяется.
noiversionНомер версии структуры данных не увеличивается при изменении структуры данных.
mandРазрешает принудительное блокирование файловой системы.
nomandНе разрешает принудительное блокирование файловой системы.
_netdevИспользуется для предотвращения попыток смонтировать файловые системы, подключённые к сети.
suid / nosuidРазрешает использование битовых идентификаторов пользователей или групп / Запрещает использование битовых идентификаторов пользователей или групп. (Это достаточно небезопасно, особенно, если установлен suidperl).
ownerРазрешает обычному (т.е. не root) пользователю монтировать файловую систему, если он является владельцем устройства. Эта опция подразумевает параметры nosuid и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как owner, suid и dev).
roМонтировать только для чтения.
rwМонтирование файловой системы для чтения и записи.
user / nouseruser - разрешает монтирование от лица обычного пользователя, по умолчанию это имеет право сделать только root. nouser — соответсвенно запрещает (является параметром по умолчанию).
usersРазрешает монтирование от лица любого пользователя. Эта опция подразумевает параметры nosuid, noexec и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как users, exec, owner, suid и dev).

adfs (ОС Microsoft Server)

Опции для файловой системы adfs (ОС Microsoft Server)
uid=
gid=
Идентификаторы пользователя и группы. По умолчанию uid=gid=0.
ownmask=
othmask=
Устанавливает маску для установок прав доступа владельца и остальных пользователей, соответственно. (По умолчанию 0700 и 0077, соответственно).

affs (ОС AmigaFFS)

Опции для файловой системы affs (ОС AmigaFFS)
uid=
gid=
Идентификаторы пользователя и группы. По умолчанию uid=gid=0, но допускаются uid или gid без определенного значения, в таком случае принимаются uid и gid текущего процесса).
setuid=
setgid=
Устанавливают пользователя и группу для всех файлов.
setuid=
setgid=
Устанавливают пользователя и группу для всех файлов.
mode=
setgid=
Устанавливает значение кода доступа как значение mode и 0777 независимо от первоначального значения кода доступа. Дополнительно ищет коды доступа в папках, доступных для чтения. Значение указывается в восьмеричном виде.
protectЗапрещает любые изменения защищённых битов файловой системы
fmask=xxxxУстанавливает маску для установок прав доступа групп к файлам. Значение указывается в восьмеричном виде.
dmask=xxxxУстанавливает маску (образец) для установок прав доступа групп к директориям (папкам). Значение указывается в восьмеричном виде.
umask=xxxУстанавливает маску (образец) для установок прав доступа групп к файлам и директориям (папкам). Значение указывается в восьмеричном виде.
uid=xxxxИдентификатор пользователя
iocharset=utf8Добавляет поддержку кодировок в названиях файлов и директорий. Применяется при необходимости.
errors=remount-ro При ошибке перемонтировать с параметром только для чтения (ro).
data=writeback
data=ordered
data=journal
Указываем тип журналирования:
writeback - журналируются только метаданные, максимальная производительность. Возможно повреждение данных.
ordered - тоже что и writeback, но без повреждения данных. Медленнее.
journal - полное журналирование файловой системы. Самый медленный. Максимальный уровень сохранности информации при сбое.
quietсистема не показывает ошибки когда мы попытаемся изменить параметры настройки файла, не поддерживает VAT
showexecВсе исполняемые файлы Windows (.exe/.com и тд.) получат возможность запуска ( тоже что и chmod 770 ).

NTFS

Опции для файловой системы Microsoft NTFS
nls=utf8Включение поддержки utf-8. Поддержка «нестандартных» символов (кирилицы) в файловой системе.
codepage=866Включаем поддержку кириллицы в названия файлов папок для MS-DOS/fat32 разделов. Подробнее.

FAT 32

Опции для файловой системы Microsoft FAT
utf8Включение поддержки utf-8. Поддержка «нестандартных» символов (кирилицы) в файловой системе.
codepage=866Включаем поддержку кириллицы в названия файлов папок для MS-DOS/fat32 разделов. Подробнее.

btrfs

Все опции ради совместимости и отсутствия проблем применяются при вынесеном на отдельный раздел /boot и ядром 3.0+

С ubuntu 12.10 встроенный grub умеет загружать систему с диска сжатым lzo, можно не выносить boot или использовать zlib на более старых версиях grub

Опции для файловой системы btrfs
autodefragДефрагментация на «лету», не применять для SSD
noacl Отключить контроль доступа к файлам (права)
compression
compress=zlibВключение прозрачного сжатия с алгоритмом gzip (медленнее lzo, но лучше сжимает)
compress=lzoВключает алгоритм прозрачного сжатия lzo (быстрее gzip, немного хуже сжимает), граб не умеет грузится с lzo. Btrfs LZO Compression Performance.
compress=noБез компрессии с версии ядра 3.6
compress-forceПрименяется вместо compress, опция force позволяет выполнять компрессию файлов, которые обычно имеют низкий коэффициент сжатия (таких, как сжатые аудио или видео форматы).
cache
inode_cache (>3,0) Включить кэширование inode. Эта опция может замедлить работу системы при первом запуске.
space_cacheКэширование данных о свободных блоках, чтобы не искать их перед записью
clear_cache(>2.6.37) Очищает весь кеш свободного места, после монтирования. Это безопасная опция, но вызывает пересоздание кеша.
nospace_cache(>3.2) выключает space_cache
subvol=name_subvolumeМонтирует корень указанного подраздела name_subvolume, где name_subvolume путь к нему в корне.
skip_balance(>3.3)Пропускает автоматическую балансировку после монтирования или неправильного выключения.
nodatasumНе высчитывать хэш-сумму, для новых файлов. Некоторый мусор и ошибки могут быть не замечены, но позволяет ускорить работу с FS. На большинстве современных CPU не даст ощутимого прироста к производительности.
SSD
ssdВключает некоторые оптимизации для SSD в Btrfs. Минимизируется количество записей, отключается последовательная запись файлов. Эта опция включается автоматически, если вращение диска = 0. Не влечет за собой включения параметров TRIM/discard.
ssd_spreadМонтирование с -o ssd_spread вынуждает драйвер использовать для записи преимущественно не занятые области жёсткого диска, что специально вызывает сильную фрагментацию. Может значительно ускорить недорогие SSD.
recovery and debug
recovery(>3.2)Включает автовосстановление после монтирования, на данный момент сканирует старые списки корней и деревьев, которые можно прочесть. Информация о корнях деревьев сохраняется с версии ядра > 3.2, старые ядра не смогут использовать режим восстановления. Практика показала что оно работает, но нужно иметь снимки файловой системы и оно просто вытаскивает списки корней и деревьев из снимков если таковые имеются
degradedИспользуйте это, если у вас есть несколько устройств в объеме Btrfs и одно из них не монтируется. Это позволит вам по-прежнему монтировать файловую систему, даже если неисправное устройство выдаёт ошибки.
enospc_debugИспользуйте, если столкнулись с ошибкой «Не хватает места»
Опции монтирования кеша действительно ускоряют работу файловой системы, но она просто создаёт по большому счёту отдельный чанк с метаданными вместо того, чтобы каждый раз перемещаться по дереву для поиска файла/папки и т.д. Это значит что будет иметь место точечная перезапись, что при использовании ssd зло (на ssd она не даёт хоть сколько то ощутимый прирост к скорости, т.к. случайное время доступа очень маленькое)

nefelim4ag 2012/10/19 13:25 Больше параметров тут

Testing Out The Btrfs Mount Options On Linux 3.2

Ссылки