Вступ
У процесі роботи з операційною системою (ОС) користувачеві часто доводиться підключати різні пристрої зберігання. Це можуть бути жорсткі диски (переносні або інші комп’ютери), 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]