FAT32 (від англ. File Allocation Table - «таблиця розташування файлів») — ця файлова система підтримує томи (логічні диски) обсягом до 8 ТБ[1] і використовує для зберігання файлів менші фрагменти диска, ніж файлова система FAT16. Це збільшує вільний простір на диску. Файлова система FAT32 не підтримує диски, менші за 512 МБ[2].

FAT32
РозробникMicrosoft
Файлова системаFile Allocation Table 32
Дата представлення1996 (Windows 95 OSR2)
Мітка тому0x0B EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Структура
Структура директорійлінійна
Обмеження
Максимальний розмір файлу2 ГіБ (2,147,483,647 байт)
Максимум файлів268,173,300 для 32 КіБ кластеру
Максимальна довжина імені файлу8.3 формат, а також 255 символів при LFN
Максимальний розмір тому
  • 2 ТіБ (для 512-байтного сектора)
  • 8 ТіБ (для 2 KB сектора та 32 KB кластера)
  • 16 ТіБ (для 4 KB сектора та 64 KB кластера)
Допустимі символи в назвахUCS-2 за виключенням ascii-символів 0-31 та <>:"/\
Можливості
Властивості
  • дата останньої модифікації файла
  • дата створення файлу (Для MS DOS 7.0 та новіше)
  • дата останнього доступу (При увімкненні опції ACCDATE)
  • дата видалення (При увімкненні DELWATCH 2)
Діапазон дат1980-01-01 до 2099-12-31
Точність збереження дати
  • 2 секунди для дати останньої модифікації файла
  • 10 мілісекунди для дати створення файлу
  • 1 день для дати останнього доступу
  • 2 секунди для дати видалення файлу
АтрибутиТільки читання, прихований, системний, архівний
Права доступуЧастково для деяких операційних систем.
Фонова компресіяЗа допомогою стороніх утілит та драйверів

Файлова система FAT32 була вперше реалізована в операційній системі Windows 95 OEM Service Release 2 (OSR2)[3].

Обмеження файлової системи FAT32 у Windows XP

ред.

Під час використання файлової системи FAT32 в операційній системі Windows XP потрібно враховувати такі обмеження:

  • кластери не можуть мати розмір 64 кілобайта (КБ) та більше. У протилежному випадку деякі програми (зокрема, програми інсталяції) можуть неправильно визначати обсяг доступного простору на диску;
  • том FAT32 повинен містити мінімум 65 527 кластерів. Не можна збільшити розмір кластера на томі FAT32 таким чином, щоб він містив менше 65 527 кластерів;
  • максимальний обсяг простору на диску має становити приблизно 8 терабайт з урахуванням таких змінних: Максимально можлива кількість кластерів на томі FAT32 становить 268 435 445, при цьому максимально допустимий розмір кластера становить 32 КБ разом із простором, який потрібен для таблиці розміщення файлів (FAT);
  • не можна зменшити розмір кластера на томі FAT32 таким чином, щоб розмір таблиці FAT перевищив значення, рівне 16 МБ мінус 64 КБ;
  • не можна відформатувати том обсягом більше 32 гігабайт (ГБ) у файловій системі FAT32 під час інсталяції операційної системи Windows XP; Windows XP допускає підключення та підтримує томи FAT32 розміром більше 32 ГБ (з урахуванням інших обмежень), але не можна створити том FAT32 обсягом більше 32 ГБ з використанням засобу Format у процесі виконання програми інсталяції Windows XP. Якщо потрібно відформатувати том, розмір якого перевищує 32 ГБ, відформатуйте його у файловій системі NTFS. Іншим варіантом є завантаження комп'ютера із завантажувального диска Microsoft Windows 98 або Microsoft Windows Millennium Edition (Me) та використання засобу Format, який міститься на цьому диску.

Під час спроби відформатувати розділ FAT32, розмір якого перевищує 32 ГБ, під час інсталяції Windows XP операція форматування завершується невдало, і може з'явитися таке повідомлення про помилку: «Диспетчер логічних дисків: Розмір тому надто великий»

  • операційна система MS-DOS, початкова версія Microsoft Windows 95 і операційні системи Microsoft Windows NT 4.0 і раніших версій не розпізнають розділи FAT32, тому їх завантаження з тому FAT32 є неможливим;
  • не можна створити в розділі FAT32 файл, розмір якого перевищує значення (2^32)-1 байт (на один байт менше, ніж 4 ГБ).

Обмеження файлової системи FAT32 у Windows 11

ред.

В серпні 2024 року, в останній збірці Windows 11 Canary, Microsoft зняла довільне обмеження на розмір розділу FAT32 в 32 ГБ, яке діяло майже 30 років. Наразі максимальний розмір розділу становить — 2 ТБ. Ця зміна є дуже важливою для користувачів, які ще використовують FAT32 через її сумісність з різними пристроями, хоча і з деякими обмеженнями[4][5].

Відновлення інформації у системі FAT32

ред.

У порівняні з FAT32, файлова система NTFS менш схильна до фрагментації, оскільки в ній закладено механізм підбору вільної оптимальної за розміром ділянки під новий файл[6].

Структура файлової системи [7]

ред.

Сектори диску мають розмір по 512 байт.

Перший сектор жорсткого диску (LBA=0) є завантажувальним, і перші його 446 байт містять завантажувальну інформацію. Далі йде 64 байти розділів (4 записи про розділ по 16 байт). Потім два байти 0x55 і 0xAA. Вони показують кінець сектора, і використовуються для перевірки його на цілісність.

В кожному записі розділу в п'ятому байті міститься інформація про тип файлової системи розділу. Значення 0x0B або 0x0C означає розділ відформатований в FAT.

У байтах з дев'ятого по дванадцятий міститься адреса LBA початку розділу.

Також там міститься прапор, який показує, що розділ є завантажувальним, і адреси CHS початку і кінця розділу.

Volume ID

ред.

Це перший сектор розділу, на який показує вказівник початку з MBR.

В ньому міститься інформація про файлову систему, форматування і інша інформація про розділ.

Призначення поля Зміщення Розмір Можливе значення
Байтів в секторі 0x0B 16 біт завжди 512
Секторів в кластері 0x0D 8 біт 1,2,4,8,16,32,64,128
Кількість таблиць 0x10 8 біт завжди 2
Перший кластер кореневої директорії 0x2С 32 біти зазвичай 0x00000002
Підпис 0x2С 16 біт завжди 0xAA55

Порядок розміщення даних

ред.

Розділ FAT32 починається сектором Volume ID. Далі знаходиться вільний простір, названий зарезервованими секторами. Після них знаходяться дві копії таблиці розміщення файлів. І вже нарешті після них знаходиться простір, який використовується для зберігання файлів. В самому кінці може знаходитись невикористана ділянка диску, яка може з'явитись через те, що розмір диска не ділиться на розмір кластера.

Нумерація кластерів починається з 2. Щоб обчислити номер сектора, використовують формулу

lba_addr = cluster_begin_lba + (cluster_number - 2) * sectors_per_cluster;

Зазвичай кожен кластер має 4кб (8 секторів). Специфікація Майкрософту каже, що максимальний розмір кластера 32кб, але інколи збільшують розмір секторів, тому буває і більше.

Директорії

ред.

Відомо в якому кластері знаходиться коренева директорія. Читання директорії дає імена і розміщення перших кластерів її файлів і піддиректорій. Щоб дістатись до решти потрібна таблиця FAT.

Дані директорій організовуються в 32-байтові записи. Тоді в одному секторі розміщується рівно 16 записів, і вони не перетинають межу сектора.

Є чотири типи 32-байтових записів:

  1. Нормальний запис з коротким ім'ям файлу.
  2. Запис з довгим іменем файлу.
  3. Не використовується. Перший байт - 0xE5
  4. Кінець директорії. Перший байт нульовий.

Записи типу "Не використовується" з'являються при видаленні файлів. Коли щось видаляється, перший байт стрічки запису просто замінюється на 0xE5, і потім місце використовується при додаванні нового запису.

Записи, що не починаються з 0xE5, чи 0x00 і є вмістом каталогу. Структура такого запису:

Поле Зміщення Розмір
Коротка назва файлу 0x00 8+3 байт
Байт атрибутів 0x0B 8 біт
Номер першого кластеру 0x14 32 біти
Розмір файлу 0x1C 32 біти

Розширення файлу завжди зберігається в файлах з 9 по 11. Якщо назва файлу коротша за вісім символів, то вільні байти заповнюються прогалинами (0x20). Найбільший розмір файлу 4Гб, через те, що розмір файлу зберігається в 32-розрядному полі.

Структура байту атрибутів:

Біт Функція
0 (найменш значущий біт) Тільки читання
1 Прихований
2 Системний
4 Субдиректорія (Вказівник показує на кластер з 32 байтовими записами)
5 Архівний файл
6, 7 (найбільш значущий біт) Не використовуються, і завжди мають бути нульовими.

Таблиця розміщення файлів

ред.

FAT32 названа так саме тому, що записи в цій таблиці 32-розрядні. Таблиця FAT — це просто великий масив беззнакових цілих, де кожен запис відповідає за свій кластер, і вказує номер наступного кластера. Якщо файл вміщується в один кластер, або кластер є останнім, то в таблиці FAT для цього кластера записане значення 0xFFFFFFFF.

Примітки

ред.
  1. Обмеження файлової системи FAT32 у Windows XP. Архів оригіналу за 25 вересня 2015. Процитовано 25 вересня 2015.
  2. Як створювати та змінювати розділи жорсткого диску за допомогою засобів Fdisk і Format. Microsoft
  3. FAT32. Лабораторні роботи[недоступне посилання з червня 2019]
  4. Microsoft зняла обмеження на розмір розділу FAT32 у Windows 11. (рос.) 16.08.2024
  5. Microsoft збільшує ліміт форматування FAT32 до 2 ТБ у Windows 11. // Автор: Вікторія Рудзінська. 16.08.2024
  6. FAT32 чи NTFS. фірма «512 байт». Архів оригіналу за 18 вересня 2008. Процитовано 30 березня 2010.
  7. Understanding FAT32 Filesystems. Архів оригіналу за 9 листопада 2020. Процитовано 23 червня 2010.

Джерела

ред.