В файле /etc/fstab перечислены все основные точки монтирования, файловые системы и их опции по умолчанию (обычно defaults). Точки монтирования заносятся в файл построчно. Формат строки следующий:
    
<file_system> <mount_point> <type> <options> <dump> <pass>
Поле <file_system> представляет собой диск, раздел диска или файл как они представлены в системе. Т. е. это может быть путь к файлу (например, iso-образу) или файлу устройства (например: /dev/sda1 - первый раздел на первом SATA диске) от корня системы или идентификация устройсва по ID (файл в каталоге /dev/disk/by-id), по метке файловой системы (файл в каталоге /dev/disk/by-label), по UUID (файл в каталоге /dev/disk/by-uuid). Выбор - дело вкуса. Мне нравится вариант с UUID - это уникальные метки разделов, которые не изменяются даже когда меняется номер раздела. Метку и UUID раздела можно узнать с помощью команды blkid:
    
# blkid /dev/sda6
/dev/sda6: LABEL="CLD-12.0.3" UUID="ced7f6cb-7f14-40b6-b7ad-e544ce054dfc" TYPE="ext4"
Помимо файлов устройств аргументом поля <file_system> могут быть виртуальные файловые системы - shm, proc, tmpfs.
Поле <mount_point> представляет собой папку в которую монтируется устройство из поля <file_system>. Путь к папке укажывается абсолютный, начиная от корня.
Поле <type> - это тип файловой системы. Ядро Linux поддерживает множество файловых систем:
Поле <options> представляет набор опций монтирования. Опции нужно вводить через запятую без пробелов. Все опции я описывать не буду, а перечислю только те, которые влияют на скорость работы файловых систем.
Примеры опций для некоторых ФС:
ReiserFS: noacl,user_xattr,noatime,nodiratime,notail,barrier=flush
Ext3: noacl,user_xattr,noatime,nodiratime,barrier=0
XFS: noatime,nodiratime,logbufs=8,logbsize=32k,biosize=16,allocsize=512m,barrier
    
