FAT32

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

Структура файлової системи [5][ред. | ред. код]

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

Master Boot Record[ред. | ред. код]

Перший сектор жорсткого диску (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.

Примітки[ред. | ред. код]

Джерела[ред. | ред. код]