Завантажувальний сектор Завантажувальний сектор знаходиться у першому секторі файлової системи FAT та

Структура даних перших 36 байтів наведено у табл. 10.1, а структури інших байтів - у табл. 10.2 та 10.3. Таблиця 10-1- Структура даних перших 36 байтів завантажувального сектора FAT

ДіапазонОписНеобхідність
0-2Ассемблерна команда переходу до завантажувального кодуНі (крім завантажувальних файлових систем)
3-10Ім'я OEM у кодуванні ASCIIНі
11-12Кількість байтів у секторі. Допустимі значення - 512, 1024, 2048 і 4096Так
13-13Кількість секторів у кластері (блоці даних). Допустимі значення задаються ступенями 2, але розмір кластера не повинен перевищувати 32 КбайтТак
14-15Розмір зарезервованої області в секторахТак
16-16Кількість копій FAT. Зазвичай у системі зберігаються дві копії, але, за документацією Microsoft, для пристроїв малої ємності допускається зберігання лише однієї копіїТак
17-18Максимальна кількість файлів у кореневому каталозі для FAT12 та FAT16. У FAT32 поле дорівнює 0, а FAT16 воно зазвичай дорівнює 512Так
продовження amp;

Таблиця 10-1 (продовження)

ДіапазонОписНеобхідність
19-2016-розрядна кількість секторів у файловій системі. Якщо кількість секторів не може бути представлена ​​2-байтовою величиною, пізніше в структурі даних слід альтернативне 4-байтове поле (а 2-байтове поле має дорівнювати нулю)Так
21-21Тип носія. Згідно з документацією Microsoft, длястаціонарних дисків використовується значення 0xf8, а для знімних-0xf0Ні
22-2316-розрядний розмір (у секторах) кожної копії FAT у FAT12 та FAT16. У FAT32 поле дорівнює 0Так
24-25Кількість секторів у доріжціНі
26-27Кількість головокНі
28-31Кількість секторів перед початком розділу1Ні
32-3532-розрядна кількість секторів у файловій системі. Або це поле, або 16-розрядне поле (19-20) повинно бути 0Так
1 Тестування показало, що у файлових системах, що зберігаються в розширених розділах, Windows задає це значення по відношенню до початку розширеного розділу, а не до початку диска.

Команда в першому полі завантажувального сектора (б 0-2) повідомляє комп'ютеру, де знаходиться код, необхідний для завантаження операційної системи. Якщо файлова система не використовується для завантаження комп'ютера, це значення ігнорується. DOS і Windows вимагають, щоб значення поля задавалося і для файлових систем, які не є завантажувальними, а в інших ОС (наприклад, Linux) така вимога відсутня. Тип носія визначає, знаходиться файлова система на стаціонарному або знімному носії, але в Microsoft Windows ігнорує це поле і використовує другу копію типу носія, що знаходиться в таблиці розміщення файлів [Microsoft, 2001]. Сенс інших полів був описаний у розділі 9. Починаючи з байта 36, між структурами завантажувального сектора FAT12/FAT16 і FAT32 починаються розбіжності. Вони збігається лише сигнатура 0x55 (байт 510) і ОхАА (байт 511). Зверніть увагу: ця сама сигнатура використовується в першому секторі таблиці розділів DOS (ми ще зустрінемося зній у першому секторі NTFS). Структура інших байтів завантажувального сектора FAT12 та FAT16 наведена в табл. 10.2. Таблиця 10.2. Структура даних частини завантажувального сектора в FAT12/16

ДіапазонОписНеобхідність
/>0-35Див. табл. 10.1Так
36-36Номер диска BIOS INT13HНі
37-37Не використовуєтьсяНі
38-38Розширена сигнатура, яка показує, чи дійсні наступні три значення. Сигнатура дорівнює 0x29Ні

ДіапазонОписНеобхідність
39-42Серійний номер тома; у деяких версіях Windows обчислюється на основі дати та часу створенняНі
43-53Тема в кодуванні ASCII. Вибирається користувачем під час створення файлової системиНі
54-61Мітка типу файлової системи в кодуванні ASCII Стандартні значення — «FAT», «FAT12» та «FAT 16», але жодне з них не є обов'язковимНі
62-509Не використовуєтьсяНі
510-511Сигнатура (0хАА55)Ні
Структураінших байтів завантажувального сектора FAT32 наведена в табл. 10.3.
Таблиця 10-3- Структура даних частини завантажувального сектора, що залишилася в FAT32
ДіапазонОписНеобхідність
0-35Див. табл. 10.1Так
36-3932-розрядний розмір однієї копії FAT (у секторах)Так
40-41Режим оновлення кількох структур FAT. Якщо біт 7 дорівнює 1 активна тільки одна копія FAT, індекс якої визначається розрядами 0-3. В іншому випадку всі структури FAT є дзеркальними копіями один одногоТак
42-43Основний та додатковий номер версіїТак
44-47Кластер, в якому знаходиться кореневий каталогТак
48-49Сектор, в якому знаходиться структура FSINFOНі
50-51Сектор, у якому знаходиться резервна копія завантажувального сектора (за замовчуванням 6)Ні
52-63ЗарезервованоНі
64-64Номер диска BIOS INT13HНі
65-65Не використовуєтьсяНі
66-66Розширена сигнатура, яка показує, чи дійсні наступні три значення. Сигнатура дорівнює 0x29Ні
67-70Серійний номер тома; у деяких версіях Windows обчислюється на основі дати та часу створенняНі
71-81Тема в кодуванні ASCII. Вибирається користувачем під час створення файлової системиНі
82-89Мітка типу файлової системи в кодуванні ASCII. Стандартне значення – «FAT32», але воно не є обов'язковимНі
90-509Не використовуєтьсяНі
510-511Сигнатура (0хАА55)Ні

Основна відмінність між завантажувальними секторами FAT12/16 та FAT32 полягає в тому, що сектор FAT32 включає додаткові дані, які роблять файлову систему.більш гнучкою та покращують її масштабованість. Можливі різні стратегії оновлення структур FAT та створення резервних копій завантажувального сектора. Також існує поле версії, але, схоже, на момент написання книги у продуктах Microsoft використовувалася лише одна версія.

Вміст діапазону 62-509 FAT12/16 і 90-509 FAT32 не має певного призначення. Зазвичай ці байти використовуються для зберігання завантажувального коду та повідомлень про помилки. Ось як виглядає шістнадцятковий дамп першого сектора файлової системи FAT32 у системі Windows ХР:

f fat-4.dd 0 xxd eb58 904d 5344 4f53 352e 3000 0202 2600 0200 0000 00f8 0000 3f00 4000 c089 000 00 0000 0200 0000 0100 0600 0000 0000 0000 0000 0200 0000 8000 2903 4619 4c4e 4f20 4e41 4d45 2020 2020 4641 5433 3220 2020 33 007c 884e 028a 5640 b408 cdl3 7305 b9ff ff8a fl66 0fb6 c640 660f 0000 0000 0000 0000 0000 0000 OdOa 5265 6d6f 7665 2064 6973 6b73 206f 7220 6f74 6865 7220 6d4 3 6b20 6572 726f 72ff OdOa 5072 6573 7320 616e 7920 6b65 7920 746f 2072 6573 7461 7274 OdOa 0000 0000 OOac cdb8 0000 55aa .X.MSD0S5.0..

@# Re move disks or ot her media Dis k error. Press any key to resta ке U.

У першому рядку видно мітку OEM «MSDOS5.0»; ймовірно, вона була згенерована в Windows 2000 або ХР. У системі використовується прямий порядок байтів, тому в числових полях байти переставляються, а байти рядкових даних йдуть у звичайному порядку. З байтів 11-12 ми дізнаємося, кожен сектор займає 512 байт (0x0200), а байт 13 показує, що розмір кожного кластера у сфері даних становить 2 сектора, тобто 1024 байта. Згідно з байтами 14-15, зарезервована областьскладається з 38 (0x0026) секторів, тому ми знаємо, що область FAT починається в секторі 38, а згідно з байтом 16 у системі зберігаються дві копії FAT. Байти 19-20 містять 16-розрядний розмір файлової системи; у цьому прикладі він дорівнює 0. Це говорить про те, що розмір визначається 32-розрядним полем у байтах 32-35. З цього поля ми дізнаємося, що розмір файлової системи становить 205632 (0x00032340) сектора. Байти 28-31 показують, що перед початком файлової системи розташовуються 100800 (0x0001 89с0) секторів; можливо, вони були виділені у невеликий розділ. Наприклад, це може бути система з альтернативним завантаженням або розділ даних режиму сну для портативного комп'ютера. Для отримання додаткової інформації слід проаналізувати таблицю розділів. Образ відноситься до системи FAT32, тому після 36-го байта слід застосовувати відповідну структуру даних. Байти 36-39 показують, що розмір кожної копії FAT становить 797 (0x0000031d) секторів, а оскільки ми знаємо, що в системі зберігаються дві копії FAT, загальний розмір області FAT складе 1594 сектори. Байти 48-49 показують, що інформація FSINFO зберігається в секторі 1, а байти 50-51 - що резервна копія завантажувального сектора знаходиться в секторі 6. Серійний номер тома знаходиться в байтах 67-70, його значення дорівнює 0х4с194603. Мітка тому в байтах 71-81 є рядком «NO NAME» (з чотирма пробілами). Пізніше ми побачимо, що ця позначка зберігається в іншому місці файлової системи. Мітка типу зберігається в байтах 82-89, в даній системі це рядок «FAT32» (плюс три пробіли). Байти 90-509 файлової системи

Серійний номер: 12FA-321D Мал. 10.1. Процес обчислення серійного номера тома за датою та часом створення Структура FSINFO Файлова система FAT32 містить структуру даних FSINFO. Інформація,що зберігається в цій структурі, використовується операційною системою при виділенні нових кластерів. Місцезнаходження структури визначається в завантажувальному секторі, а її будова описана в табл. 10.4.

Таблиця 10.4. Структура даних сектора FAT32 FSINFO

/>ДіапазонОписНеобхідність
0-3Сигнатура (0x41615252)Ні
4-483Не використовуєтьсяНі
484-487Сигнатура (0x6147272)Ні
488-491Кількість вільних кластерівНі
492-495Наступний вільний кластерНі
496-507Не використовуєтьсяНі
508-511Сигнатура (0хАА550000)Ні