Введення у файлові системи, страница 38

SectorNum=Data_StartSect+(ClusterNum-2)xBPB_SecPerClus.

У документації Microsoft приводяться наступні примітки:

дані в останньому секторі FAT не обов'язково цілком приналежать файлу. Кінець сектору, що не відноситься до файлу, може містити довільні дані. Останній елемент FAT має номер, рівний CountOfClusters + 1 (як сказано вище, нумерація ведеться з нуля й у початок таблиці додані два «резервних» елементи);

останній сектор FAT обчислюється за значенням CountOfClusters + 1. Використовувати з цією метою значення BPB_FATSzl6 і BPB_FATSz32 не можна.

4.5 Область даних файлів і каталогів

Слідом за кореневим каталогом на логічному диску знаходиться область даних, які містить файли і підкаталоги кореневого каталогу.

Область даних розбита на кластери, причому нумерація кластерів починається з числа 2, що  відповідає першому сектору області даних.

Зв'язок номеру кластеру з номерами секторів на логічному диску має слідуючий вид:

SectNu = DataStart + ((ClustNu - 2) * BPB_SecPerClus)

DataStar= BPB_RsvdSecCnt + (BPB_FATSzl6*BPB_NumFATs) + (32 * BPB_RootEntCnt / BPB_BytsPerSec)

У цій формулі використані наступні позначення:

BPB_BytsPerSec – число байтів у секторі (завжди 512);

BPB_RsvdSecCnt – число резервних секторів у «резервній» області розділу, починаючи з першого сектора розділу;

BPB_NumFATs – число таблиць FAT у розділі (завжди 2);

BPB_FATSzl6 – кількість секторів, зайнятих однією копією FAT;

BPB_RootEntCnt – кількість 32-байтних дескрипторів файлів у кореневому каталозі (при використанні FAT16 завжди 512);

BPB_SecPerClus – число секторів у кластері;

ClustNu – номер кластеру, для якого необхідно визначити номер першого сектору;

DataStart – початок області даних;

SectNu – номер першого сектору, розподіленого кластеру з номером ClustNu.

4.6 Особливості роботи файлових систем FAT

Подальший розвиток файлової системи FAT обмежено вимогами сумісності з раніше створеними програмами, тому нова система FAT32 містить мінімальні зміни.

Головні відмінності від попередніх версій FAT полягають у наступному:

блок початкового завантаження на розділах з FAT32 збільшений до 2 секторів і містить у собі резервну копію завантажувального сектора, що дозволяє системі бути більш стійкої до можливих збоїв на диску;