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

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

Жанры

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

Касперски Крис

Шрифт:

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

/* 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; /* Краткое описание цилиндра */

/* 0x28 */ int32_t cg_rotor; /* Положение посл. исп. блока */

/* 0x2C */ int32_t cg_frotor; /* Положение посл. исп. фрагмента */

/* 0x30 */ int32_t cg_irotor; /* Положение посл. исп. inode */

/* 0x34 */ int32_t cg_frsum[MAXFRAG]; /* Счетчик доступных фрагментов */

/* 0x54 */ int32_t cg_old_btotoff; /* (int32) блоков на цилиндр */

/* 0x58 */ int32_t cg_old_boff; /* (u_int16) своб. позиций блоков */

/* 0x5C */ int32_t cg_iusedoff; /* (u_int8) карта исп. inode */

/* 0x60 */ int32_t сg_freeoff; /* (u_int8) карта своб. блоков */

/* 0x64 */ int32_t cg_nextfreeoff; /* (u_int8) след. своб. блок */

/* 0x68 */ int32_t cg_clustersumoff; /* (u_int32) счетчик своб. кластеров */

/* 0x6C */ int32_t cg_clusteroff; /* (u_int8) карта своб. кластеров */

/* 0x70 */ int32_t cg_nclusterblks; /* Кол-во кластеров в этой гц */

/* 0x74 */ int32_t cg_niblk; /* Кол-во блоков inode в этой гц */

/* 0x78 */ int32_t cg_initediblk; /* Посл. инициализированный inode */

/* 0х7С */ int32_t cg_sparecon32[3]; /* Зарезервировано */

/* 0x00 */ ufs_time_t cg_time; /* Время последней записи */

/* 0x00 */ int64_t cg_sparecon64[3]; /* Зарезервировано */

/* 0x00 */ u_int8_t cg_space[1]; /* Место для карт гц */

/* реально больше */

Между описателем группы цилиндров и группой inode расположены карта занятых inode и карта свободного дискового пространства, представляющие собой обыкновенные битовые поля, точно такие же, как и в NTFS. При восстановлении удаленных файлов без этих карт обойтись невозможно. Они существенно сужают круг поиска, что особенно хорошо заметно на дисках, заполненных более чем наполовину.

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

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

S-T-I-K-S. Пройти через туман

Елисеев Алексей Станиславович
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
7.00
рейтинг книги
S-T-I-K-S. Пройти через туман

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода