Суперблок содержит информацию, необходимую для монтирования и управления работой файловой системы в целом (например, для размещения новых файлов). В каждой файловой системе существует только один суперблок, который располагается в начале раздела. Суперблок считывается в память при монтировании файловой системы и находится там до ее отключения (размонтирования).
/struct ext3_super_block {
/*00*/ __le32 s_inodes_count; /* Размер дескриптора*/
__le32 s_blocks_count; /* Размер блоков */
__le32 s_r_blocks_count; /* Размер зарезервированного блока*/
__le32 s_free_blocks_count; /* размер свободных блоков */
/*10*/ __le32 s_free_inodes_count; /* размер свободных дескрипторов */
__le32 s_first_data_block; /* Первый информационный блок*/
__le32 s_log_block_size; /* Размер блока*/
__le32 s_log_frag_size; /*Размер фрагмента*/
/*20*/ __le32 s_blocks_per_group; /* # Блоков на группу */
__le32 s_frags_per_group; /* # Фрагментов а группу*/
__le32 s_inodes_per_group; /* #Дескрипторов на группу*/
__le32 s_mtime; /* Время модификации*/
/*30*/ __le32 s_wtime; /* Время записи */
__le16 s_mnt_count; /* Количество установок*/
__le16 s_max_mnt_count; /* Максимальное количество установок*/
|
|
__le16 s_magic; /* Сигнатура за которой определяется что это суперблок*/
__le16 s_state; /* Состояние файловой системными */
__le16 s_errors; /* Поведение при обнаружении ошибки */
__le16 s_minor_rev_level; /* минор уровня просмотра */
/*40*/ __le32 s_lastcheck; /* Время последней проверки*/
__le32 s_checkinterval; /* Максимальное время между провенрками*/
__le32 s_creator_os; /* ОС*/
__le32 s_rev_level; /* Уровень проверки*/
/*50*/ __le16 s_def_resuid; /* Стандартный uid для зарезервированных блоков*/
__le16 s_def_resgid; /* тандартный gid для зарезервированных блоков */
__le32 s_first_ino; /*Первый не зарезервированный дескриптор*/
__le16 s_inode_size; /* Размер структуры индексного дескриптора*/
__le16 s_block_group_nr; /* Блок группы для суперблока */
__le32 s_feature_compat; /* Совместимый набор функций */
/*60*/ __le32 s_feature_incompat; /* Несовместимый набор функций */
__le32 s_feature_ro_compat; /* Только для чтения совместный набор функций */
/*68*/ __u8 s_uuid[16]; /* 128-bit uuid для тома*/
/*78*/ char s_volume_name[16]; /* Имя тома*/
/*88*/ char s_last_mounted[64]; /* Директория последгнего монтирования */
/*C8*/ __le32 s_algorithm_usage_bitmap; /* Для сжатия*/
__u8 s_prealloc_blocks; /* Число блоков выделяемые заранее*/
__u8 s_prealloc_dir_blocks; /*Число блоков выделяемые заранее для каталогов*/
__le16 s_reserved_gdt_blocks; /* Нарастание*/
/*D0*/ __u8 s_journal_uuid[16]; /* uuid из журнала суперблока */
/*E0*/ __le32 s_journal_inum; /* Номер дескриптора в журнальном файле */
__le32 s_journal_dev; /* Номер устройства в журнальном файл */
__le32 s_last_orphan; /* Голова списка дескрипторов для удаления */
__le32 s_hash_seed[4]; /* HTREE хаш источника*/
__u8 s_def_hash_version; /* Стандартная версия хеша для пользования*/
__u8 s_reserved_char_pad;
__u16 s_reserved_word_pad;
__le32 s_default_mount_opts;
__le32 s_first_meta_bg; /* Первый мета блок группы */
__le32 s_mkfs_time; /* Когда файловая система создана */
__le32 s_jnl_blocks[17]; /*Резервное копирование журнала дескрипторов */
|
|
/* 64bit support valid if EXT4_FEATURE_COMPAT_64BIT */
/*150*/ __le32 s_blocks_count_hi; /* Размер блока */
__le32 s_r_blocks_count_hi; /* Зарезервированное количество блоков */
__le32 s_free_blocks_count_hi; /* Количество свободных блоков*/
__le16 s_min_extra_isize; /*Все индексные дескрипторы по крайней мере #байт*/
__le16 s_want_extra_isize; /* Новые индексные дескрипторы # байт*/
__le32 s_flags; /* Разные флаги */
__le16 s_raid_stride; /* RAID шаг*/
__le16 s_mmp_interval; /* # секунд ожидания пр проверке ММП/
__le64 s_mmp_block; /* Блок для группового монтирования */
__le32 s_raid_stripe_width; /*Блоков на всех видов данных*/
__u8 s_log_groups_per_flex; /* FLEX_BG Размер группы */
__u8 s_reserved_char_pad2;
__le16 s_reserved_pad;
__u32 s_reserved[162]; /* Заполнение до конца блока*/
};