Стартиращ сектор, FSINFO, FAT таблица и записи в FAT директория

Прочети за системните структури на файловата система FAT: Стартиращ сектор, FSINFO, FAT таблица и записи в директория. Описание, размери на полета и интерпретация Процесът на намиране на изтрити файлове се състои в откриване и интерпретиране на съдържанието на диска. С тази статия ще отворим цикъл, в който ще ви кажем как да намерите и правилно „прочетете“ системната информация. Има четири версии на FAT - FAT8, FAT12, FAT16 и FAT32. Ще анализираме FAT32 диска, разположен на SD картата с памет на камерата.

сектор

Логическият диск под контрола на FAT32 може да бъде разделен на 3 логически части, които вървят последователно една след друга:

  • Резервирана площ;
  • FAT зона;
  • Област с данни (съдържа основната директория и съдържанието на файла);

Фиг. 1 Физическа структура на FAT.

Системата FAT е много проста и обикновено може да бъде разделена на 4 структури:

Сектор за зареждане

Секторът за зареждане заема 1 сектор (най-често 512 байта) и се намира в първия сектор. Нека разгледаме по-отблизо съдържанието му.

Раздел 1 Структура на сектор за зареждане на FAT.

Информацията от сектора за зареждане играе основна роля при възстановяването на изтрити файлове, така че нейното откриване е изключително важно.

Структура на FSINFO

Връзката към началото на структурата се съхранява в сектора за зареждане, размерът е 1 сектор (обикновено 512 байта). FAT използва FSINFO за алгоритъма си за безплатно разпределяне на дискове.

Раздел 2 Структура на данните на FSINFO.

Тъй като FSINFO може да не се актуализира и всички негови полета не са задължителни, не можем да разчитаме на него за извличане на данни.

FAT маса

Файлова система може да има множество копия на тази таблица, точният брой таблици и техните размери са посочени в сектора за зареждане. Обикновено се използват 2 екземпляра, които се дублират напълно. Те са разположени последователно, един след друг и имат толкова записи, колкото има клъстери на диска.

Във FAT32 структурата се състои от 4 байта записи. Всеки запис съответства на клъстер на логически диск и може да приема следните стойности:

  • 0x000 0000 - ако клъстерът е свободен;
  • 0x0fff fff7 - ако клъстерът е повреден и не трябва да бъде разпределен;
  • 0x0fff fff8 - ако клъстерът завършва файл или директория;
  • 0x000 0001 ... 0x0fff fff6 - указател към следващия клъстер, зает от файл или директория.

Четенето и анализът на основната FAT таблица и нейните копия ви позволява да разберете в кои клъстери се съхранява съдържанието на необходимия файл.

Записи в указателя

Записите в директорията съдържат името, атрибутите на файловете и директориите и когато обектите са създадени, последно достъпни и редактирани. Тази информация се съхранява в клъстери, разпределени към родителската директория, връзка към която може да бъде получена от сектора за зареждане.

Основната структура (Simple File Name) поддържа само кратки имена на файлове (8 знака за името и 3 знака за разширението). За да поддържат дълги имена на файлове, в допълнение към основния запис се създават допълнителни структури (Long File Name). LFN записите са с размер 32 байта и предшестват базовия запис.