Автоматическое монтирование дисков и разделов в Linux
Содержание
Что такое /etc/fstab и зачем он нужен[править]
fstab - это текстовый файл, содержащий список устройств хранения информации и параметры монтирования. Различные накопители, которые необходимо автоматически присоединить во время загрузки операционной системы, по порядку перечисляются в файле fstab. Также в этом файле содержатся информация об устройствах, которые не присоединяются автоматически, но при выполнении монтирования устройства стандартной командой mount происходит присоединение устройства с заданными параметрами Это необходимо, к примеру, для CD/DVD-приводов, которые не примонтированы постоянно, а монтируются при наличии диска в приводе.
Содержимое /etc/fstab[править]
fstab состоит из строк. Каждая строка это устройство. Символ решетки (#) в начале строки, как и во всех Unix системах, обозначает комментарий и поэтому значимой строкой не считается. Здесь будут рассмотрены только строки файла fstab. Более детально каждую строчку рассмотрим ниже. Для просмотра файла fstab:
cat /etc/fstab
Пример, как может выглядеть конфигурационный файл fstab:
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 /dev/mapper/apg1-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=faac2abe-3951-44d9-99a5-97c826ceffde /boot reiserfs notail 0 2 /dev/mapper/apg1-home /home ext4 defaults 0 2 /dev/mapper/apg1-swap none swap sw 0 0 /dev/mapper/cryptswap1 none swap sw 0 0
вот ещё один пример fstab:
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda5 during installation UUID=c743ab83-08ca-41eb-ae3c-ab51146218fa / ext4 errors=remount-ro 0 1 # /home was on /dev/sda7 during installation UUID=705ea5c3-6371-4c0a-adbe-9753ae670cf5 /home ext4 defaults 0 2 # /windows/c was on /dev/sda2 during installation UUID=46DEFA9BDEFA828B /windows/c ntfs defaults,umask=007,gid=46 0 0 # /windows/d was on /dev/sda3 during installation UUID=C7D1-C0CB /windows/d vfat utf8,umask=007,gid=46 0 1 # /windows/loader was on /dev/sda1 during installation UUID=263CB5953CB5608B /windows/loader ntfs defaults,ro,umask=007,gid=46 0 0 # swap was on /dev/sda6 during installation UUID=12b27dc7-d288-4cc8-9a4a-a207b98d76e6 none swap sw 0 0 #/dev/mapper/cryptswap1 none swap sw 0 0
Столбцы конфигурационного файла fstab. Теперь рассмотрим более подробно из чего состоит каждая строка. Все строки обладают одинаковым числом блоков.
UUID=faac2abe-3951-44d9-99a5-97c826ceffde /boot reiserfs notail 0 </span> 2
1. UUID - универсальные идентификаторы устройств. Обозначение раздела жесткого диска в Linux может представляться двумя способами: названием устройства (/dev/sda1, /dev/sdb1 и т.д.) или универсальным идентификатором (UUID). В линуксе эти оба обозначения взаимозаменяемы. Предпочтительнее в файле fstab использовать обозначение устройств по UUID, так как при обновлениях операционной системы могут измениться названия устройств (к примеру /dev/sda1 может изменить название на /dev/sdb1). Просмотреть присвоенные устройству UUID можно командой blkid в терминале.
2. /boot - точка монтирования — это директория, где нужно искать данное устройство.
3. raserfs - типы файловых систем, может принимать значения:
- Жесткий диск:
- ext2, ext3, ext4;
- raserfs;
- xfs;
- ntfs (возможно ntfs-3g);
- fat32;
- vfat (это fat16).
- USB-накопитель:
- auto (автоматическое распознавание файловой системы);
- ntfs (возможно ntfs-3g);
- fat32;
- vfat (это fat16).
- CD/DVD-привод:
- auto (автоматическое распознавание файловой системы);
- iso9660,udf.
- Floppy-привод:
- auto (автоматическое распознавание файловой системы);
- vfat (это fat16);
- fat32;
- ext2, ext3, ext4.
4. В красном столбике находятся параметры монтирования. Если параметров несколько, то они перечисляются через запятую без пробелов.
№ | Параметр | Действие | Значение по умолчанию |
---|---|---|---|
1 | exec | Разрешить запуск исполняемых файлов | включен |
noexec | Запретить запуск исполняемых файлов | - | |
2 | auto | Раздел будет автоматически монтироваться при загрузке операционной системы | включен |
noauto | Раздел не будет автоматически монтироваться при загрузке операционной системы | - | |
3 | rw | Выставить права доступа на чтение и запись | включен |
ro | Выставить права доступа только на чтение | - | |
4 | nouser | Запретить простым пользователям монтировать/демонтировать устройство | включен |
user | Разрешить простым пользователям монтировать/демонтировать устройство | - | |
5 | users | Разрешает монтирование от лица любого пользователя. Эта опция подразумевает параметры nosuid, noexec и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как users, exec, owner, suid и dev). | - |
6 | sw или swap | Специальный параметр SWAP области | - |
7 | async | Включение опции асинхронного ввода/вывода. Любая операция (копирование файла, удаление и т.д.) будет происходить немного позже, чем дана команда. Помогает в распределении нагрузки ОС, последняя сама выбирает подходящее время | включен |
sync | Включение опции синхронного ввода/вывода. Любая операция происходит синхронно с командой | - | |
8 | suid | Разрешить работу SUID и SGID битов. Бит SUID, у исполняемого файла, повышает запустившему пользователю права до владельца этого файла. К примеру, если root создал исполняемый файл с битом SUID, то пользователь, запустивший этот файл, получает на время исполнения файла права суперпользователя. Бит SGID, у исполняемого файла, повышает запустившему пользователю права до группы владельца этого файла | - |
nosuid | Заблокировать работу SUID и SGID битов для устройства | включен | |
9.1 | iocharset=koi8-r codepage=866 | Добавляет поддержку кодировки koi8-r в названиях файлов и директорий. Включаем поддержку кириллицы в названия файлов папок для MS-DOS/fat32 разделов. Применять при необходимости. | - |
9.2 | nls=utf8 | Включение поддержки utf-8. Поддержка «нестандартных» символов (кирилицы) в файловой системе Microsoft NTFS. При ошибке перемонтировать с параметром только для чтения (ro) | – |
9.3 | utf8 | Включение поддержки utf-8. Поддержка «нестандартных» символов (кирилицы) в файловой системе Microsoft FAT. При ошибке перемонтировать с параметром только для чтения (ro) | – |
10 | errors=remount-ro | При ошибке перемонтировать с параметром только для чтения (ro) | – |
11 | notail | Запрещает хранить маленькие файлы в хвостах больших. Увеличивает быстродействие | – |
12 | atime | Производить запись времени последнего доступа к файлу | включен |
noatime | Отключение записи времени последнего доступа к файлу. Увеличивает быстродействие файловой системы. Эта опция не рекомендуется стандартом POSIX, так как некоторые приложения требуют этой функции (к примеру, почтовые клиенты и программы нотификации о новой почте перестанут правильно работать) | - | |
relatime | Включение обновления времени последнего обращения к файлу только в том случае, если предыдущее время доступа было раньше, чем текущее время изменения файла. Это более лояльный подход, чем noatime | - | |
13 | defaults | Использование всех параметров по-умолчанию: exec, auto, rw, nouser, async, nosuid, atime | - |
14 | umask=007 | параметр, который позволяет монтировать разделы с функцией чтение-запись | - |
15 | gid=46 | идентификатор группы пользователей, которой позволяется монтировать разделы (посмотри файл /etc/group в нем расписаны все группы). 46 - это системная группа plugdev и пользователи, входящие в данную группу (добавить пользователя в эту группу можно командой: sudo usermod -a -G plugdev andrey) | - |
16 | uid=1000 | идентификатор пользователя, которому позволяется монтировать разделы. | - |
6. Серое поле указывает на включение/исключение устройства хранения информации в список резервного копирования программы DUMP, если последняя используется. 0 — не выполнять резервное копирование; 1 — выполнять резервное копирование.
7. Черное поле устанавливает порядок проверки раздела на наличие ошибок. Если установить один и тот же порядок для двух разделов, они будут проверяться одновременно. 0 — раздел не проверяется; 1 — раздел проверяется первым; 2 — раздел проверяется вторым и т.д.
Примеры использования[править]
Как автоматически подключить раздел NTFS в Linux[править]
Просматриваем все доступные разделы:
sudo fdisk -l
Результат:
Диск /dev/sdc: 1500.3 Гб, 1500301910016 байт 255 головок, 63 секторов/треков, 182401 цилиндров, всего 2930277168 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 512 байт I/O size (minimum/optimal): 512 bytes / 512 bytes Идентификатор диска: 0x0004f0ca
Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1 2048 2930288129 1465143041 7 HPFS/NTFS/exFAT
Раздел, который нужно подключить в нашем примере это /dev/sdc1
Просматриваем присвоенные UUID устройствам:
sudo blkid
Результат:
/dev/sda1: LABEL="boot" UUID="faac2abe-3951-44d9-99a5-97c826ceffde" TYPE="reiserfs" /dev/sda5: UUID="94ae4544-fb38-4ec8-b119-7ca3cf958d12" TYPE="crypto_LUKS" /dev/sdb1: LABEL="storage" UUID="ba141535-e99f-4e67-b795-6c8d0f50c7d8" TYPE="ext4" /dev/sdc1: LABEL="GAP1.36" UUID="3CC227CD5834902D" TYPE="ntfs" /dev/mapper/sda5_crypt: UUID="a6dBpr-bU65-EUWP-lLrN-kUqv-A12o-D52kgn" TYPE="LVM2_member" /dev/mapper/apg1-root: LABEL="root" UUID="3b205f1e-e5fe-47ac-a5b4-3d7df728c28e" TYPE="ext4" /dev/mapper/apg1-home: LABEL="home" UUID="3ca6ae83-e923-4702-ae2a-7c2287ecdf28" TYPE="ext4" /dev/mapper/cryptswap1: UUID="33a970c8-18dc-43ce-b394-b680207ed7b6" TYPE="swap" /dev/sdd1: LABEL="GAP1-92" UUID="3887-33F7" TYPE="vfat"
Находим нужный UUID. В нашем примере это UUID="3CC227CD5834902D"
Открываем файл fstab для редактирования:
sudo mcedit /etc/fstab
Добавляем строчку к концу файла fstab. Эта строка формируется из:
1. На первое место ставим UUID требуемого раздела жесткого диска:
UUID=3CC227CD5834902D
2. На второе место выбираем и ставим точку монтирования, допустим будет /windows:
UUID=3CC227CD5834902D /windows
3. Указываем файловую систему NTFS:
UUID=3CC227CD5834902D /windows ntfs
4. Далее выбираем из таблицы параметры, с которыми хотим примонтировать раздел:
UUID=3CC227CD5834902D /windows ntfs rw,notail,relatime
5. Резервное копирование этого раздела программой dump делать нам не нужно, поэтому ставим далее 0:
UUID=3CC227CD5834902D /windows ntfs rw,notail,relatime 0
6. Проверка раздела на ошибки делать тоже не будем, поэтому тоже 0:
UUID=3CC227CD5834902D /windows ntfs rw,notail,relatime 0 0
Также эти параметры можно внести последней строкой к концу файла fstab одной командой :
echo “UUID=3CC227CD5834902D /windows ntfs rw,notail,relatime 0 0” | sudo tee -a /etc/fstab
Автоматическое подключение CD/DVD-привода[править]
Устройство /dev/cdrom подключается к точке монтирования /media/cdrom. Файловая система iso9660,udf. Подключается с параметрами ro (только чтение), noauto (не подключатся автоматически при старте ОС), user (подключение может осуществить любой пользователь) и exec (разрешить запуск приложение с подключаемого носителя).
/dev/cdrom /media/cdrom iso9660,udf ro,noauto,user,exec 0 0
Remount /etc/fstab без перезагрузки LINUX[править]
Файл конфигурации /etc/fstab содержит необходимую информацию для автоматизации процесса монтажа разделов.
Обычно вы должны перезагрузить свою систему Linux после редактирования этого файла.
Существует простой способ переустановки всех разделов из файла /etc/fstab без перезапуска системы.
Выполните следующую команду:
sudo mount -a
Эта простая команда заставляет все файловые системы, упомянутые в /etc/fstab, перемонтироваться, за исключением разделов с параметром noauto.