Файлова система: що це і навіщо вона потрібна

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

Коли користувач відкриває файл, операційна система звертається не до самих даних, а до таблиці або дерева метаданих. Файлова система веде це дерево окремо від вмісту і зберігає в ньому ім’я файлу, розмір, дату зміни, права доступу і адреси кластерів, де фізично лежать байти. NTFS, exFAT, ext4 і APFS реалізують цю ідею по-різному. Задача одна: перетворити безструктурний диск на впорядковане сховище, яким можна користуватися.

Файлова система відповідає за адресацію, метадані та розподіл місця

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

Фрагментація виникає, коли вільні кластери розкидані по диску нерівномірно і новий файл доводиться ділити на частини в різних місцях. HDD з рухомою голівкою відчуває це напряму: час доступу росте з кожним переміщенням між доріжками. SSD фрагментацію майже не відчуває, бо звернення до будь-якої комірки пам’яті займає однаковий час незалежно від адреси.

Диск, розділ і файлова система означають різні речі

Диск, розділ (партиція) і файлова система означають три різні поняття, які часто плутають в одному реченні. Диск є фізичним пристроєм. Розділ є ділянкою на диску, виділеною під один том. Файлова система є форматом, у якому цей том організований, і саме її можна змінити форматуванням, не чіпаючи ні диск, ні розділ. Той самий розділ можна відформатувати в NTFS, потім у exFAT і жодного разу не торкнутися заліза.

Операційна система теж не файлова система сама по собі, а лише клієнт, який уміє з нею працювати через драйвер. Windows читає ext4 тільки через сторонній драйвер. macOS не пише в NTFS без стороннього драйвера. Linux історично підтримує більшість поширених файлових систем одразу через ядро, без додаткового програмного забезпечення.

Журналювання дозволяє файловій системі відновитися після збою живлення

Журнальна файлова система, як NTFS чи ext4, перед реальним записом спочатку фіксує намір у службовій ділянці, журналі. Якщо живлення зникає посеред операції, після перезавантаження система перечитує журнал. Вона добудовує або відкочує незавершену дію за кілька секунд, і диск лишається у справному стані. FAT32 такого страхування не має. Після збою потрібна повна перевірка структури утилітою на кшталт chkdsk, а незавершений запис із високою ймовірністю залишає биті кластери чи втрачені ланцюжки даних.

MFT і inode: як файлова система зберігає метадані

NTFS зберігає метадані про кожен файл у головній файловій таблиці, Master File Table (MFT), де кожному файлу відповідає запис зазвичай на 1 кілобайт. Для дуже маленьких файлів NTFS вміє класти самі дані просто всередину цього запису, і тоді диск взагалі не звертається до окремих кластерів. Ця технологія називається resident files і працює, поки вміст файлу вміщується в кілька сотень байтів.

ext4 влаштована інакше. Кожному файлу відповідає inode, окрема структура з фіксованим номером, яка зберігає права доступу, власника, час зміни і покажчики на блоки даних, але не саме ім’я файлу. Ім’я живе окремо, у записі каталогу, який лише посилається на номер inode. Тому в Linux один файл може мати кілька імен одночасно через жорсткі посилання, hard links. Видалення одного імені не видаляє дані, поки лишається бодай одне інше посилання на той самий inode.

FAT32, exFAT і NTFS відрізняються межами розміру файлів і томів

Три файлові системи покривають більшість практичних задач на Windows-сумісних пристроях. Кожна ставить власну межу на розмір файлу й тому, і різниця між ними впливає на щоденний вибір формату для флешки чи диска.

Файлова система Макс. розмір файлу Макс. розмір тому Журналювання
FAT32 4 ГБ мінус 1 байт 2 ТБ за замовчуванням, 16 ТБ при секторі 4096 байтів немає
exFAT до 128 ПБ за специфікацією до 128 ПБ немає
NTFS 16 ЕБ теоретично 16 ЕБ теоретично, 8 ПБ на практиці Windows є

Ліміт FAT32 у 4 ГБ пояснюється 32-бітним полем, а не округленням

