Керування пристроями зберігання даних у Linux-системах становить значну частину загальної роботи з адміністрування серверів. Це включає як початкову підготовку й конфігурування файлових сховищ даних, так і подальші роботи, пов’язані з виконанням поточних завдань адміністрування — наприклад, монтування віддалених каталогів або зовнішніх підключених пристроїв.
Для оперативного розв’язання зазначених питань адміністратор повинен володіти повним обсягом інформації про поточний стан сховища та знати, які саме вбудовані команди та / або зовнішні утиліти використовувати в тому чи іншому випадку. Розглянемо ці питання детальніше.
Підготовка файлових сховищ у Linux
Як енергонезалежні пристрої зберігання даних у Linux переважно використовуються так звані блочні пристрої, у яких інформація записується й зчитується блоками фіксованого розміру. До них належать добре відомі вінчестери або жорсткі диски, твердотільні SSD-пристрої, а також різноманітні апаратні засоби, що використовують флеш-пам’ять, і деякі інші. У межах системи всі вони мають своє символьне ім’я залежно від типу, наприклад sda (від SCSI), vda, cdrom (від CD-ROM), і розміщені в каталозі /dev.
Для їх практичного використання необхідно виконати низку підготовчих операцій:
- Розбити на розділи;
- Відформатувати;
- Виконати монтування файлової системи.
Розбиття на розділи дає змогу отримати потрібну структуру сховища, у якій, наприклад, можуть бути виділені окремі секції для системних програм і резервних копій.
Форматування розділів пов’язане з використанням певного способу зберігання й зчитування даних, що визначається типом файлової системи, яких існує чимало. Наразі для Linux-систем найсучаснішою та найбезпечнішою для використання в умовах відкритого інтернет-простору є файлова система ext4.
Монтування дозволяє вказати системі місце (каталог), у якому буде вибудовуватися дерево каталогів підключеного диска або розділу — так звана точка монтування. Використання цього механізму дає змогу легко підключати до системи зовнішні пристрої зберігання даних із будь-яким типом файлової системи.
Linux, як і багато інших операційних систем (ОС), підтримує наявність енергозалежних пристроїв або сховищ, інформація в яких зникає після вимкнення живлення комп’ютера. Це так звані псевдопристрої. Більшість із них мають спеціальні символьні імена, наприклад devtmpfs або tmpfs (тимчасова файлова система). Робота з ними принципово нічим не відрізняється від роботи з реальними пристроями. Вони також мають загальний розмір, зайнятий і вільний простір, точку монтування та інші ознаки реальних пристроїв.
Відповідно до сказаного, усі програмні засоби для роботи з пристроями зберігання даних у Linux можна поділити на такі групи:
- Утиліти інформаційно-керувального типу;
- Програмні засоби створення дискових розділів і їх форматування;
- Команда монтування файлових систем.
Нижче буде розглянуто програмні засоби кожної з указаних груп.
Утиліти інформаційно-керувального типу
Такі програми дають змогу отримати повну інформацію про поточний стан усього файлового сховища, розгорнутого в системі, зокрема:
- Відомості про поточне використання дискового простору кожного з підключених пристроїв;
- Характеристики носіїв — ім’я, ідентифікатор, розмір тощо;
- Тип пристрою — диск, розділ тощо;
- Інформацію про всі розділи та встановлені на них файлові системи;
- Спосіб підключення й точку монтування.
На основі отриманої інформації можна надалі ухвалювати рішення щодо можливих шляхів корекції, зміни або розвитку структури сховища.
Для початку отримаємо потрібну нам інформацію про поточне використання всього дискового простору нашої системи, що працює під керуванням ОС Ubuntu 22.04. Для цього скористаємося командою df із параметром –h, який виводить інформацію в зручному для нас вигляді.
Уведемо в терміналі:
$ df -h

Для зручності аналізу нижче наведено результат виконання команди:
Filesystem Size Used Avail Use% Mounted on
tmpfs 193M 2.5M 191M 2% /run
/dev/vda2 24G 9.9G 14G 44% /
tmpfs 964M 0 964M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 193M 4.0K 193M 1% /run/user/0
Як бачимо, у системі встановлено лише один фізичний пристрій зберігання даних з іменем vda; його загальна ємність становить 24 Gb; використано 9,9 Gb (44%); вільно — 14 Gb; точка монтування — кореневий каталог.
Усі інші носії є псевдопристроями, тобто тимчасовими, із символьним іменем tmpfs. Кожен із них змонтований у власному каталозі й виконує певні системні функції. Ємність кожного не перевищує 1 Gb.
Для ефективного відстеження характеристик, пов’язаних із блочними пристроями, доцільно використовувати команду lsblk, яка є своєрідним аналогом добре відомої команди ls для дослідження каталогу. Цю команду краще запускати з приставкою sudo, щоб уникнути отримання некоректних результатів через нестачу повноважень.
Скористаємося нею у нашій системі для уточнення даних. Уведемо в терміналі:
$ sudo lsblk