Расшифровка значаений опций:
Поле <dump> указывает нужно ли делать резервную копию. Считается устаревшим и, как правило, равно 0.
Поле <pass> - это порядок, в котором файловая система должна быть проверена. Значение:
0 - не проверять;
1 - проверяется, устанавливается для корня;
2 - проверяется, для остальных разделов.
Для примера вот содержимое моего файла fstab:
UUID=ced7f6cb-7f14-40b6-b7ad-e544ce054dfc / ext4 noatime 0 1
UUID=11ba9b21-4a1f-4329-a2f4-07299dd0af5f /boot ext2 noatime 0 0
UUID=748569b2-68a0-41f1-9d8b-84ae26529d89 /home ext4 noatime,nodiratime 0 0
UUID=5f1cbcf1-10f9-47a9-a4d5-3d4498eb452f none swap sw 0 0
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
tmpfs /tmp tmpfs defaults,nodev,nosuid,mode=1777 0 0
tmpfs /var/lock tmpfs defaults,nodev,nosuid,noexec,mode=1777,size=10m 0 0
tmpfs /var/run tmpfs defaults,nodev,nosuid,noexec,mode=0755,size=10m 0 0
tmpfs /var/calculate/tmp/portage tmpfs noatime,mode=1777,nr_inodes=30M 0 0
Первые строки вполне понятны. В первой строке описывается монтирование корневой ФС, во второй строке - монтирование каталока /boot, далее /home и swap раздел. Далее идет монтирование proc и shm. Первое - виртальная ФС ядра, второе - нужно для многих программ. Остальные строки помещают временные данные в tmpfs - файловую систему для быстрого и ненадежного хранения данных (расположена в виртуальной памяти(RAM+swap). При монтировании tmpfs ограничивается 50% RAM, поэтому при большом количестве временных данных (например, при интенсивной сборке огромных программ или нескольких одновременно) верхний предел может быть увеличен с помощью опции size=n, где n - необходимый размер. Или же можно уменьшить максимально допустимое значение, как это сделано для директорий /var/lock и /var/run. Опция nr_inodes=30M увеличивает область для идентификаторов файлов - полезна когда создается очень много файлов (чтобы избежать ситуации, когда место для данных еще есть, а файл создать нельзя). После перезагрузки или перемонтирования данные в tmpfs стираются.
<file_system> <mount_point> <type> <options> <dump> <pass>
Поле <file_system> представляет собой диск, раздел диска или файл как они представлены в системе. Т. е. это может быть путь к файлу (например, iso-образу) или файлу устройства (например: /dev/sda1 - первый раздел на первом SATA диске) от корня системы или идентификация устройсва по ID (файл в каталоге /dev/disk/by-id), по метке файловой системы (файл в каталоге /dev/disk/by-label), по UUID (файл в каталоге /dev/disk/by-uuid). Выбор - дело вкуса. Мне нравится вариант с UUID - это уникальные метки разделов, которые не изменяются даже когда меняется номер раздела. Метку и UUID раздела можно узнать с помощью команды blkid:
# blkid /dev/sda6
/dev/sda6: LABEL="CLD-12.0.3" UUID="ced7f6cb-7f14-40b6-b7ad-e544ce054dfc" TYPE="ext4"
Помимо файлов устройств аргументом поля <file_system> могут быть виртуальные файловые системы - shm, proc, tmpfs.
Поле <mount_point> представляет собой папку в которую монтируется устройство из поля <file_system>. Путь к папке укажывается абсолютный, начиная от корня.
Поле <type> - это тип файловой системы. Ядро Linux поддерживает множество файловых систем:
- Ext2 - первая родная для Linux файловая система, не поддерживает журналирование, довольно хорошее быстродействие;
 - Ext3 - это Ext2 с журналированием, из-за чего страдает быстродействие;
 - Ext4 - эволюционное развитие Ext3, улучшены производительность и стабильность, добавлены опции;
 - ReiserFS - хорошая производительность, особенно с маленькими файлами;
 - JFS - хорошая производительность, низкое потребление ресурсов процессора;
 - XFS - хорошо работает с большими файлами и плохо - с маленькими;
 - Btrfs - отличная производительность, но все еще в разработке (хоть и включена в ядро), когда станет стабильной - стоит попробовать;
 - vfat - Microsoft FAT16,FAT32, старые, нежурналируемые, но все еще широко распространены;
 - ntfs-3g - Microsoft NTFS, более новая и журналируемая ФС от одной мелко-мягкой компании;
 - swap - специальная ФС для раздела подкачки;
 - iso9660 - файловая система для оптических носителей CD/DVD.
 
Поле <options> представляет набор опций монтирования. Опции нужно вводить через запятую без пробелов. Все опции я описывать не буду, а перечислю только те, которые влияют на скорость работы файловых систем.
Примеры опций для некоторых ФС:
ReiserFS: noacl,user_xattr,noatime,nodiratime,notail,barrier=flush
Ext3: noacl,user_xattr,noatime,nodiratime,barrier=0
XFS: noatime,nodiratime,logbufs=8,logbsize=32k,biosize=16,allocsize=512m,barrier
Расшифровка значаений опций:
- user_xattr - расширенные атрибуты файлов (используются для индексирования)
 - barrier - используя "шлагбаум"(barrier) файловая система запрещает запись блоков данных, пришедших после "шлагбаума", пока все предшествующие ему не будут перенесены на диск; таким образом достигается высокая надежность в ущерб быстродействию; отключая "шлагбаум" (barrier=0, nobarrier), мы ускоряем запись на раздел
 - noatime и nodiratime - отключение записи времени последнего доступа (для файлов/директорий), noatime включает в себя nodirtime
 - allocsize - размер заранее резервируемой области на диске. Высокое значение помогает избежать фрагментации
 - biosize - размер I/O-блоков по умолчанию
 - logbufs - количество встроенных буферов для ведения журнала
 - logbsize - размер буфера
 - notail - не упаковывать хвосты больших файлов — улучшает производительность — увеличивает используемое для хранения место(~5%) — для применения этой опции надо желательно перезаписать находящиеся на ней файлы
 - noexec - запрет запуска программ с этой ФС
 - nosuid - запрет на использование бита suid
 - nodev - запрет на символьные или блочные устройства
 - ro - монтирует фс в режиме "только чтение"
 - rw - монтирует фс в режиме "чтение/запись"
 - noauto - не монтировать устройство автоматически при загрузке
 - defaults - эквивалентно: rw,suid,dev,exec,auto,nouser,async
 - users - разрешает монтирование от лица любого пользователя, подразумевает параметры nosuid, noexec и nodev
 - noacl - отключить контроль доступа к файлам
 
Поле <dump> указывает нужно ли делать резервную копию. Считается устаревшим и, как правило, равно 0.
Поле <pass> - это порядок, в котором файловая система должна быть проверена. Значение:
0 - не проверять;
1 - проверяется, устанавливается для корня;
2 - проверяется, для остальных разделов.
Для примера вот содержимое моего файла fstab:
UUID=ced7f6cb-7f14-40b6-b7ad-e544ce054dfc / ext4 noatime 0 1
UUID=11ba9b21-4a1f-4329-a2f4-07299dd0af5f /boot ext2 noatime 0 0
UUID=748569b2-68a0-41f1-9d8b-84ae26529d89 /home ext4 noatime,nodiratime 0 0
UUID=5f1cbcf1-10f9-47a9-a4d5-3d4498eb452f none swap sw 0 0
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
tmpfs /tmp tmpfs defaults,nodev,nosuid,mode=1777 0 0
tmpfs /var/lock tmpfs defaults,nodev,nosuid,noexec,mode=1777,size=10m 0 0
tmpfs /var/run tmpfs defaults,nodev,nosuid,noexec,mode=0755,size=10m 0 0
tmpfs /var/calculate/tmp/portage tmpfs noatime,mode=1777,nr_inodes=30M 0 0
Первые строки вполне понятны. В первой строке описывается монтирование корневой ФС, во второй строке - монтирование каталока /boot, далее /home и swap раздел. Далее идет монтирование proc и shm. Первое - виртальная ФС ядра, второе - нужно для многих программ. Остальные строки помещают временные данные в tmpfs - файловую систему для быстрого и ненадежного хранения данных (расположена в виртуальной памяти(RAM+swap). При монтировании tmpfs ограничивается 50% RAM, поэтому при большом количестве временных данных (например, при интенсивной сборке огромных программ или нескольких одновременно) верхний предел может быть увеличен с помощью опции size=n, где n - необходимый размер. Или же можно уменьшить максимально допустимое значение, как это сделано для директорий /var/lock и /var/run. Опция nr_inodes=30M увеличивает область для идентификаторов файлов - полезна когда создается очень много файлов (чтобы избежать ситуации, когда место для данных еще есть, а файл создать нельзя). После перезагрузки или перемонтирования данные в tmpfs стираются.