Структура суперблока ФС

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

/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]; /* Заполнение до конца блока*/

};


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: