Восстановление данных. Практическое руководство
Шрифт:
Типы атрибутов
NTFS поддерживает большее количество предопределенных типов атрибутов, перечисленных в табл. 6.6. Тип атрибута определяет его назначение и формат представления тела. Полное описание всех атрибутов заняло бы не одну главу, а целую книгу, поэтому здесь приводятся лишь наиболее "ходовые" из них, а за информацией об остальных обращайтесь к документации Linux-NTFS Project.
Таблица 6.6. Основные типы атрибутов
Значение | ОС | Условное обозначение | Описание |
---|---|---|---|
010h | Любая | $STANDARD_INFORMATION | Стандартная информация о файле (время, права доступа) |
020h | Любая | $ATTRIBUTE_LIST | Список атрибутов |
030h | Любая | $FILE_NAME | Полное имя файла |
040h | Windows NT | $VOLUME_VERSION | Версия тома |
040h | Windows 2000 | $OBJECT_ID | Глобально уникальный идентификатор (GUID) и прочие ID |
050h | Любая | $SECURITY_DESCRIPTOR | Дескриптор безопасности и списки прав доступа (ACL) |
060h | Любая | $VOLUME_NAME | Имя тома |
070h | Любая | $VOLUME_INFORMATION | Информация о томе |
080h | Любая | $DATA | Основные данные файла |
090h | Любая | $INDEX_ROOT | Корень индексов |
0A0h | Любая | $INDEX_ALLOCATION | Ветви (sub-nodes) индекса |
0B0h | Любая | $BITMAP | Карта свободного пространства |
0C0h | Windows NT | $SYMBOLIC_LINK | Символическая ссылка |
0C0h | Windows 2000 | $REPARSE_POINT | Для сторонних производителей |
0D0h | Любая | $EA_INFORMATION | Расширенные атрибуты для HPFS |
0E0h | Любая | $EA | Расширенные атрибуты для HPFS |
0F0h | Windows NT | $PROPERTY_SET | Устарело и ныне не используется |
100h | Windows 2000 | $LOGGED_UTILITY_STREAM | Используется шифрующей файловой системой (EFS) |
Атрибут стандартной информации описывает время создания/изменения/последнего доступа к файлу и права доступа, а также некоторую другую вспомогательную информацию (например, квоты). Структура атрибута стандартной информации кратко описана в табл. 6.7.
Таблица 6.7. Структура атрибута
Смещение | Размер | ОС | Описание |
---|---|---|---|
– - | Любая | Стандартный атрибутный заголовок (standard attribute header) | |
00h | 8 | Любая | C — время создания (creation) файла |
08h | 8 | Любая | A — время изменения (altered) файла |
10h | 8 | Любая | M — время изменения файловой записи (MFT changed) |
18h | 8 | Любая | R — время последнего чтения (read) файла |
20h | 4 | Любая | Права доступа MS-DOS (MS-DOS file permissions) |
Значение | Описание | ||
0001h | Только на чтение (read-only) | ||
0002h | Скрытый (hidden) | ||
0004h | Системный (system) | ||
0020h | Архивный (archive) | ||
0040h | Устройство (device) | ||
0080h | Обычный (normal) | ||
0100h | Временный (temporary) | ||
0200h | Разреженный (sparse) файл | ||
0400h | Точка передачи (reparse point) | ||
0800h | Сжатый (compressed) | ||
1000h | Оффлайновый (offline) | ||
2000h | Неиндексируемый (not content indexed) | ||
4000h | Зашифрованный (encrypted) | ||
24h | 4 | Любая | Старшее двойное слово номера версии (maximum number of versions) |
28h | 4 | Любая | Младшее двойное слово номера версии (version number) |
2Ch | 4 | Любая | Идентификатор класса (class ID) |
30h | 4 | Windows 2000 | Идентификатор владельца (owner ID) |
34h | 4 | Windows 2000 | Идентификатор безопасности (security ID) |
38h | 8 | Windows 2000 | Количество квотируемых байт (quota charged) |
40h | 8 | Windows 2000 | Номер последней последовательности обновления (update sequence number USN) |
Атрибут списка атрибутов (прямо каламбур) используется в тех случаях, когда все атрибуты файла не умещаются в базовой файловой записи, и файловая система вынуждена располагать их в расширенных файловых записях. Индексы расширенных файловых записей содержатся в атрибуте списка атрибутов, помещаемом в базовую файловую запись.
При каких обстоятельствах атрибуты не умещаются в одной файловой записи? Это может произойти в следующих случаях:
? файл содержит много альтернативных имен или жестких ссылок;
? файл сильно фрагментирован;
? файл содержит очень сложный дескриптор безопасности;
? файл имеет очень много потоков данных (т.е. атрибутов типа
Структура атрибута списка атрибутов приведена в табл. 6.8.
Таблица 6.8. Структура атрибута
Смещение | Размер | Описание |
---|---|---|
– - | Стандартный атрибутный заголовок (standard attribute header) | |
00h | 4 | Тип (type) атрибута (см. табл. 6.6) |
04h | 2 | Длина записи (record length) |
06h | 1 | Длина имени (name length), или ноль, если нет, условно — N |
07h | 1 | Смещение имени (offset to name), или ноль если нет |