Чтение онлайн

на главную - закладки

Жанры

Восстановление данных. Практическое руководство
Шрифт:

/* 0x00 */ int32_t fs_firstfield; /* Связный список файловых систем */

/* 0x04 */ int32_t fs_unused_1; /* для внутренних суперблоков */

/* 0x08 */ ufs_daddr_t fs_sblkno;

/* Адрес суперблока в файловой системе (фс) */

/* 0x0C */ ufs_daddr_t fs_cblkno; /* Смещение блока цилиндров в фс */

/* 0x10 */ ufs_daddr_t fs_iblkno; /* Смещение блоков inode
в фс */

/* 0x14 */ ufs_daddr_t fs_dblkno; /* Смещение 1-го блока данных после

группы цил. */

/* 0x18 */ int32_t fs_cgoffset; /* Смещение группы цилиндров */

/* 0x1C */ int32_t fs_cgmask; /* Используется в calc mod fs_ntrak */

/* 0x20 */ time_t fs_time; /* Время последней записи */

/* 0x24 */ int32_t fs_size; /* Количество блоков в фс */

/* 0x28 */ int32_t fs_dsize; /* Количество блоков данных в фс */

/* 0х2С */ int32_t fs_nog; /* Количество групп цилиндров */

/* 0x30 */ int32_t fs_bsize; /* Размер базовых блоков в фс */

/* 0x34 */ int32_t fs_fsize; /* Размер фрагментов блоков в фс */

/* 0x38 */ int32_t fs_frag; /* Количество фрагментов в блоке в фс */

/* Параметры конфигурации */

/* 0x3C */ int32_t fs_minfree; /* Мин. процент свободных блоков */

/* 0x40 */ int32_t fs_rotdelay; /* Мин. задержка (мс) для оптимального

след. блока */

/* 0x44 */ int32_t fs_rps; /* Обороты диска в минуту */

/* Размеры, определяемое кол-вом гц и их размерами */

/* 0x98 */ ufs_daddr_t fs_csaddr; /* Адрес блока информации гц */

/* 0х9С */ int32_t fs_cssize; /* Размер блока информации гц */

/* 0xA0 */ int32_t fs_cgsize; /* Размер группы цилиндров */

/* Поля, которые могут быть вычислены на основании остальных */

/* 0хВ4 */ int32_t fs_cpg; /* Кол-во цилиндров в группе */

/* 0xB8 */ int32_t fs_ipg; /* Кол-во Inode на группу */

/* 0xBC */ int32_t fs_fpg; /* Кол-во блоков в группе * fs_frag */

/* Поля, очищаемые при монтировании */

/* 0xD0 */ int8_t fs_fmod; /*
Флаг модификации суперблока */

/* 0xD1 */ int8_t fs_clean; /* Флаг "чистой" (clean) фс */

/* 0xD2 */ int8_t fs_ronly; /* Флаг защиты от записи */

/* 0xD3 */ int8_t fs_flags; /* См. поле fs_ flags */

/* 0xD4 */ u_char fs_fsmnt[MAXMNTLEN]; /* Путь монтирования фс */

};

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

cg
, представляющая собой описатель группы цилиндров и содержащая магическую последовательность
55h 02h 09h
, по которой все уцелевшие группы можно найти даже при полностью испорченном суперблоке. Штатным образом стартовые адреса всех последующих групп вычисляются путем умножения номера группы на ее размер, содержащийся в поле
fs_cgsize
.

Другие важные параметры:

?

cg_cgx
— порядковый номер группы, отсчитываемый от нуля;

?

cg_old_niblk
— количество inode в данной группе;

?

cg_ndblk
— количество блоков данных в данной группе;

?

csum
— количество свободных inode и блоков данных в данной группе;

?

cg_iusedoff
— смещение карты занятых inode, отсчитываемое от начала данной группы (в байтах);

?

cg_freeoff
— смещение карты свободного пространства (байты от начала группы).

Структура

cg
определена в файле /src/ufs/ffs/fs.h и выглядит следующим образом — листинг 8.8.

Листинг 8.8. Структура описателя группы цилиндров

#define СG_MAGIC 0x090255

#define MAXFRAG 8

struct cg {

/* 0x00 */ int32_t cg_firstfield; /* Связный список групп цилиндров */

/* 0x04 */ int32_t cg_magic; /* Магическая последовательность */

/* 0x08 */ int32_t cg_old_time; /* Время последней записи */

/* 0x0C */ int32_t cg_cgx; /* Мы находимся в гц номер cgx */

/* 0x10 */ int16_t cg_old_ncyl; /* Кол-во цилиндров в этой гц */

/* 0x12 */ int16_t cg_old_niblk; /* Кол-во блоков inode в этой гц */

/* 0x14 */ int32_t cg_ndblk; /* Кол-во блоков данных в этой гц */

/* 0x18 */ struct csum cg_cs; /* Краткое описание цилиндра */

Поделиться:
Популярные книги

Матабар. II

Клеванский Кирилл Сергеевич
2. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар. II

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Граф Суворов 7

Шаман Иван
7. Граф Суворов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Граф Суворов 7

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Новобрачная

Гарвуд Джулия
1. Невеста
Любовные романы:
исторические любовные романы
9.09
рейтинг книги
Новобрачная

Камень Книга двенадцатая

Минин Станислав
12. Камень
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Камень Книга двенадцатая

Газлайтер. Том 19

Володин Григорий Григорьевич
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 19

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Страж Кодекса. Книга II

Романов Илья Николаевич
2. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга II

Возвышение Меркурия. Книга 2

Кронос Александр
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Возвышение Меркурия. Книга 2

Невеста вне отбора

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
7.33
рейтинг книги
Невеста вне отбора

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Невеста снежного демона

Ардова Алиса
Зимний бал в академии
Фантастика:
фэнтези
6.80
рейтинг книги
Невеста снежного демона