Структура файловой системы
В начале диске расположен boot-сектор (на незагрузочных разделах он может быть пустым). За ним, по смещению 1024байта от начала первого сектора лежит супер-блок (super-block), содержащий ключевую информацию о структуре файловой системе. (В FAT и NTFS эта информация хранится непосредственно в boot). В первую очередь нас будет интересовать 32-разрядное поле s_log_block_size, расположенное по смещению 18h байт от начала супер-блока. Здесь храниться размер одного блока (block) или, в терминологии MS-DOS/Windows, кластера, выраженный в виде показателя позиции, на которую нужно сдвинуть число 200h. В естественных единицах это будет звучать так: block_size = 200h << s_log_block_size (байт). То есть, если s_log_block_size
равен нулю, размер одного блока составляет 400h байт или два стандартных сектора.
смещение размер описание
------- ------- -----------
0 1 boot record ; загрузочный сектор
-- block group 0 -- ; группа блоков 0
(1024 bytes) 1 superblock ; суперблок
2 1 group descriptors ; дескриптор
группы
3 1 block bitmap ; карта свободных блоков
4 1 inode bitmap ; карта свободных inode
5 214 inode table ; массив inode (сведения о файлах)
219 7974 data blocks ; блоки данных (файлы, директории)
-- block group 1 -- ; группа блоков 1
8193 1 superblock backup ; копия
суперблока
8194 1 group descriptors backup ; копия
дескрпиора группы
8195 1 block bitmap ; карта свободных блоков
8196 1 inode bitmap ; карта свободных inode
8197 214 inode table ; массив inode (сведения о файлах)
8408 7974 data blocks ; блоки данных (файлы, директории)
-- block group 2 -- ; группа блоков 2
16385 1 block bitmap ; карта свободных блоков
16386 1 inode bitmap ; карта свободных inode
16387 214 inode table ; массив inode (сведения о файлах)
16601 3879 data blocks ; блоки данных (файлы, директории)