Восстановление данных. Практическое руководство
Шрифт:
За картами следует массив inode, смещение которого содержится в поле
cg_iusedoff
(адрес первой группы inode продублирован в суперблоке). По сути, в UFS структура inode ничем не отличается от ext2fs, только расположение полей другое. К тому же, имеется только один блок косвенной адресации вместо трех, но это уже детали, не имеющие большого практического значения. Рассмотрим назначение фундаментальных полей, к числу которых принадлежат: □
di_nlink
—
□
di_size
— размер файла в байтах; □
di_atime
/di_atimensec
— время последнего доступа к файлу; □
di_mtime
/di_mtimensec
— время последней модификации; □
di_ctime
/di_ctimensec
— время последнего изменения inode; □
di_db
— адреса первых 12 блоков данных файла, отсчитываемые во фрагментах от начала группы цилиндров; □
di_ib
— адрес блоков косвенной адресации (фрагменты от начала группы). Сама структура inode определена в файле /src/ufs/ufs/dinode.h. Для UFS1 эта структура выглядит, как показано в листинге 8.9 и на рис. 8.11.
Рис. 8.11. Схематичное изображение inode
Листинг 8.9. Структура inode в UFS1
struct dinode {
/* 0x00 */ uint16_t di_mode; /* 0: IFMT, права доступа; */
/* см. ниже */
/* 0x02 */ int16_t di_nlink; /* 2: Счетчик ссылок */
/* 0x04 */ union {
uint16_t oldids[2]; /* 4: Ffs: старые ID */
/* пользователя и группы */
int32_t inumber; /* 4: Lfs: номер inode */
} di_u;
/* 0x08 */ u_int64_t di_size; /* 8: Счетчик байтов файла */
/* 0x10 */ int32_t di_atime; /* 16: Время последнего доступа */
/* 0x14 */ int32_t di_atimensec; /* 20: Время последнего доступа */
/* 0x18 */ int32_t di_mtime; /* 24: Время последней */
/* модификации */
/* 0x1C */ int32_t di_mtimensec; /* 28: Время последней */
/*
модификации */
/* 0x20 */ int32_t di_ctime; /* 32: Время последнего */
/* изменения inode */
/* 0x24 */ int32_t di_ctimensec; /* 36: Время последнего */
/* изменения inode */
/* 0x28 */ ufs_daddr_t di_db[NDADDR]; /* 40: Непоср. дисковые блоки */
/* 0x58 */ ufs_daddr_t di_ib[NIADDR]; /* 88: Косв. дисковые блоки */
/* 0x64 */ u_int32_t di_flags; /* 100: Флаги статуса (chflags) */
/* 0x68 */ int32_t di_blocks; /* 104: Факт, занятые блоки */
/* 0x6C */ int32_t di_gen; /* 108: Номер генерации */
/* 0x70 */ u_int32_t di_uid; /* 112: Владелец файла */
/* 0x74 */ u_int32_t di_gid; /* 116: Группа файла */
/* 0x78 */ int32_t di_spare[2]; /* 120: Зарезервировано */
};
В UFS2 формат inode был существенно изменен — появилось множество новых полей, удвоилась ширина адресных полей (листинг 8.10). Что это обозначает для нас в практическом плане? Смещения всех полей изменились, только и всего, а общий принцип работы с индексными дескрипторами остался прежним.
Листинг 8.10. Структура inode в USF2
struct ufs2_dinode {
/* 0x00 */ u_int16_t di_mode; /* 0: IFNT, права доступа; */
/* см. ниже */
/* 0x02 */ int16_t di_nlink; /* 2: Счетчик ссылок */
/* 0x04 */ u_int32_t di_uid; /* 4: Владелец файла */
/* 0x08 */ u_int32_t di_gid; /* 8: Группа файла */
/* 0x0C */ u_int32_t di_blksize; /* 12: Размер блока Inode */
/* 0x10 */ u_int64_t di_size; /* 16: Счетчик байтов файла */
/* 0x18 */ u_int64_t di_blocks; /* 24: Практически занятые байты */
/* 0x20 */ ufs_time_t di_atime; /* 32: Время последнего доступа */
/* 0x28 */ ufs_time_t di_mtime; /* 40: Время последней */
/* модификации */
/* 0x30 */ ufs_time_t di_ctime; /* 48: Время последнего */
/* изменения inode */
Поделиться:
Популярные книги
Кодекс Охотника. Книга XVII
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Отмороженный 6.0
6. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Сломанная кукла
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Последний попаданец 2
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Идущий в тени 4
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Царь Федор. Трилогия
Царь Федор
Фантастика:
альтернативная история
8.68
рейтинг книги
Не кровный Брат
Любовные романы:
эро литература
6.83
рейтинг книги
Сумеречный Стрелок 3
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Убийца
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Темный Патриарх Светлого Рода 4
4. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Инцел на службе демоницы 1 и 2: Секса будет много
Инцел на службе демоницы
Фантастика:
фэнтези
5.25
рейтинг книги
Попала, или Кто кого
Любовные романы:
современные любовные романы
5.88
рейтинг книги
Разбуди меня
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Провинциал. Книга 7
7. Провинциал
Фантастика:
боевая фантастика
космическая фантастика
5.00