Окружение

Вопрос

Как автоматически монтировать HDD-, SSD- и USB-носители?

Ответ

В этой статье рассматривается настройка автоматического монтирования носителей путем внесения изменений в конфигурационный файл /etc/fstab.

Как правило, файл /etc/fstab используется для настройки параметров автоматического монтирования разделов устройств, постоянно присутствующих в системе, например, NVME-, HDD- и SSD-носителей. Описывать в нем параметры монтирования отчуждаемых устройств (USB-носители, карты памяти и т. д.) не рекомендуется: если носитель не будет подключен к компьютеру, а в опциях монтирования не указан параметр nofail, загрузка ОС будет прервана с сообщение об ошибке:

You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or "exit"
to boot into default mode.

Cannon open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.
CODE

Для настройки автоматического монтирования отчуждаемых носителей рекомендуется воспользоваться инструкциями, приведенными в статьях Справочного центра:


Для настройки автоматического монтирования носителей следует выполнить следующие действия:

  1. До подключения к компьютеру нового накопителя получить список имеющихся разделов:

    lsblk
    CODE

    Например:

    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0 232,9G  0 disk
    ├─sda1        8:1    0    94M  0 part /boot/efi
    ├─sda2        8:2    0    70G  0 part /
    └─sda3        8:4    0   3,7G  0 part [SWAP]
    CODE

    где:

    • sda — название устройства;
    • sda1, sda2, sda3 — названия разделов на устройстве.
  2. Подключить носитель.
  3. Если на носителе еще нет таблицы разделов, разделов или файловой системы, создать их, используя, например, утилиту GParted из состава ОС. Далее для упрощения изложения считается, что неотчуждаемый носитель содержит только один раздел с файловой системой Ext4.
  4. Получить список идентификаторов разделов

    sudo blkid
    CODE

    Например:

    /dev/sda1: UUID="4ae60b6a-5093-42d4-92fd-babe9dd82d7f" TYPE="vfat" PARTUUID="e7710043-01"
    /dev/sda2: UUID="3f43345d-4d96-4800-8edd-d641a7b6e982" TYPE="ext4" PARTUUID="e7710043-02"
    /dev/sda3: UUID="7d329803-23da-23ef-0921-f4871059d18b" TYPE="swap" PARTUUID="e7710043-03"
    /dev/sdb1: UUID="f6247746-5ce3-4544-80f7-e7472869969d" TYPE="ext4" PARTUUID="d57a956d-01"
    CODE

    Здесь:

    • /dev/sdb1 — название первого раздела на подключенном носителе;
    • f6247746-5ce3-4544-80f7-e7472869969d — UUID нового раздела;
    • ext4 — тип файловой системы нового раздела.
  5. Создать каталог для монтирования нового раздела, например:

    sudo mkdir -p /mnt/mount_point
    CODE
  6. Добавить в конец файла /etc/fstab запись для монтирования нового раздела:

    UUID=<uuid>   <mount_point>   <file_system>   <options>   <dump>   <fsck>
    CODE

    где

    ПараметрОписание
    <uuid>UUID раздела
    <mount_point>Каталог, в который должен быть смонтирован раздел. Должен существовать и быть пустым
    <file_system>Файловая система монтируемого раздела
    <options>

    Опции файловых систем, одной строкой через запятую без пробелов. Описание опций монтирования приводится далее.

    Для монтирования раздела с параметрами по умолчанию следует использовать опцию defaults.

    Для отчуждаемых носителей рекомендуется использовать опцию nofail

    <dump>

    Создание резервных копий раздела:

    • 0 — выключено (рекомендуется);
    • 1 — включено.
    <fsck>

    Проверка файловой системы при загрузке ОС:

    • 0 — выключена.
    • 1 — проверять первым.

      Это значение следует использовать только для корневого раздела (/).

    • 2 — проверять после того, как будет проверен корневой раздел.

    Например, для монтирования обнаруженного ранее раздела /dev/sdb1 с файловой системой Ext4 в каталог /var/mount_point запись будет иметь вид:

    UUID=f6247746-5ce3-4544-80f7-e7472869969d /var/mount_point   ext4   defaults   0   2
    CODE
  7. Выполнить команду монтирования всех доступных разделов:

    sudo mount -a
    CODE
  8. Убедиться, что нужный раздел смонтирован в указанный каталог:

    sudo df -h | grep /dev/sdb1
    CODE

    Например:

    /dev/sdb1          900G          24K    900G           0% /var/mount_point
    CODE

Опции монтирования

Пожалуйста, разместите таблицу или макрос, генерирующий таблицы, в макросе "Фильтр таблиц".