У результаті ми отримали інформацію про використовувані блочні пристрої, до якої належать:
- Їхнє ім’я в /dev;
- Тип;
- Розмір;
- Точка монтування.
Команда вивела всі ці дані, а також показала всі наявні розділи (vda1 і vda2) фізичного носія типу disk. Однак це ще не вся інформація, якою має володіти адміністратор системи. Зокрема, відсутні дані про такі характеристики носіїв, як їхній ідентифікатор UUID і мітка.
Для їх отримання скористаємося додатковим параметром –fs цієї ж команди:
$ sudo lsblk --fs

Нижче наведено результат виконання команди:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 squashfs 4.0 0 100% /snap/core20/1828
loop1 squashfs 4.0 0 100% /snap/core20/2015
loop2 squashfs 4.0 0 100% /snap/lxd/22923
loop3 squashfs 4.0 0 100% /snap/lxd/24322
loop5 squashfs 4.0 0 100% /snap/snapd/20092
loop6 squashfs 4.0 0 100% /snap/snapd/20290
sr0
vda
├─vda1
└─vda2 ext4 1.0 3cd87dc4-371e-4264-9b09-0058cf3bbe6e 13G 41% /
У результаті ми отримали потрібну нам інформацію про фізичний носій — тип його файлової системи (ext4) і її версію (1.0); значення UUID (3cd87dc4-371e-4264-9b09-0058cf3bbe6e) тощо. Ця інформація може знадобитися нам у подальшому для зміни конфігурації накопичувача.
Тепер дізнаємося топологію нашого диска за допомогою параметра –t:
$ sudo lsblk -t

Програмні засоби створення дискових розділів і їх форматування
Існує безліч утиліт для Linux, основним завданням яких є робота з дисковими розділами та їх форматування. Найвідоміші з них — GNOME Disks, KDE Partition Manager, GNU Parted, ну і, звичайно ж, Fdisk — вбудований інструмент для роботи в режимі командного рядка.
Використаємо програму GNU Parted для розв’язання нашого завдання — об’єднання двох розділів нашого диска в один. Для цього наберемо в терміналі:
$ sudo parted /dev/vda mklabel gpt
Тут gpt — формат розміщення таблиць дискових розділів, складова частина технології EFI.
Під час виконання програми в терміналі буде виведено низку запитань, на які потрібно буде дати відповіді. Зокрема, це повідомлення про видалення даних із розділів, що видаляються. Запитання та відповіді на них наведені нижче.

Тепер можна приступати до створення єдиного завантажувального розділу ємністю на весь диск. Наберемо в терміналі:
$ sudo parted -a opt /dev/vda mkpart primary ext4 0% 100%
Тут також доведеться відповісти на кілька запитань.

У результаті був створений новий розділ. Переконаймося в цьому за допомогою відповідної команди:
$ lsblk

Так і є. У нашому пристрої присутній лише один розділ замість двох, як було раніше. Тепер нам залишилося відформатувати його під файлову систему ext4. Наберемо в терміналі:
$ sudo mkfs.ext4 -L datapartition /dev/vda2

Розділ успішно відформатовано.
Команди монтування файлових систем
Основною командою Linux для виконання операцій монтування файлових систем є mount, яка зазвичай використовується з низкою параметрів.
Формат команди такий:
sudo mount {Набір параметрів} {Повне ім’я монтовного розділу} {Точка монтування}
Взагалі, стандартом рекомендовано як точку монтування використовувати або /mnt, або вкладений у нього каталог, хоча, звичайно ж, це не є принциповим.
Для прикладу змонтуємо розділ /dev/vda2 у каталозі /mnt/experiment. Для цього спочатку створимо каталог experiment:
$ sudo mkdir -p /mnt/experiment

Команда монтування матиме такий вигляд:
$ sudo mount -o defaults /dev/vda2 /mnt/experiment

Будь-яку змонтовану файлову систему завжди можна розмонтувати. Наприклад, у нашому випадку команда розмонтування буде такою:
$ sudo umount /mnt/experiment
Слід мати на увазі, що всі команди монтування, виконані вручну, діють лише протягом поточного сеансу роботи, тому доцільно вписувати їх в один із конфігураційних файлів, що гарантує автоматичне монтування будь-якої кількості пристроїв.
Відредагуємо цей файл за допомогою редактора nano:
$ sudo nano /etc/fstab
Вставимо в кінець файлу наступний рядок:
UUID=3cd87dc4-371e-4264-9b09-0058cf3bbe6e /mnt/experiment ext4 defaults 0 2
Тут ми вказали ідентифікатор нашого пристрою, точку монтування, тип файлової системи і встановили стандартні значення решти параметрів. Після цього вміст файлу стане таким:

Збережімо внесені зміни і вийдімо з редактора.
Тепер під час кожного завантаження відбуватиметься монтування файлової системи згідно з установленими нами параметрами. І таких записів можна додавати стільки, скільки потрібно для роботи Адміністратора.
