next up previous contents index
Next: Group Descriptors Up: Структура дискового раздела ext2 Previous: Структура дискового раздела ext2   Contents   Index

Суперблок

Первый элемент этой структуры (суперблок) - одинаков для всех групп, а все остальные - индивидуальны для каждой группы. Суперблок хранится в первом блоке каждой группы блоков (за исключением группы 1, в которой в первом блоке расположена загрузочная запись). Суперблок является начальной точкой файловой системы. Он имеет размер 1024 байта и всегда располагается по смещению 1024 байта от начала файловой системы. Наличие нескольких копий суперблока объясняется чрезвычайной важностью этого элемента файловой системы. Дубликаты суперблока используются при восстановлении файловой системы после сбоев.

Информация, хранимая в суперблоке, используется для организации доступа к остальным данным на диске. В суперблоке определяется размер файловой системы, максимальное число файлов в разделе, объем свободного пространства и содержится информация о том, где искать незанятые участки. При запуске ОС суперблок считывается в память и все изменения файловой системы вначале находят отображение в копии суперблока, находящейся в ОП, и записываются на диск только периодически. Это позволяет повысить производительность системы, так как многие пользователи и процессы постоянно обновляют файлы. С другой стороны, при выключении системы суперблок обязательно должен быть записан на диск, что не позволяет выключать компьютер простым выключением питания. В противном случае, при следующей загрузке информация, записанная в суперблоке, окажется не соответствующей реальному состоянию файловой системы.

Суперблок имеет следующую структуру.

Название поля Тип Комментарий  
1.2ems_inodes_count ULONG Число индексных дескрипторов в файловой системе  
s_blocks_count ULONG Число блоков в файловой системе  
s_r_blocks_count ULONG Число блоков, зарезервированных для суперпользователя  
s_free_blocks_count ULONG Счетчик числа свободных блоков  
s_free_inodes_count ULONG Счетчик числа свободных индексных дескрипторов  
s_first_data_block ULONG Первый блок, который содержит данные. В зависимости от размера блока, это поле может быть равно 0 или 1  
s_log_block_size ULONG Индикатор размера логического блока: 0 = 1 Кб; 1 = 2 Кб; 2 = 4 Кб  
s_log_frag_size LONG Индикатор размера фрагментов (кажется, понятие фрагмента в настоящее время не используется)  
s_blocks_per_group ULONG Число блоков в каждой группе блоков  
s_frags_per_group ULONG Число фрагментов в каждой группе блоков  
s_inodes_per_group ULONG Число индексных дескрипторов (inodes) в каждой группе блоков  
s_mtime ULONG Время, когда в последний раз была смонтирована файловая система  
s_wtime ULONG Время, когда в последний раз производилась запись в файловую систему s_mnt_count USHORT Счетчик числа монтирований файловой системы. Если этот счетчик достигает значения, указанного в следующем поле (s_max_mnt_count), файловая система должна быть проверена (это делается при перезапуске), а счетчик обнуляется  
s_max_mnt_count SHORT Число, определяющее, сколько раз может быть смонтирована файловая система  
s_magic USHORT ``Магическое число'' (0xEF53), указывающее, что файловая система принадлежит к типу ex2fs  
s_state USHORT Флаги, указывающее текущее состояние файловой системы (является ли она чистой (clean) и т.п.)  
s_errors USHORT Флаги, задающие процедуры обработки сообщений об ошибках (что делать, если найдены ошибки)  
s_pad USHORT Заполнение s_lastcheck ULONG Время последней проверки файловой системы  
s_checkinterval ULONG Максимальный период времени между проверками файловой системы  

s_creator_os ULONG Указание на тип ОС, в которой создана файловая система  
s_rev_level ULONG Версия (revision level) файловой системы  
s_reserved ULONG[235] Заполнение до 1024 байт  


next up previous contents index
Next: Group Descriptors Up: Структура дискового раздела ext2 Previous: Структура дискового раздела ext2   Contents   Index
Alex Otwagin 2002-12-16