Розмір файлу в FAT32 записується у 32-бітне поле. Максимальне число, яке туди вміщується, дорівнює двом у степені тридцять два мінус один байт, тобто 4 294 967 295 байтів. Поділ на 1024 тричі переводить це число з байтів у гібібайти. Спочатку 4 294 967 295 байтів, поділені на 1024, дають 4 194 304,999 кібібайта. Ще один поділ на 1024 дає 4095,99999976 мебібайта. Останній поділ на 1024 дає 3,999999999767 гібібайта. Популярна фраза «ліміт 4 ГБ» насправді означає рівно на один байт менше за чотири гібібайти. Файл точно у 4 ГБ на FAT32 записати неможливо, скільки б вільного місця не лишалося на диску.

Обмеження форматування FAT32 у Windows належить інструменту, не стандарту

Специфікація FAT32 обмежує том 32-бітним полем кількості секторів. При стандартному секторі 512 байтів це дає теоретичний максимум 2 ТБ, а при секторі 4096 байтів дозволяє до 16 ТБ. Вбудований інструмент форматування у File Explorer десятиліттями дозволяв створити том FAT32 не більше 32 ГБ, хоча сама файлова система таких меж не ставить: обмеження належало інструменту Windows, а не стандарту. У квітні 2026 року Microsoft розширила можливості форматування FAT32 через командний рядок до 2 ТБ. Графічний майстер форматування на момент виходу оновлення лишили без змін. Розмір окремого файлу лишився тим самим, 4 ГБ мінус один байт, і це оновлення на нього не вплинуло.

У Linux і macOS файлова система влаштована інакше: ext4 і APFS

Linux за замовчуванням використовує ext4, журнальну файлову систему з максимальним розміром файлу 16 ТіБ і обмеженням довжини імені у 255 байтів. Її попередниця ext2 журналу не мала взагалі. ext3 додала журналювання, зберігши решту структури майже без змін. macOS з 2017 року переведена на APFS, файлову систему з підтримкою миттєвих знімків тому і оптимізацією під SSD, яка замінила застарілу HFS+.

Регістр символів і заборонені символи в іменах файлів різняться між системами

NTFS зберігає регістр літер, який ввів користувач, але при пошуку файлу регістр не враховує. Report.docx і report.docx для неї те саме ім’я, і створити обидва файли в одній теці не вдасться. ext4 у Linux регістрозалежна за замовчуванням, тому Report.txt і report.txt у одній теці є двома різними файлами. Ця різниця часто ламає проєкти, які переносять з Linux-сервера на Windows-машину: два файли з іменами, що різняться лише регістром, на Windows зливаються в один, і другий файл мовчки зникає під час копіювання.

Заборонені символи теж не збігаються між системами. Windows не дозволяє в іменах файлів символи зворотної риски, похилої риски, двокрапки, зірочки, знака питання, лапок, кутових дужок і вертикальної риски незалежно від файлової системи, тому що обмеження закладено на рівні API самої операційної системи. У Linux заборонений практично лише символ похилої риски та нульовий байт. Решта символів, включно з зірочкою чи знаком питання, у ext4 цілком припустимі, хоча ускладнюють роботу в командному рядку.

Вибір файлової системи для флешки, зовнішнього диска чи NAS залежить від сумісності

Для флешки, яку підключають і до Windows, і до macOS, і до телевізора чи консолі, розумним вибором стає exFAT. Вона читається майже всюди і не має ліміту в 4 ГБ на файл, який заважає копіювати відео чи образи дисків. Для зовнішнього диска, що працює лише з Windows, доцільніше NTFS через журналювання і права доступу на файли. Для системного диска Linux-машини чи домашнього NAS файлова система визначається самим пристроєм: здебільшого це ext4, а в деяких моделях Synology і QNAP використовують btrfs заради знімків тому.

Що в цьому огляді не перевірено

Стаття не порівнює практичну швидкість читання й запису для кожної файлової системи. Реальні цифри залежать передусім від контролера, розміру кластера і навантаження, формат тут другорядний. Поза розглядом також лишилося шифрування на рівні файлової системи, BitLocker для NTFS і FileVault для APFS. Так само за межами теми лишилися спеціалізовані файлові системи серверів на кшталт ZFS чи ReFS, які виходять за межі домашнього і офісного використання.

Опубліковано на   

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

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