ОпцияПрименимостьОписание
syncОбщаяВсе операции ввода-вывода файловой системы должны выполняться синхронно
asyncОбщаяВсе операции ввода-вывода файловой системы должны выполняться асинхронно
atimeОбщаяОбновлять время последнего обращения к файлу. Используется по умолчанию
noatimeОбщаяНе обновлять время последнего обращения к файлу
relatimeОбщаяОбновлять время последнего обращения к файлу только при изменении файла или изменении времени доступа
norelatimeОбщаяНе включать функцию relatime
strictatimeОбщаяОбновлять времени доступа к структуре данных при изменении файлов. Отключает noatime и relatime
nostrictatimeОбщаяОбновлять время доступа к структуре данных, в соответствии с настройками ядра по умолчанию
autoОбщаяАвтоматическое монтирование раздела при загрузке ОС
noautoОбщаяОтключить автоматическое монтирование раздела при загрузке ОС
defaultsОбщая

Использовать настройки по умолчанию. Эквивалентно следующему набору опций:

rw,suid,dev,exec,auto,nouser,async
CODE
devОбщаяИнтерпретировать блок специальных устройств на файловой системе
nodevОбщаяНе интерпретировать блок специальных устройств на файловой системе
diratimeОбщаяОбновлять время доступа к каталогу структуры данных. Используется по умолчанию
nodiratimeОбщаяНе обновлять время доступа к каталогу структуры данных
dirsyncОбщая

Изменения каталогов в файловой системе выполняются синхронно. Относится к следующим системным командам:

  • creat 
  • link 
  • unlink 
  • symlink 
  • mkdir 
  • rmdir 
  • mknod
  • rename
execОбщая

Разрешить запуск бинарных файлов, хранящихся на разделе

noexecОбщая

Запретить запуск бинарных файлов, хранящихся на разделе.

Эта опция может быть полезна для раздела, который не содержит бинарных исполняемых файлов, например, /var/, либо содержит исполняемые файлы, которые не могут быть выполнены в системе, например, программы для ОС Windows

groupОбщая

Разрешить непривилегированным пользователям монтировать файловую систему раздела, если одна из групп пользователей совпадает с группой устройства. Требует указаний опций nosuid и nodev (за исключением случаев, когда пересекается с опциями suid и dev)

encryptionОбщая

Определяет используемый алгоритм защитного преобразования данных. Требует указания опции loop и keybits

keybitsОбщая

Длина в битах ключа для используемого алгоритма защитного преобразования данных. Требует указания опций loop и encryption

nofailОбщая

Не считать ошибкой отсутствие раздела в системе

iversionОбщая

Увеличивать номер версии структуры данных каждый раз, когда структура данных изменяется

noiversionОбщая

Не менять номер версии структуры данных при изменении структуры данных

mandОбщаяРазрешить принудительную блокировку файловой системы
nomandОбщая

Не разрешать принудительную блокировку файловой системы

_netdevОбщаяПредотвращать попытки монтирования сетевых файловых систем
suidОбщаяРазрешить использование битовых идентификаторов пользователей или групп
nosuidОбщаяНе разрешать использование битовых идентификаторов пользователей или групп
ownerОбщаяРазрешить непривилегированным пользователям монтировать файловую систему раздела, если пользователь является владельцем устройства. Требует указания опций nosuid и nodev (за исключением случаев, когда пересекается с опциями suid и dev)
roОбщаяМонтировать раздел в режиме "только чтение"
rwОбщаяМонтировать раздел в режиме чтения и записи
userОбщаяРазрешить непривилегированным пользователям монтировать файловую систему раздела
nouserОбщаяЗапретить непривилегированным пользователям монтировать файловую систему раздела. Используется по умолчанию
usersОбщаяРазрешить монтирование файловой системы раздела любому пользователю. Требует указания опций nosuid, noexec и nodev (за исключением случаев, когда пересекается с опциями exec, onwer, suid и dev)
nlsNTFSКодировка имен файлов и каталогов в 8-битных и 16-битных вариантах Unicode. Рекомендуется использовать со значением utf-8 для включения кодировки UTF-8. Используется вместо устаревшей опции iocharset
codepageNTFSКодировка имен файлов и каталогов на разделах MS-DOS/FAT32. Чтобы включить поддержку кириллицы, необходимо задать для этой опции значение 866
utf8FAT32Включить поддержку кодировки UTF-8

Дополнительная информация об опциях монтирования доступна во встроенной справке:

man mount
CODE

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

Каждый раздел должен монтироваться в отдельный каталог.

  • NTFS:

    UUID=2eff7db1-1bec-4a2d-a4d1-af4113b5a590 /var/windows_storage ntfs defaults,noatime         0 2
    CODE
  • Ext4 с параметрами по умолчанию:

    UUID=2eff7db1-1bec-4a2d-a4d1-af4113b5a590 /var/mount_point     ext4 defaults                 0 2
    CODE
  • Ext4 с опцией nofail и режимом "только чтение" в случае ошибок:

    UUID=2eff7db1-1bec-4a2d-a4d1-af4113b5a590 /var/flash_storage   ext4 nofail,errors=remount-ro 0 2
    CODE