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

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

Жанры

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

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

Шрифт:

Диаграмма, осуществляющая сравнение файловых систем s5 и UFS, представлена на рис. 8.9. В UFS каждый блок разбит на несколько фрагментов фиксированного размера, предотвращающих потерю свободного пространства в хвостах файлов. В результате этого использование блоков большого размера уже не кажется расточительной идеей, напротив, это увеличивает производительность и уменьшает фрагментацию. Если файл использует более одного фрагмента в двух несмежных блоках, он автоматически перемещается на новое место, в наименее фрагментированный регион свободного пространства. Таким образом,

фрагментация в UFS очень мала или же совсем отсутствует, что существенно облегчает восстановление удаленных файлов и разрушенных данных.

Рис. 8.9. Структура файловых систем s5/ext2fs (а) и UFS (б)

Адресация ведется либо по физическим смещениям, измеряемым в байтах и отсчитываемым от начала группы цилиндров (реже — от начала раздела UFS), либо в номерах фрагментов, отсчитываемых от тех же самых точек. Допустим, размер блока составляет 16 Кбайт, разбитых на 8 фрагментов. Тогда 69-й сектор будет иметь смещение

512 * 69 == 35328
байт или
1024 * (16/8)/512 * 69 == 276
фрагментов.

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

Рис. 8.10. Последовательно расположенные группы цилиндров

В UFS суперблок располагается по смещению 8192 байт от начала раздела, что соответствует 16-му сектору. В UFS2 он "переехал" на 65536 байт (128 секторов) от начала, освобождая место для дисковой метки и первичного загрузчика операционной системы, а для действительно больших (в исходных текстах они обозначены как "piggy") систем предусмотрена возможность перемещения суперблока по адресу 262144 байт (целых 512 секторов).

Среди прочей информации суперблок содержит:

□ 

cblkno
— смещение первой группы блока цилиндров, измеряемое во фрагментах, отсчитываемых от начала раздела;

□ 

fs_iblkno
— смещение первого inode в первой группе цилиндров (фрагменты от начала раздела);

□ 

fs_dblkno
— смещение первого блока данных в первой группе цилиндров (фрагменты от начала раздела);

□ 

fs_ncg
— количество групп цилиндров;

□ 

fs_bsize
— размер одного блока в байтах;

□ 

fs_fsize
— размер одного фрагмента в байтах;

□ 

fs_frag
количество фрагментов в блоке;

□ 

fs_fpg
— размер каждой группы цилиндров, выраженный в блоках (также может быть найден через
fs_cgsize
).

Для перевода смещений, выраженных во фрагментах, в номера секторов, служит следующая формула:

sec_n(fragment_offset) == fragment_offset* (fs_bsize/fs_frag/512)
или ее более короткая разновидность:
sec_n(fragment_offset) == fragment_offset*fs_fsize /512
.

Структура суперблока определена в файле /src/ufs/ffs/fs.h и в упрощенном виде выглядит, как показано в листинге 8.7.

Листинг 8.7. Формат суперблока (второстепенные поля опущены)

struct fs {

/* 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; /* Обороты диска в минуту */

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

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

Последний Паладин. Том 2

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

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Мастер темных Арканов

Карелин Сергей Витальевич
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных Арканов

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

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

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

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник