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