- Автоматическое монтирование дисков и разделов в Linux или что такое fstab?
- Что такое /etc/fstab и зачем он нужен?
- Содержимое /etc/fstab
- Строки конфигурационного файла fstab
- Столбцы конфигурационного файла fstab
- Жесткий диск:
- USB -накопитель:
- CD/DVD-привод:
- Floppy-привод:
- Примеры использования
- Как автоматически подключить раздел NTFS в Linux
- Автоматическое подключение CD/DVD-привода
- Как настроить автоматическое монтирование дисков в Linux
- Монтирование по имени диска
- Монтирование по идентификатору
- Пример монтирования сетевого диска
Автоматическое монтирование дисков и разделов в Linux или что такое fstab?
В результате обычного монтирования командой mount параметры будут сохранены до первой перезагрузки ОС. Подробнее о использовании команды mount можно прочитать статью «Команда mount в Linux или все о монтировании разделов, дисков, образов ISO и SMB ресурсов». После перезагрузки ОС все эти действия необходимо производить заново. Чтобы монтирование происходило в автоматическом режиме, при каждой загрузке операционной системы, нужно отредактировать конфигурационный файл fstab.
В этой статье подробно рассмотрен вопрос автоматического монтирования разделов жесткого диска и других накопителей при старте операционной системы Линукс.
Что такое /etc/fstab и зачем он нужен?
fstab – это текстовый файл, содержащий список устройств хранения информации и параметры монтирования. Различные накопители, которые необходимо автоматически присоединить во время загрузки операционной системы, по порядку перечисляются в файле fstab. Также в этом файле содержатся информация об устройствах, которые не присоединяются автоматически, но при выполнении монтирования устройства стандартной командой mount происходит присоединение устройства с заданными параметрами Это необходимо, к примеру, для CD/DVD-приводов, которые не примонтированы постоянно, а монтируются при наличии диска в приводе.
Содержимое /etc/fstab
Строки конфигурационного файла fstab
fstab состоит из строк. Каждая строка это устройство. Символ решетки (#) в начале строки, как и во всех Unix системах, обозначает комментарий и поэтому значимой строкой не считается.
Здесь будут рассмотрены только строки файла fstab. Более детально каждую строчку рассмотрим ниже.
Для просмотра файла fstab:
Пример, как может выглядеть конфигурационный файл fstab:
# /etc/fstab: static file system information.
#
#
/dev/scd1 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/scd0 /media/cdrom1 udf,iso9660 user,noauto,exec,utf8 0 0
Белым цветом помечен стандартный заголовок файла fstab.
Желтый цвет.
Желтая строка монтирует виртуальную файловую систему procfs к директории /proc. Это стандартная процедура ОС, поэтому лучше ее не трогать.
Синяя строка присоединяет корневой раздел с параметрами notail,relatime (значение параметров будет рассмотрено ниже). Это тоже лучше не трогать.
Зеленый цвет.
Зеленая строка монтирует раздел /home с параметром relatime.
Красный цвет.
Красная монтирует SWAP раздел.
Серые строки задают параметры user,noauto,exec,utf8 для ручного (параметр noauto) монтирования CD/DVD-приводов.
Черный цвет.
Черные строки задают параметры ручного монтирования floppy-диска.
Столбцы конфигурационного файла fstab
Теперь рассмотрим более подробно из чего состоит каждая строка. Все строки обладают одинаковым числом блоков. Каждый блок в строке отделен минимум одним пробелом (корректнее отделять блоки клавишей ).
Желтое поле.
В желтом поле находятся названия или универсальные идентификаторы устройств.
Обозначение раздела жесткого диска в Linux может представляться двумя способами: названием устройства (/dev/sda1, /dev/sdb1 и т.д.) или универсальным идентификатором ( UUID ). В линуксе эти оба обозначения взаимозаменяемы.
В нашем примере, устройство /dev/sda1 и устройство UUID =b60b8731-9ff7-463f-a32f-2238f302e592 одно и то же. UUID назначается операционной системой автоматически при установке. Предпочтительнее в файле fstab использовать обозначение устройств по UUID , так как при обновлениях операционной системы могут измениться названия устройств (к примеру /dev/sda1 может изменить название на /dev/sdb1).
Просмотреть присвоенные устройству UUID можно командой:
В синем столбике отображены точки монтирования. Точка монтирования — это директория, где нужно искать данное устройство. В нашем примере, чтобы просмотреть содержимое раздела жесткого диска /dev/sda3 нужно открыть директорию /home.
Зеленое поле.
В зеленом столбике описаны типы файловых систем.
Жесткий диск:
- ext2, ext3, ext4;
- raserfs;
- xfs;
- ntfs (возможно ntfs-3g);
- fat32;
- vfat (это fat16).
USB -накопитель:
- auto (автоматическое распознавание файловой системы);
- ntfs (возможно ntfs-3g);
- fat32;
- vfat (это fat16).
CD/DVD-привод:
Floppy-привод:
- auto (автоматическое распознавание файловой системы);
- vfat (это fat16);
- fat32;
- ext2, ext3, ext4.
Красное поле.
В красном столбике находятся параметры монтирования. Если параметров несколько, то они перечисляются через запятую без пробелов.
Параметр | Действие | Значение по умолчанию |
---|---|---|
exec | Разрешить запуск исполняемых файлов. | включена |
noexec | Запретить запуск исполняемых файлов | – |
auto | Раздел будет автоматически монтироваться при загрузке операционной системы. | включена |
noauto | Раздел не будет автоматически монтироваться при загрузке операционной системы. | – |
rw | Выставить права доступа на чтение и запись. | включена |
ro | Выставить права доступа только на чтение. | – |
nouser | Запретить простым пользователям монтировать/демонтировать устройство. | включена |
user | Разрешить простым пользователям монтировать/демонтировать устройство. | – |
sw или swap | Специальный параметр SWAP области | – |
async | Включение опции асинхронного ввода/вывода. Любая операция (копирование файла, удаление и т.д.) будет происходить немного позже, чем дана команда. Помогает в распределении нагрузки ОС, последняя сама выбирает подходящее время. | включена |
sync | Включение опции синхронного ввода/вывода. Любая операция происходит синхронно с командой. | – |
suid | Разрешить работу SUID и SGID битов. Бит SUID , у исполняемого файла, повышает запустившему пользователю права до владельца этого файла. К примеру, если root создал исполняемый файл с битом SUID , то пользователь, запустивший этот файл, получает на время исполнения файла права суперпользователя. Бит SGID , у исполняемого файла, повышает запустившему пользователю права до группы владельца этого файла. | – |
nosuid | Заблокировать работу SUID и SGID битов для устройства. | включена |
iocharset=koi8-r codepage=866 | Добавляет поддержку кодировки koi8-r в названиях файлов и директорий. Применять при необходимости. | – |
errors=remount-ro | При ошибке перемонтировать с параметром только для чтения (ro). | – |
notail | Запрещает хранить маленькие файлы в хвостах больших. Увеличивает быстродействие. | – |
atime | Производить запись времени последнего доступа к файлу. | включена |
noatime | Отключение записи времени последнего доступа к файлу. Увеличивает быстродействие файловой системы. Эта опция не рекомендуется стандартом POSIX , так как некоторые приложения требуют этой функции (к примеру, почтовые клиенты и программы нотификации о новой почте перестанут правильно работать). | – |
relatime | Включение обновления времени последнего обращения к файлу только в том случае, если предыдущее время доступа было раньше, чем текущее время изменения файла. Это более лояльный подход, чем noatime. | – |
defaults | Использование всех параметров по-умолчанию: exec, auto, rw, nouser, async, nosuid, atime | – |
Серое поле указывает на включение/исключение устройства хранения информации в список резервного копирования программы DUMP , если последняя используется.
0 — не выполнять резервное копирование;
1 — выполнять резервное копирование.
Черное поле.
Черное поле устанавливает порядок проверки раздела на наличие ошибок. Если установить один и тот же порядок для двух разделов, они будут проверяться одновременно.
0 — раздел не проверяется;
1 — раздел проверяется первым;
2 — раздел проверяется вторым и т.д.
Примеры использования
Как автоматически подключить раздел NTFS в Linux
user@desktop:~$ sudo fdisk -l
Диск /dev/sda: 160.0 ГБ, 160041885696 байт
255 heads, 63 sectors/track, 19457 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0×815aa99a
Устр-во | Загр | Начало | Конец | Блоки | Id | Система |
/dev/sda1* | 1 | 4788 | 38459578+ | 7 | HPFS /NTFS | |
/dev/sda2 | 6668 | 19457 | 102735675 | 5 | Расширенный | |
/dev/sda3 | 4789 | 5031 | 1951897+ | 82 | Linux | своп / Solaris |
/dev/sda4 | 5032 | 6667 | 13141170 | 83 | Linux | |
/dev/sda5 | 6668 | 19457 | 102735640 | 83 | Linux |
Пункты таблицы разделов расположены не в дисковом порядке
user@desktop:~$ blkid
/dev/sda1: UUID =«D45A39A15A3980F2» TYPE =«ntfs»
/dev/sda3: TYPE =«swap» UUID =«cff5bb9f-22d5-44d2-a4e8-30658f83fb4e»
/dev/sda4: UUID =«03d11ea5-2b80-4a5e-ba09-cd6909425070» LABEL =«root» TYPE =«reiserfs»
/dev/sda5: UUID =«503b7434-1ced-495d-a565-a4f02634c748» TYPE =«ext3» SEC _TYPE=«ext2»
Автоматическое подключение CD/DVD-привода
Устройство /dev/cdrom подключается к точке монтирования /media/cdrom. Файловая система iso9660,udf. Подключается с параметрами ro (только чтение), noauto (не подключатся автоматически при старте ОС), user (подключение может осуществить любой пользователь) и exec (разрешить запуск приложение с подключаемого носителя).
Опытный системный администратор с большим стажем работы на крупном российском заводе. Иван является энтузиастом OpenSource и любителем Windows, проявляя высокую компетентность в обоих операционных системах. Благодаря его технической грамотности и умению решать сложные задачи, Иван стал неотъемлемой частью команды нашего проекта, обеспечивая непрерывную авторскую работу.
Как настроить автоматическое монтирование дисков в Linux
Обновлено: 09.02.2022 Опубликовано: 16.08.2016
Монтирование по имени диска
- /dev/sda1 — диск, который мы монтируем
- /db — каталог, в который монтируем диск
- xfs — файловая система
- defaults — стандартные опции. Полный их перечень можно посмотреть на Википеции.
- 0 0 — первый отключает создание резервных копий при помощи утилиты dump, второй отключает проверку диска.
Теперь создаем каталог, в который монтируем диск (в данном примере, /db):
И монтируем вручную диск, чтобы проверить правильность настроек fstab:
Должен появиться новый диск. Это можно проверить следующей командой
Монтирование по идентификатору
Данный способ не сильно отличается от монтирования по имени диска — вместо имени мы указываем идентификатор. Такой подход считается более надежным, так как при переподключении дисков к другим портам материнской платы может поменяться приоритет и, как следствие, имя устройства — это может привести к проблемам монтирования. UUID диска не меняется и поэтому, данная проблема при таком монтировании не страшна.
И так, смотрим идентификатор диска командой:
Мы получим ответ на подобие:
/dev/sdb: UUID=»3e53fc7e-a417-4fa5-b034-b227bea2474c» BLOCK_SIZE=»4096″ TYPE=»ext4″
/dev/sda1: UUID=»358f032e-3efb-42ab-b3ba-05ddc82fedfd» BLOCK_SIZE=»512″ TYPE=»xfs» PARTUUID=»0beca126-01″
* допустим, диск который мы хотим примонтировать — sda1. Его идентификатор 358f032e-3efb-42ab-b3ba-05ddc82fedfd.
Открываем на редактирование следующий файл:
и добавляем в него следующую строчку:
UUID=358f032e-3efb-42ab-b3ba-05ddc82fedfd /db xfs defaults 0 0
Монтирование можно проверить командой:
Пример монтирования сетевого диска
//192.168.0.1/network /mnt cifs user,rw,noauto,credentials=/root/.smbclient 0 0
* в данном примере выполняется монтировние общей папки network на сервере с IP-адресом 192.168.0.1 в каталог /mnt. В качестве сетевой файловой системы используется cifs (протокол SMB: сервер samba или общая папка Windows). Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, noauto: не монтировать автоматически при старте системы, credentials: файл, в котором написаны логин и пароль для подключения к общей папке.
Теперь создадим файл аутентификации (credentials):
и приведем его к следующему виду:
* username: имя пользоватля, password: пароль. Само собой, в вашем случае указываются свои данные.
Теперь вводим следующую команду:
Должна примонтироваться сетевая папка //192.168.0.1/network. Это можно проверить следующей командой: