Автоматичне монтування розділів за допомогою fstab

Вступ

У процесі роботи з операційною системою (ОС) користувачеві часто доводиться підключати різні пристрої зберігання. Це можуть бути жорсткі диски (переносні або інші комп’ютери), Flash/M2-накопичувачі, оптичні диски тощо. Найчастіше ті пристрої, які необхідно підключати автоматично, визначаються ще на етапі встановлення системи. Однак, нерідко потрібно налаштувати можливість автоматичного монтування в Linux новоствореного доданого пристрою, наприклад, диска для зберігання регулярно створюваних резервних копій. У такому разі необхідно змінити конфігураційні файли. Це дозволить системі ініціалізації початкового завантаження системи «дізнатися» про пристрої, що автоматично монтуються.

Трохи про те, як відбувається монтування

Монтування файлової системи – це один з обов’язкових етапів початкового завантаження Linux. Монтування необхідно для того, щоб зібрати файлову систему (ФС) з її компонентів у єдине дерево каталогів, що має один корінь. У Linux немає поняття “диск” як такого. Це фізичний рівень, який показується у загальному дереві файлової системи через інші файлові системи, пов’язані, наприклад, з розділами дисків та підключаються через точки монтування.

Наприклад, один із розділів пристрою зберігання (диска) може бути змонтований як “/home”. Цей запис означає точку монтування ФС із домашніми каталогами користувачів системи. Тут символ “/” вказує, що до загального кореня (до кореневої ФС) під’єднано іншу ФС з ім’ям “home”. А вона своєю чергою прив’язана до якогось із розділів на пристрої зберігання.

Монтування в Linux виконує команда mount. Вона викликається системою ініціалізації (наприклад, Systemd), але також широко використовується для ручного підключення пристроїв.

Конфігураційним файлом, що зберігає налаштування підключення пристроїв, є  /etc/fstab. Система ініціалізації при запуску системи звертається до цього файлу, щоб змонтувати ФС відповідно до вказаних у ньому налаштувань. Вміст файлу /etc/fstab – це список текстових рядків, кожний з яких відповідає розділу на пристрої, який необхідно вмонтувати з певними параметрами, зазначеними у цьому рядку. Правила запису цих рядків відповідають певному (і простому) синтаксису.

Синтаксис записів у файлі fstab

Спершу може здатися, що запис для рядка монтування досить складний. Однак за більш прискіпливого розбору такого рядка стає очевидним призначення її компонентів. Записи підпорядковуються наступному синтаксису:

пристрій точка_монтування тип_фс опції резерв черга_перевірки

Відповідно до цього синтаксису робочий рядок монтування пристрою може виглядати, наприклад, таким чином:

UUID=7dac48f7-9891-4e5d-abe9-1332d860183e /opt ext4 defaults 0 2

Найскладнішим для сприйняття компонентом у такому записі є «пристрій», оскільки є цілим виразом. У цьому випадку це “UUID=7dac48f7-9891-4e5d-abe9-1332d860183e”, що означає ніщо інше як ідентифікатор пристрою (UUID) у системі, яка зрозуміла ядру. Далі йдуть:

  • /opt – точка монтування, яка задається “гілкою” – тобто додаткової ФС, що включається до кореневої ФС і крім /opt, звичайно ж можуть бути й інші – /home, /var, /etc і т. д.;
  • ext4 – тип файлової системи, якою можуть бути будь-які інші – ext2, ext4, btrfs і т.д.;
  • defaults – опції монтування ФС пристрою за замовчуванням;
  • 0 – створення резервної копії розділу вимкнено, для включення необхідно вказувати 1;
  • 2 – перевірка пристрою на наявність помилок в другу чергу (0 – відключено), для першої та третьої необхідно вказувати 1 і 3 відповідно і т.д.

Важливо помітити, що в Linux як ідентифікатор пристрою може виступати як UUID (універсальний ідентифікатор пристрою), так і ім’я пристрою, наприклад  /dev/sda/dev/sdb1 і т.д. зміни конфігурації системи та/або підключення/відключення нових пристроїв. Дізнатися UUID для зареєстрованих у системі пристроїв (відповідно до їх найменувань) дозволяє команда blkid, виконана від імені суперкористувача:

$ sudo blkid

Варто приділити особливу увагу опціям монтажу пристроїв, оскільки їх набір досить різноманітний і дозволяє гнучко задавати різні режими підключення та роботи пристроїв. У наступній таблиці наведені найчастіше використовувані з них:

ОпціяЗначення
execДозволяє запускати виконувані файли.
noexecЗабороняє запускати виконувані файли.
autoАвтоматичне монтування розділу пристрою під час старту системи.
noautoЗаборонити автоматичне монтування розділу пристрою під час старту системи.
rwДозволити читання/запис
roДозволити лише читання.
nouserНе дозволяти звичайним користувачам виконувати монтування демонтування пристроїв.
userДозволити звичайним користувачам виконувати монтування демонтування пристроїв.
sw (swap)Дозволити підкачування для розділу.
asyncВключити асинхронне введення/виведення. При цьому дії з розділом (копіювання, видалення тощо) будуть відбуватися не відразу по команді, а в певний час, трохи пізніше, на розсуд системи. Ця опція використовується для оптимізації/розподілу навантаження.
syncУвімкнути синхронне введення/виведення.
suidДозволити роботу SUID та SGID бітів.
nosuidЗаборонити роботу SUID та SGID бітів.
iocharset=koi8-r

codepage=866
Включити підтримку кодування КOI8-R для назв файлів і каталогів.
errors=remount-roУ разі виникнення помилок виконувати перемонтування з опцією ro .
notailЗаборонити зберігати невеликі файли в кінці великих . Використовується для підвищення продуктивності.
atimeЗаписувати час останнього доступу до файлу.
noatimeВимкнути запис часу останнього доступу до файлу. Не рекомендується використовувати, оскільки багатьма програмами для коректної роботи ці дані необхідні. Використовуйте цю опцію лише для розділів, для яких не передбачається перевірка часу останнього доступу до файлів і необхідно суттєво збільшити продуктивність роботи з диском.
relatimeУвімкнути лояльний режим запису часу останнього доступу до файлу. Запис буде здійснюватись лише якщо попередній час доступу більш ранній, ніж поточний час зміни файлу.
defaultsВключити всі оптимальні параметри за замовчуванням: ехес, auto, rw, nouser, async, nosuid, atime.

Також слід докладніше розглянути типи ФС, що використовуються під час монтування. Потрібно представляти, яких типів пристроїв можна використовувати той чи тип ФС. Наприклад:

Жорсткі диски:

  • NTFS;
  • XFS;
  • FAT32;
  • VFAT;
  • EXT2/EXT3/EXT4.

Наводь CD/DVD:

  • UDF;
  • ISO9669
  • auto – може розпізнаватись автоматично.

Накопичувач USB-Flash:

  • VFAT;
  • FAT32;
  • NTFS;
  • auto.

Слід зазначити, попри те, що всі перераховані вище параметри наводяться у стандартному написанні, тобто великими символами, проте записувати їх безпосередньо в рядку монтування необхідно малими символами.

Приклади

Нехай потрібно налаштувати автоматичне монтування будь-якого розділу. Для початку необхідно визначити потрібний розділ, а також його UUID:

$ sudo blkid
[sudo] пароль для john:
/dev/sda1: UUID="134E-F80E" TYPE="vfat" PARTUUID="b0989448-c545"
/dev/sda2: UUID="28902d2c-2394" TYPE="ext4" PARTUUID="e304a808-1396"
. . .
/dev/sda5: UUID="7dac48f7-9891" TYPE="ext4" PARTUUID="b51a40c0-0bd5"
/dev/sdb1: UUID="af882c18-2cd4" TYPE="ext4" PARTUUID="81a8460d-1ce7"
/dev/sdb2: UUID="f300901f-1ce7" TYPE="ext4" PARTUUID="a0cf995f-b63c"

Якщо потрібний, наприклад, розділ /dev/sdb1, то UUID є “af882c18-2cd4”. Далі слід відкрити файл  /etc/fstab у текстовому редакторі (наприклад, nano) від імені суперкористувача.

$ sudo nano /etc/fstab

і додати до нього рядок конфігурації для необхідного розділу, внісши до неї параметри та опції відповідно до синтаксису попереднього розділу, наприклад:

UUID= af882c18-2cd4 /home/backups ext4 rw,notail,relatime 0 0

Тепер при старті системи розділ буде  /dev/sdb1 монтуватися автоматично і відповідно відразу готовий до використання.

Якщо потрібно автоматично монтувати інший тип пристрою, наприклад, CD/DVD, то ряд конфігурацій для нього буде приблизно наступним:

/dev/cdrom /media/cdrom iso9660,udf ro,noauto,user,exec 0 0

Тут  /dev/cdrom можна вказувати також і  /dev/sr0якщо це перший і/або єдиний оптичний привід у системі.

Висновок

Отже, були розглянуті основні принципи монтажу пристроїв у Linux, а також часто зустрічаються синтаксис та параметри та опції для їх автоматичного підключення. Як можна бачити, для роботи з пристроями UNIX/Linux використовується спеціальна файлова система /dev. А для організації та налаштування їх автоматичного монтування.

Якщо помітили помилки чи неточності, будь ласка, залишіть коментар чи напишіть листа на поштову адресу [email protected]

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *