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.

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

Призначення поляЗміщенняРозмірМожливе значення
Байтів в секторі0x0B16 бітзавжди 512
Секторів в кластері0x0D8 біт1,2,4,8,16,32,64,128
Кількість таблиць0x108 бітзавжди 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 і є вмістом каталогу. Структура такого запису:

ПолеЗміщенняРозмір
Коротка назва файлу0x008+3 байт
Байт атрибутів0x0B8 біт
Номер першого кластеру0x1432 біти
Розмір файлу0x1C32 біти

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

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

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

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

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

Примітки

Джерела

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.